MixerSetLevel — Fixe le niveau d'un départ vers un bus.
Opcode du greffon mixer.
Fixe le niveau avec lequel les signaux d'un départ sont ajoutés au bus. L'envoi du signal vers le bus est effectué par l'opcode MixerSend.
isend -- Le numéro du départ, par exemple, le numéro de l'instrument envoyant le signal (mais on peut utiliser n'importe quel nombre entier.
ibuss -- Le numéro du bus, par exemple, le numéro de l'instrument recevant le signal (mais on peut utiliser n'importe quel nombre entier.
En fixant le gain pour un bus, le bus est également créé.
kgain -- Le niveau (n'importe quel nombre réel) avec lequel le signal du départ est mélangé sur le bus. La valeur par défaut est 0.
L'utilisation du mélangeur nécessite que les instruments fixant les gains aient des numéros inférieurs à ceux des instruments envoyant des signaux, et que les intruments envoyant des signaux aient des numéros inférieurs à ceux des instruments recevant ces signaux. Cependant, un instrument peut avoir n'importe quel nombre de départs et de retours. Après la réception du dernier signal, il faut invoquer MixerClear pour réinitialiser les bus à 0 avant le k-cycle suivant.
Dans l'orchestre, définir un instrument pour contrôler les niveaux du mélangeur :
instr 1 MixerSetLevel p4, p5, p6 endin
Dans la partitioin, utiliser cet instrument pour fixer les niveaux du mélangeur :
; SoundFonts ; to Chorus i 1 0 0 100 200 0.9 ; to Reverb i 1 0 0 100 210 0.7 ; to Output i 1 0 0 100 220 0.3 ; Kelley Harpsichord ; to Chorus i 1 0 0 3 200 0.30 ; to Reverb i 1 0 0 3 210 0.9 ; to Output i 1 0 0 3 220 0.1 ; Chorus to Reverb i 1 0 0 200 210 0.5 ; Chorus to Output i 1 0 0 200 220 0.5 ; Reverb to Output i 1 0 0 210 220 0.2
Voici un exemple complet de l'opcode MixerSetLevel. Il utilise le fichier Mixer.csd
Exemple 621. Exemple complet de l'opcode MixerSetLevel.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in -odac ; -iadc ;;;RT audio out ; For Non-realtime ouput leave only the line below: ; -o Mixer.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 katt expon 0.01, p3, 1 ;create an attack aout poscil .7, 440,1 MixerSetLevel 1, 3, katt ;impose attack on the gain level MixerSend aout, 1, 3, 0 ;send to channel 0 endin instr 2 aout vco2 .5, 110 ;saw wave MixerSetLevel 2, 3, .25 ;set level to .25 of vco2 MixerSend aout, 2, 3, 1 ;send to channel 1 endin instr 3 ;mix instr.1 and 2 with reverb kgain1 MixerGetLevel 1,3 ;get level form buss 3 kgain2 MixerGetLevel 2,3 ;get level form buss 3 a1 MixerReceive 3,0 ;receive channel 0 a2 MixerReceive 3,1 ;receive channel 1 aout = a1*kgain1+a2*kgain2 ;mix them aoutL, aoutR reverbsc aout, aout, 0.85, 12000 ;add a nice reverb outs aoutL, aoutR MixerClear endin </CsInstruments> <CsScore> f1 0 4096 10 1 i1 0 2 i2 0 2 i3 0 8 ;reverb stays on for 8 sec. e </CsScore> </CsoundSynthesizer>