midion — Génère des messages de note MIDI au taux-k.
kchn -- numéro de canal MIDI (1-16)
knum -- numéro de note (0-127)
kvel -- vélocité (0-127)
midion (note on au taux-k) joue des notes MIDI avec les valeurs courantes de kchn, knum et kvel. Ces arguments peuvent varier au taux-k. Chaque fois que la valeur MIDI convertie de l'un de ces arguments change, la dernière note MIDI jouée par l'instance courante de midion est immédiatement arrêtée et une nouvelle note avec le nouvel argument est activée. Cet opcode, comme moscil, peut générer des textures mélodiques très complexes s'il est contrôlé par des signaux complexes de taux-k.
Il peut y avoir n'importe quel nombre d'opcodes midion dans le même instrument de Csound, ce qui permet une polyphonie de style contrapointique avec un seul instrument.
Voici un exemple de l'opcode midion. Il utilise le fichier midion_simple.csd.
Exemple 605. Exemple simple de l'opcode midion.
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.
Cet exemple génère un accord mineur sur chaque note reçue sur l'entrée MIDI. Il génère des notes MIDI sur la sortie MIDI de Csound, si bien qu'il faut y connecter quelque chose.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in No messages -odac -iadc -d -M0 -Q1 ;;;RT audio I/O with MIDI in </CsOptions> <CsInstruments> sr = 44100 kr = 4410 ksmps = 10 nchnls = 2 ; Example by Giorgio Zucco 2007 instr 1 ;Triggered by MIDI notes on channel 1 ifund notnum ivel veloc knote1 init ifund knote2 init ifund + 3 knote3 init ifund + 5 ;minor chord on MIDI out channel 1 ;Needs something plugged to csound's MIDI output midion 1, knote1,ivel midion 1, knote2,ivel midion 1, knote3,ivel endin </CsInstruments> <CsScore> ; Dummy ftable f0 60 </CsScore> </CsoundSynthesizer>
Voici un autre exemple de l'opcode midion. Il utilise le fichier
midion_scale.csd.
Exemple 606. Exemple de l'opcode midion pour générer aléatoirement des notes sur une échelle.
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.
Cet exemple génère aléatoirement des notes prises dans une échelle donnée pour chaque note reçue sur l'entrée MIDI. Il génère des notes MIDI sur la sortie MIDI de Csound, si bien qu'il faut y connecter quelque chose.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in No messages -odac -iadc -d -M0 -Q1 ;;;RT audio I/O with MIDI in </CsOptions> <CsInstruments> sr = 44100 kr = 4410 ksmps = 10 nchnls = 2 ; Example by Giorgio Zucco 2007 instr 1 ; Triggered by MIDI notes on channel 1 ivel veloc krate = 8 iscale = 100 ;f ; Random sequence from table f100 krnd randh int(14),krate,-1 knote table abs(krnd),iscale ; Generates random notes from the scale on ftable 100 ; on channel 1 of csound's MIDI output midion 1,knote,ivel endin </CsInstruments> <CsScore> f100 0 32 -2 40 50 60 70 80 44 54 65 74 84 39 49 69 69 ; Dummy ftable f0 60 </CsScore> </CsoundSynthesizer>