midipolyaftertouch

midipolyaftertouch — Retourne une valeur d'aftertouch polyphonique MIDI.

Description

midipolyaftertouch 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

midipolyaftertouch xpolyaftertouch, xkey [, 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

xpolyaftertouch -- retourne l'aftertouch polyphonique MIDI de la note sélectionnée durant l'activation MIDI ; il reste inchangé dans les autres cas.

xkey -- spécifie la touche MIDI à lire. Doit normalement être fixé au numéro de note que l'instance de l'instrument exécute.

Si l'instrument a été activé par une entrée MIDI, l'opcode remplace la valeur de xpolyaftertouch par la valeur correspondante de l'entrée MIDI. Si l'instrument n'a PAS été activé par une entrée MIDI, la valeur reste inchangée.

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 midipolyaftertouch. Il utilise le fichier midipolyaftertouch.csd.

Exemple 610. Exemple de l'opcode midipolyaftertouch.

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    -M1  ;;;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 midipolyaftertouch.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

instr 1;midi keyboard and score are used

midinoteoncps p4, p5				;puts MIDI key translated to cycles per second into p4, and MIDI velocity into p5

kafter  init 127				;full open				
midipolyaftertouch  kafter, 1
printk2 kafter					;display the key value when it changes and when key is pressed
 
kvel = p5/127					;scale midi velocity to 0-1
kenv madsr 0.5, 0.8, 0.8, 0.5			;amplitude envelope multiplied by
ain  pluck kenv*kvel, p4, p4, 2, 1		;velocity value			
asig moogvcf2 ain, 300+(kafter*100), .5		;use value of aftertouch to control frequency of filter
     outs  asig, asig				;base freq of filter = 300 Hz

endin
</CsInstruments>
<CsScore>
f 0 30	;runs for 30 seconds
f 2 0 4096 10 1	;sine wave

i 1 0 2 440 100	;play these notes from score as well
i 1 + 2 1440 100
e

</CsScore>
</CsoundSynthesizer>


Sa sortie contiendra des lignes comme celles-ci :

 i1   127.00000
 i1    20.00000
 i1    44.00000

Voir aussi

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

Crédits

Auteur : Michael Gogins

Nouveau dans la version 4.20