; ------ Unvermeidbarer Allgemeinkram ------ ; Abtastfrequenz in Hz, je nach Wunsch und Soundkarte sr = 44100 ; Blockgroesse fuer das Rendering (Control Ratio), je nach Wunsch ksmps = 126 ; Control-Frequenz in Hz, ist immer sr/ksmps, darf trotzdem nicht fehlen! kr = 350 ; Anzahl der Audiokanaele, je nach Wunsch und Soundkarte nchnls = 2 ; ------ Einfacher Subtraktivsynthesizer ------ ; Beim Start schon mal globale Sinustabelle vorberechnen, fuer vco-Opcode gisin ftgen 0,0,4096,10,1.0 ; Beim Start schon mal Speicher reservieren fuer 32 Stimmen, Instrument 1 prealloc 1,32 ; Beim Start MIDI-Controller 80...83 auf Mittelstellung initialisieren initc7 1,80,0.5 initc7 1,81,1 initc7 1,82,0 initc7 1,83,0 ; Der Code fuer den zentralen Berechnungszyklus, Instrument 1 instr 1 ; Frequenz in Hz aus der MIDI-Notennummer ifreq cpsmidi ; Amplitude (hier zwischen 0 bis 10000) aus der MIDI-Note-On-Velocity iamp ampmidi 10000 ; Controller 80 fuer Verstimmung des 2. Oszillators kdetune ctrl7 1, 80, 0.936, 1.063 ; Controller 81 fuer Pulsweite kpwidth ctrl7 1, 81, 0, 1 ; Controller 82 fuer LFO-Amplitude klfoamp ctrl7 1, 82, 0, 127 ; Controller 83 fuer LFO-Frequenz klfofrq ctrl7 1, 83, 0, 12.7 ; LFOszillator, Dreieck klfo lfo klfoamp, klfofrq, 1 ; 1. VCOszillator, Dreieck avco1 vco iamp,ifreq+klfo,3,kpwidth,gisin,1/ifreq ; 2. VCOszillator, Dreieck avco2 vco iamp,ifreq*kdetune+klfo,3,kpwidth,gisin,1/ifreq ; Zusammenmischen avco = avco1 + avco2 aout = avco ; Ergebnis in Stereo ausgeben outs aout,aout ; Fertig endin ; Aktiviere Berechnung fuer 24 Stunden f 0 86400 ; Fertig e ; Setze Ausgabefenstergroesse ; Unterdruecke Pseudo-Graphik-Ausgaben ; Unterdruecke den Echtzeitbetrieb stoerende Ausgaben ; Setze Audio-Puffergroesse -+j64 -d -m0 -b504