MixerGetLevel

MixerGetLevel — Retourne le niveau d'un départ vers un bus.

Syntaxe

kgain MixerGetLevel isend, ibuss

Description

Opcode du greffon mixer.

Retourne 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.

Initialisation

isend -- Le numéro du départ, par exemple, le numéro de l'instrument envoyant le signal.

ibuss -- Le numéro du bus, par exemple, le numéro de l'instrument recevant le signal.

Exécution

kgain -- Le niveau (n'importe quel nombre réel) avec lequel le signal du départ est mélangé sur le bus.

Cet opcode retourne le niveau fixé par MixerSetLevel pour un départ et un bus.

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.

Exemples

Voici un exemple de l'opcode MixerGetLevel. Il utilise le fichier Mixer.csd

Exemple 622. Exemple de l'opcode MixerGetLevel.

<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>


Crédits

Michael Gogins (gogins at pipeline dot com).