hsboscil — Un oscillateur qui prend en arguments l'intonation et la brillance.
Un oscillateur qui prend en arguments l'intonation et la brillance, relativement à une fréquence de base.
ibasfreq -- fréquence de base par rapport à laquelle l'intonation et la brillance sont relatives.
iwfn -- table de fonction de la forme d'onde, habituellement une sinus.
ioctfn -- table de fonction utilisée pour pondérer les octaves, habituellement quelque chose comme
f1 0 1024 -19 1 0.5 270 0.5
ioctcnt (facultatif) -- nombre d'octaves utilisées pour le mélange de brillance. Doit valoir entre 2 et 10. Par défaut = 3.
iphs (facultatif, par défaut = 0) -- phase initiale de l'oscillateur. Si iphs = -1, l'initialisation est ignorée.
kamp -- amplitude de la note
ktone -- paramètre cyclique d'intonation cyclique relatif à ibasfreq en octave logarithmique, entre 0 et 1, des valeurs > 1 peuvent être utilisées, et sont réduites en interne à frac(ktone).
kbrite -- paramètre de brillance relatif à ibasfreq, obtenue en pondérant ioctcnt octaves. Il est échelonné de telle manière qu'une valeur de 0 correspond à la valeur originale de ibasfreq, 1 correspond à une octave au-dessus de ibasfreq, -2 correspond à deux octaves sous ibasfreq, etc. kbrite peut être fractionnaire.
hsboscil prend en arguments l'intonation et la brillance, relativement à une fréquence de base (ibasfreq). L'intonation est un paramètre cyclique dans l'octave logarithmique, la brillance est réalisée en mélangeant plusieurs octaves pondérées. Il est utile lorsque l'espace d'intonation est appréhendé dans un concept de coordonnées polaires.
Si ktone est une droite et kbrite une constante, le résultat produit est le glissando de Risset.
La table de l'oscillateur iwfn est toujours lue avec interpolation. Le temps d'exécution est approximativement ioctcnt * oscili.
Voici un exemple de l'opcode hsboscil. Il utilise le fichier hsboscil.csd.
Exemple 446. Exemple de l'opcode hsboscil.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform -odac ;;;realtime audio out ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o hsboscil.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 ; synth waveform giwave ftgen 1, 0, 1024, 10, 1, 1, 1, 1 ; blending window giblend ftgen 2, 0, 1024, -19, 1, 0.5, 270, 0.5 instr 1 ; produces Risset's glissando. kamp = .4 kbrite = 0.3 ibasfreq = 200 ioctcnt = 5 ; Change ktone linearly from 0 to 1, ; over the period defined by p3. ktone line 0, p3, 1 asig hsboscil kamp, ktone, kbrite, ibasfreq, giwave, giblend, ioctcnt outs asig, asig endin </CsInstruments> <CsScore> i 1 0 10 e </CsScore> </CsoundSynthesizer>
Voici un exemple de l'opcode hsboscil dans un instrument MIDI. Il utilise le fichier hsboscil_midi.csd.
Exemple 447. Exemple de l'opcode hsboscil dans un instrument MIDI.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out -odac -M0 ;;;realtime audio out and realtime MIDI in ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; -o hsboscil_midi.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 ; synth waveform giwave ftgen 1, 0, 1024, 10, 1, 1, 1, 1 ; blending window giblend ftgen 2, 0, 1024, -19, 1, 0.5, 270, 0.5 instr 1 ibase = cpsoct(6) ioctcnt = 5 ; all octaves sound alike. itona octmidi ; velocity is mapped to brightness ibrite ampmidi 4 ; Map an exponential envelope for the amplitude. kenv expon .8, 1, .01 asig hsboscil kenv, itona, ibrite, ibase, giwave, giblend, ioctcnt outs asig, asig endin </CsInstruments> <CsScore> i 1 0 30 ; play for 30 seconds e </CsScore> </CsoundSynthesizer>