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

## rms

rms — Détermine la valeur efficace d'un signal audio.

## Description

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.

## Syntaxe

    kres rms asig [, ihp] [, iskip]

## Initialisation

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.

## Exécution

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

## Exemples

    arms rms    asig ; get rms value of signal asig

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

Exemple 899. 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
    -odac     ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o rms.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    ; By Stefano Cucchi 2020

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    instr 1

    areference diskin "fox.wav"
    krms rms  areference       ; take the RMS of "fox.wav"
    asound oscili krms, 440 ; use RMS as amplitude of sine wave
    outch 1, areference
    outch 2, asound
    endin

    </CsInstruments>
    <CsScore>
    i 1 0 4
    e
    </CsScore>
    </CsoundSynthesizer>

Voici un autre exemple de l'opdcode rms. Il utilise le fichier rms-FLTK.csd.

Exemple 900. Exemple avancé 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>

## Voir aussi

balance, gain

Précédent | Niveau supérieur | Suivant
rireturn | Sommaire | rnd