rms — Détermine la valeur efficace d'un signal audio.
Détermine la valeur efficace d'un signal audio. La valeur instantanée passe à travers un filtre passe-bas pour en sortir une valeur moyenne comme dans un VU-mètre.
ihp (facultatif, 10 par défaut) -- point à mi-puissance (en Hz) d'un d'un filtre passe-bas interne spécial. La valeur par défaut est 10.
iskip (facultatif, 0 par défaut) -- disposition initiale de l'espace de données interne (voir reson). La valeur par défaut est 0.
asig -- signal audio en entrée
kres -- valeur efficace du signal d'entrée issue du filtre passe-bas
Les valeurs de sortie kres de rms suivent la valeur efficace de l'entrée audio asig. Cette unité n'est pas un modificateur de signal, mais fonctionne plutôt comme une mesure de la puissance du signal. Elle utilise un filtre passe-bas interne pour rendre la réponse plus lisse. On peut utiliser ihp pour contrôler ce lissage. Plus les valeurs sont importantes, plus la mesure est "dynamique".
On peut aussi utiliser cet opcode comme suiveur d'enveloppe.
La sortie kres de cet opcode est donnée en amplitude et dépend de 0dbfs. Pour une sortie en décibels, il faut utiliser dbamp
arms rms asig ; get rms value of signal asig
Voici un exemple de l'opcode rms. Il utilise le fichier rms.csd.
Exemple 855. Exemple de l'opcode rms.
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 ; Audio out Audio in No messages -odac -iadc -d -m0 ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o rms.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 ksmps = 128 nchnls = 1 ;Example by Andres Cabrera 2007 0dbfs = 1 FLpanel "rms", 400, 100, 50, 50 gkrmstext, gihrmstext FLtext "Rms", -100, 0, 0.1, 3, 110, 30, 60, 50 gkihp, gihandle FLtext "ihp", 0, 10, 0.05, 1, 100, 30, 220, 50 gkrmsslider, gihrmsslider FLslider "", -60, -0.5, -1, 5, -1, 380, 20, 10, 10 FLpanelEnd FLrun FLsetVal_i 5, gihandle ; Instrument #1. instr 1 a1 inch 1 label: kval rms a1, i(gkihp) ;measures rms of input channel 1 rireturn kval = dbamp(kval) ; convert to db full scale printk 0.5, kval FLsetVal 1, kval, gihrmsslider ;update the slider and text values FLsetVal 1, kval, gihrmstext knewihp changed gkihp ; reinit when ihp text has changed if (knewihp == 1) then reinit label ;needed because ihp is an i-rate parameter endif endin </CsInstruments> <CsScore> ; Play Instrument #1 for one minute i 1 0 60 e </CsScore> </CsoundSynthesizer>