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.

Exemple 54. 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