massign

massign — Affecte un numéro de canal MIDI à un instrument de Csound.

Description

Affecte un numéro de canal MIDI à un instrument de Csound.

Syntaxe

massign ichnl, insnum[, ireset]
massign ichnl, "insname"[, ireset]

Initialisation

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.

Exécution

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.

Exemples

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>


Voir aussi

ctrlinit

Crédits

Auteur : Barry L. Vercoe - Mike Berry
MIT, Cambridge, Mass.

Nouveau dans la version 3.47 de Csound

Le paramètre ireset est nouveau dans Csound5

Merci à Rasmus Ekman pour avoir indiqué le bon intervalle pour le numéro de canal MIDI.