massign — Affecte un numéro de canal MIDI à un instrument de Csound.
ichnl -- numéro de canal MIDI (1-16).
insnum -- numéro de l'instrument d'orchestre de Csound. S'il est inférieur ou égal à zéro, le canal est désactivé (c-à-d. qu'il ne déclenche aucun instrument de csound, bien que l'information soit toujours reçue par des opcodes tels que midiin).
« insname » -- une chaîne de caractères entre guillemets représentant un nom d'instrument.
ireset -- s'il est non nul, les contrôleurs sont réinitialisés ; c'est le comportement par défaut.
Affecte un numéro de canal MIDI à un instrument de Csound. Egalement utile pour s'assurer qu'un instrument particulier (si son numéro est compris entre 1 et 16) ne sera pas déclenché par des messages MIDI noteon (si l'on utilise quelque chose comme midiin pour interpréter l'information MIDI). Dans ce cas, fixer insnum à un nombre inférieur ou égal à 0.
Si ichan est fixé à 0, la valeur de insnum est utilisée pour tous les canaux. On peut envoyer de cette manière tous les canaux MIDI vers un seul instrument de Csound. On peut aussi empêcher le déclenchement des instruments à partir d'évènements de note MIDI en provenance de tous les canaux avec la ligne suivante :
massign 0, 0
Ceci peut être utile si l'on effectue toutes les évaluations MIDI dans Csound avec un instrument actif en permanence (par exemple en utilisant midiin et turnon) pour éviter une doublure de l'instrument quand une note est jouée.
Voici un exemple de l'opcode massign. Il utilise le fichier massign.csd.
Exemple 572. Exemple de l'opcode massign.
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 -+rtmidi=virtual -M0 ;;;realtime audio out and realtime midi in ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ;-o massign.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 giengine fluidEngine ; soundfont path to manual/examples isfnum fluidLoad "19Trumpet.sf2", giengine, 1 fluidProgramSelect giengine, 1, isfnum, 0, 56 massign 0,0 ;disable triggering of all instruments on all channels, but massign 12,10 ;assign instr. 10 to midi channel 12 massign 3,30 ;assign instr. 30 to midi channel 3 instr 10 ; soundfont only on midi channel 12 mididefault 60, p3 midinoteonkey p4, p5 ; in midi notes ikey init p4 ivel init p5 fluidNote giengine, 1, ikey, ivel endin instr 30 ; FM-oscilator only on midi channel 3 mididefault 60, p3 midinoteoncps p4, p5 ; in Hertz icps init p4 iamp init p5 iamp = iamp/127 kenv madsr 0.5, 0, 1, 0.5 asig foscil iamp*kenv, icps, 1, 1.414, 2, 1 outs asig, asig endin instr 99 ; output sound from fluidengine imvol init 7 aL, aR fluidOut giengine outs aL*imvol, aR*imvol endin </CsInstruments> <CsScore> ; sine f 1 0 16384 10 1 i 10 0 2 60 100 ;one note on the trumpet in midi and... i 30 2 2 220 80 ;one FM note in Hz i 99 0 60 ;stay active for 60 sec. e </CsScore> </CsoundSynthesizer>