ampmidicurve
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## 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 55. 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

Précédent | Niveau supérieur | Suivant
ampmidi | Sommaire | ampmidid