ampmidicurve

ampmidicurve — Associe à une vélocité MIDI en entrée un facteur de gain en sortie de valeur maximale 1, en modifiant ce gain de sortie par un intervalle dynamique et un exposant de mise en forme.

Description

Opcode du greffon ampmidid.

Associe à une vélocité MIDI en entrée un facteur de gain en sortie de valeur maximale 1, en modifiant ce gain de sortie par un intervalle dynamique et un exposant de mise en forme. Le gain minimum en sortie vaut 1 moins l'intervalle dynamique. Un exposant de mise en forme valant 1 donne une réponse linéaire ; une augmentation de l'exposant produit un coude décroissant progressivement dans la courbe de réponse du gain.

Syntaxe

igain ampmidicurve ivelocity, idynamicrange, iexponent
kgain ampmidicurve kvelocity, kdynamicrange, kexponent

Initialisation

imidivelocity -- Vélocité MIDI, comprise entre 0 et 127.

idynamicrange -- Intervalle dynamique désiré du gain, entre 0 et 1.

iexponent -- Exposant appliqué pour mettre en forme la courbe de réponse du gain, 1 ou plus.

Exécution

kmidivelocity -- Vélocité MIDI, comprise entre 0 et 127.

kdynamicrange -- Intervalle dynamique désiré du gain, entre 0 et 1.

kexponent -- Exposant appliqué pour mettre en forme la courbe de réponse du gain, 1 ou plus.

Associe à une vélocité MIDI en entrée un facteur de gain en sortie de valeur maximale 1, en modifiant ce gain de sortie par un intervalle dynamique et un exposant de mise en forme. Le gain minimum en sortie vaut 1 moins l'intervalle dynamique. Un exposant de mise en forme valant 1 donne une réponse linéaire ; une augmentation de l'exposant produit un coude décroissant progressivement dans la courbe de réponse du gain, selon l'équation : y = d * (x/127)^h + 1 - d, où y = le gain, x = la vélocité MIDI en entrée (de 0 à 127), d = l'intervalle dynamique (de p à 1), et h = l'exposant de mise en forme (1 ou plus). Cet opcode a été suggéré par Mauro Giubileo.

Exemples

Voici un exemple de l'opcode ampmidicurve. Il utilise le fichier ampmidicurve.csd.

Exemple 60. Exemple de l'opcode ampmidicurve.

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
;;;RT audio out, note=p4 and velocity=p5
-odac --midi-key=4 --midi-velocity-amp=5
;-iadc    ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o ampmidid.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

massign 0, 1	;assign all midi to instr. 1

instr 1

isine ftgenonce 0, 0, 4096, 10, 1 ;sine wave

  ihz = cpsmidinn(p4)
  ivelocity = p5
  ; MIDI velocity to signal amplitude.
  iamplitude = ampdb(ivelocity)
  ; Gain with compressed dynamic range, soft knee.
  igain ampmidicurve ivelocity, .92, 3
  print ivelocity, iamplitude, igain
  a1   oscili 1, ihz, isine
  aenv madsr 0.05, 0.1, 0.5, 0.2
  asig = a1 * aenv * igain
  outs asig, asig

endin

</CsInstruments>
<CsScore>
;       note velocity
i 1 0 2  61  100
i 1 + 2  65  10
e
</CsScore>
</CsoundSynthesizer>


Voir aussi

aftouch, cpsmidi, cpsmidib, midictrl, notnum, octmidi, octmidib, pchbend, pchmidi, pchmidib, veloc

Crédits

Auteur : Michael Gogins
2019