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 235. 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 ; Audio out Audio in No messages -odac -iadc -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o hsboscil.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 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 ; Instrument #1 - produces Risset's glissando. instr 1 kamp = 10000 kbrite = 0.5 ibasfreq = 200 ioctcnt = 5 ; Change ktone linearly from 0 to 1, ; over the period defined by p3. ktone line 0, p3, 1 a1 hsboscil kamp, ktone, kbrite, ibasfreq, giwave, giblend, ioctcnt out a1 endin </CsInstruments> <CsScore> ; Play Instrument #1 for ten seconds. 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 236. 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 Audio in No messages MIDI in -odac -iadc -d -M0 ;;;RT audio I/O with MIDI in ; For Non-realtime ouput leave only the line below: ; -o hsboscil_midi.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 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 ; Instrument #1 - use hsboscil in a MIDI instrument. instr 1 ibase = cpsoct(6) ioctcnt = 5 ; all octaves sound alike. itona octmidi ; velocity is mapped to brightness ibrite ampmidi 3 ; Map an exponential envelope for the amplitude. kenv expon 20000, 1, 100 asig hsboscil kenv, itona, ibrite, ibase, giwave, giblend, ioctcnt out asig endin </CsInstruments> <CsScore> ; Play Instrument #1 for ten minutes i 1 0 600 e </CsScore> </CsoundSynthesizer>