ampmidid — Fait correspondre musicalement la vélocité MIDI avec l'amplitude dans un intervalle dynamique spécifié en décibels.
Opcode du greffon ampmidid.
Fait correspondre musicalement la vélocité MIDI avec l'amplitude dans un intervalle dynamique spécifié en décibels.
iamplitude -- Amplitude.
ivelocity -- vélocité MIDI, comprise entre 0 et 127.
idecibels -- Intervalle dynamique désiré en décibels.
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.
Voici un exemple de l'opcode ampmidid. Il utilise le fichier ampmidid.csd.
Exemple 61. 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>