MixerSend
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## MixerSend

MixerSend — Mélange un signal de taux-a dans un canal d'un bus.

## Syntaxe

    MixerSend asignal, isend, ibuss, ichannel

## Description

Mélange un signal de taux-a dans un canal d'un bus.

## Initialisation

isend -- Le numéro du départ, par exemple, le numéro de l'instrument envoyant le signal. Le gain du départ est contrôlé par l'opcode MixerSetLevel. Les départs sont numérotés pour pouvoir fixer différents niveaux pour différents départs indépendamment du niveau courant des signaux.

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

ichannel -- Le numéro du canal. Chaque bus a `nchnls` canaux.

## Exécution

asignal -- Le signal qui est mélangé dans le canal indiqué du 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

    instr 100 ; Fluidsynth output
    ; INITIALIZATION
    ; Normalize so iamplitude for p5 of 80 == ampdb(80).
    iamplitude     =       ampdb(p5) * 2.0
    ; AUDIO
    aleft, aright     fluidAllOut    giFluidsynth
    asig1       =       aleft * iamplitude
    asig2       =       aright * iamplitude
          ; To the chorus.
          MixerSend    asig1, 100, 200, 0
          MixerSend    asig2, 100, 200, 1
          ; To the reverb.
          MixerSend    asig1, 100, 210, 0
          MixerSend    asig2, 100, 210, 1
          ; To the output.
          MixerSend    asig1, 100, 220, 0
          MixerSend    asig2, 100, 220, 1
    endin

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

Exemple 536. Exemple complet de l'opcode MixerSend.

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

Précédent | Niveau supérieur | Suivant
MixerGetLevel | Sommaire | MixerReceive