midiarp — Génère des arpèges basés sur les notes MIDI tenues.
midiarp construit des arpèges basés sur les notes MIDI tenues. L'opcode produit des notes sous la forme de numéros de note MIDI, et un signal métronomique qui peut être utilisé pour séquencer les notes. On peut choisir la vitesse à laquelle les notes sont générées et aussi choisir parmi un ensemble de modèles d'arpèges.
kRate -- fixe le taux en cycles par seconde auquel les nouvelles notes sont générées.
kMode -- Facultatif. Fixe le type d'arpège. 0 pour ascendant et descendant, 1 pour ascendant, 2 pour descendant, 3 pour aléatoire. 0 est la valeur par défaut.
kMideNoteNum -- le numéro de note MIDI courant dans l'arpège.
kTrigger -- une impulsion métronomique qui peut être utilisée pour déclencher l'exécution des notes de l'arpège. Ce signal produit un 1 suivi de 0 à chaque cycle. La fréquence est fixée par le paramètre kRate en entrée.
Note | |
---|---|
Il est important que l'instrument contenant l'opcode midiarp ne soit pas activé en continu à chaque nouvelle note MIDI. Pour éviter ceci, il faut utiliser l'opcode massign comme dans l'exemple ci-dessous. |
Cet exemple montre l'utilisation de midiarp pour déclencher des arpèges réalisés sur un second instrument. L'instrument 100 reçoit des notes MIDI en entrée et déclenche l'action de l'instrument 200. massign est utilisé pour éviter que l'instrument 100 ne soit activé chaque fois qu'une nouvelle note MIDI est fournie. Cet exemple utilise le fichier midiarp.csd.
Exemple 588. Example de l'opcode midiarp
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in No messages -odac -d -m0d --midi-key-cps=4 --midi-velocity-amp=5 -F midiChords.mid ; For Non-realtime ouput leave only the line below: ; -o midiin.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 massign 1, -1; prevent triggering of instrument with MIDI instr 200 kMode = 0 kTempo = 8 kNote, kTrigger midiarp kTempo kFilterFreq lfo 2000, .05, 1 ;if kTrigger is 1 trigger instrument 300 to play if kTrigger==1 then event "i", 300, 0, .5, .5, kNote, abs(kFilterFreq)+200 endif endin instr 300 kEnv expon p4, p3, .001 aOut vco2 kEnv, cpsmidinn(p5) ;convert note number to cps aFilter moogladder aOut, p6, .2 outs aFilter, aFilter endin </CsInstruments> <CsScore> i200 0 60 </CsScore> </CsoundSynthesizer>