ampmidid
Prev | Opcodes et opérateurs de l'orchestre | Next

## ampmidid

ampmidid — Fait correspondre musicalement la vélocité MIDI avec l'amplitude dans un intervalle dynamique spécifié en décibels.

## Description

Fait correspondre musicalement la vélocité MIDI avec l'amplitude dans un intervalle dynamique spécifié en décibels.

## Syntaxe

    iamplitude ampmidid ivelocity, idecibels

    kamplitude ampmidid kvelocity, idecibels

## Initialisation

iamplitude -- Amplitude.

ivelocity -- vélocité MIDI, comprise entre 0 et 127.

idecibels -- Intervalle dynamique désiré en décibels.

## Exécution

kamplitude -- Amplitude.

kvelocity -- vélocité MIDI, comprise entre 0 et 127.

Fait correspondre musicalement la vélocité MIDI avec l'amplitude dans un intervalle dynamique spécifié en décibels : a = (m * v + b) ^ 2, où a = amplitude, v = vélocité MIDI, r = 10 ^ (R / 20), b = 127 / (126 * sqrt( r )) - 1 / 126, m = (1 - b) / 127, et R = intervalle dynamique spécifié en décibels. Voir Roger Dannenberg, "The Interpretation of MIDI Velocity," dans Georg Essl and Ichiro Fujinaga (Eds.), Proceedings of the 2006 International Computer Music Conference, Novembre 6-11, 2006 (San Francisco : The International Computer Music Association), pp. 193-196.

## Exemples

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

Example 53. Exemple de l'opcode ampmidid.

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

    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
      idb ampmidid ivelocity, 20	;map to dynamic range of 20 dB.
      idb = idb + 60		;limit range to 60 to 80 decibels
      iamplitude = ampdb(idb)	;loudness in dB to signal amplitude

    a1   oscili iamplitude, ihz, isine
    aenv madsr 0.05, 0.1, 0.5, 0.2
    asig = a1 * aenv
         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
2006

Prev | Up | Next
ampmidi | Home | areson