midiarp

midiarp — Génère des arpèges basés sur les notes MIDI tenues.

Description

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.

Syntaxe

kMidiNoteNum, kCountermidiarp kRate[, kMode]

Initialisation

kRate -- fixe la vitesse à laquelle les nouvelles notes sont générées et contrôle la fréquence du signal d'impulsions métronomiques.

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.

Exécution

kMideNoteNum -- le numéro de note MIDI courant dans l'arpège.

kCounter -- 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] 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.

Exemple

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 549. Example de l'opcode midiarp

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in    No messages
-odac 	-d    -m0d     -M0  -+rtmidi=virtual ;;;RT audio I/O with MIDI in
; For Non-realtime ouput leave only the line below:
; -o midiin.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

massign 1, -1; prevent triggering of instrument with MIDI

instr 100
kMode = 3
kTempo = 6
kNote, kCounter midiarp kTempo

kFilterFreq oscil 2000, .05
;if kCounter is 1 trigger instrument 2 to play
if kCounter==1 then 	
	event "i", 200, 0, 2, kNote, kFilterFreq+2200
endif

endin

instr 200
kEnv expon .4, p3, .001
aOut vco2 kEnv, cpsmidinn(p4)*2		;convert note number to cps
aFilter moogladder aOut, p5, 0
outs aFilter, aFilter
endin

</CsInstruments>
<CsScore>
i100 0 1000
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : Rory Walsh
2017