midicontrolchange

midicontrolchange — Retourne la valeur d'un changement de contrôle MIDI.

Description

midicontrolchange est conçu pour simplifier l'écriture d'instruments que l'on peut utiliser de manière interchangeable avec une partition ou depuis l'entrée MIDI, et pour faciliter l'adaptation d'instruments écrits à l'origine pour une partition au fonctionnement à partir d'une entrée MIDI.

En général, il doit être possible d'écrire des définitions d'instrument qui fonctionnent de la même manière avec une partition et avec le MIDI, que ce soit un fichier MIDI ou une entrée MIDI en , sans utiliser d'instructions conditionnelles supplémentaires, et qui tirent pleinement avantage des messages de voix MIDI.

Noter que la liaison entre des intruments de Csound et les numéros de canal MIDI se fait en utilisant l'opcode massign lors d'une exécution en . Pour les exécutions de fichier MIDI, les numéros d'instruments sont liés par défaut au canal MIDI + 1, mais ces valeurs par défaut peuvent être modifiées par tout message de changement de programme dans le fichier.

Syntaxe

midicontrolchange xcontroller, xcontrollervalue [, ilow] [, ihigh]

Initialisation

ilow (facultatif) -- valeur basse facultative après reéchellonnement, 0 par défaut.

ihigh (facultatif) -- valeur haute facultative après reéchellonnement, 127 par défaut.

Exécution

xcontroller -- spécifie un numéro de contrôleur MIDI (0-127).

xcontrollervalue -- retourne la valeur du contrôleur MIDI durant l'activation MIDI, et reste inchangé dans les autres cas.

Si l'instrument a été activé par une entrée MIDI, l'opcode remplace les valeurs de xcontroller et de xcontrollervalue par les valeurs correspondantes venant de l'entrée MIDI. Si l'instrument n'a PAS été activé par une entrée MIDI, les valeurs de xcontroller et de xcontrollervalue restent inchangées.

Grâce à cela, les p-champs de la partition peuvent recevoir leur valeur de données MIDI en entrée durant l'activation MIDI, et de la partition dans les autres cas.

[Note] Adaptation d'un instrument de Csound activé par partition.

Voir la section Opcodes pour l'Interopérabilité MIDI/Partition pour plus de détails sur l'adaptation d'instruments pilotés par partition au MIDI et vice-versa.

Exemples

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

Exemple 539. Exemple de l'opcode midicontrolchange.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac  -+rtmidi=virtual   -M0  ;;;realtime audio out and midi in 
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o midicontrolchange.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1
; use slider of contr. 7 of virtual keyboard
kcont init 1	; max. volume
midicontrolchange 7, kcont, 0, 1; use controller 7, scaled between 0 and 1	
printk2 kcont	; Display the key value when it changes and key is pressed

kenv madsr 0.5, 0.8, 0.8, 0.5		; envelope multiplied by
asig pluck kenv*kcont, 220, 220, 2, 1	; value of controller 7	 
     outs  asig, asig

endin
</CsInstruments>
<CsScore>
f 0 30
f 2 0 4096 10 1	

i 1 10 2	; play a note from score as well
e

</CsScore>
</CsoundSynthesizer>


Voir aussi

midichannelaftertouch, mididefault, midinoteoff, midinoteoncps, midinoteonkey, midinoteonoct, midinoteonpch, midipitchbend, midipolyaftertouch, midiprogramchange

Crédits

Auteur : Michael Gogins

Nouveau dans la version 4.20

Merci à Rasmus Ekman pour avoir indiqué les intervalles corrects pour le canal MIDI et les numéros de contrôleur.