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, kTrigger midiarp kRate[, kMode]

Exécution

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


Crédits

Auteur : Rory Walsh
2017