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

## 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 561. 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.

Précédent | Niveau supérieur | Suivant
marimba | Sommaire | max