midinoteoff — Retourne une valeur de note off MIDI.
Cet opcode est incorrect. Il est identique à midinoteonkey. Il ne fait pas ce que l'on attendrait de son nom, car il ne répond pas aux évènements noteoff, mais il est activé par noteon. On peut utiliser l'opcode midiin pour recevoir des évènements noteoff et leurs vélocités.
midinoteoff 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.
xkey -- retourne une touche MIDI durant l'activation MIDI, et reste inchangé dans les autres cas.
xvelocity -- retourne une vélocité 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 xkey et de xvelocity 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 xkey et de xvelocity 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.
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. |
Voici un exemple de l'opcode midinoteoff. Il utilise le fichier midinoteoff.csd.
Exemple 599. Exemple de l'opcode midinoteoff.
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 -Q1 ;;;realtime audio out and midi in and midi out ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o midinoteoff.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ;uses external midi device kkey init 0 ;initialize key number kvel init 0 ;initialize velocity midinoteoff kkey,kvel ;MIDI noteoff value printk2 kvel ;display noteoff value midion 1, kkey, kvel ;sent note to external device endin </CsInstruments> <CsScore> f 0 30 ;runs for 30 seconds i 1 0 2 62 ; play these notes from score as well i 1 + 2 65 e </CsScore> </CsoundSynthesizer>
Sa sortie contiendra des lignes comme celles-ci :
i1 60.00000 i1 76.00000