ms2st

ms2st — Conversion mid-side stéréo.

Description

Cet opcode implémente une conversion mid-side (MS) vers stéréo avec un contrôle de largeur. C'est une fonction pure sans effet de bord.

L'opcode ms2st décode le signal stéréo, mais il offre aussi la possibilité d'ajuster la largeur stéréo de chaque son stéréo. Un fichier stéréo peut être encodé par l'opcode st2ms puis décodé avec ms2st. Il est ainsi possible d'ajuster la largeur du champ stéréo.

Syntaxe

aleft, aright ms2st as, am, kwidth

Exécution

aleft -- sortie sur le canal gauche.

aright -- sortie sur le canal droite.

am -- signal mid en entrée.

as -- signal side en entrée.

kwidth -- largeur stéréo (de 0 à 1). A 0, il n'y a pas de signal side en sortie, et à 1 le signal mid est absent. Une valeur de 0.5 restitue une conversion stéréo vers MS exacte (st2ms).

Exemples

Voici un exemple de l'opcode ms2st. Il utilise les fichiers ms2st.csd, MSjungle_interleaved.wav, MSjungleMid.wav et MSjungleSide.wav.

Exemple 639. Exemple de l'opcode ms2st.

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 RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o ms2st.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

; by  Menno Knevel - 2021
; sample = ambient sound of waterfall + animals (monkey, birds)

instr 1 ; MS sample is interleaved

am, as    diskin2    "MSjungle_interleaved.wav", 1, 0, 1 ; interleaved stereo, MS encoded
kwidth = p4                                              ; left = M, right = S
al, ar ms2st  am, as, kwidth
outs al, ar
endin

instr 2 ; 2 separate samples 

am    diskin2    "MSjungleMid.wav", 1        ; M sound as a separate mono sound
as    diskin2    "MSjungleSide.wav", 1       ; S sound as a separate mono sound
kwidth = p4     
al, ar ms2st  am, as, kwidth
outs al, ar

endin
</CsInstruments>
<CsScore>

i1 0 6.7 0          ; M only
i1 + 6.7 .3         ; M and a bit of S
i1 + 6.7 .5         ; M + S equal volume
i1 + 6.7 1          ; S only 

i2 28 6.7 0         ; M only
i2 +  6.7 .3        ; M and a bit of S
i2 +  6.7 .5        ; M + S equal volume
i2 +  6.7 1         ; S only
e
</CsScore>
</CsoundSynthesizer>


Dans l'instr 1 de l'example, le fichier stéréo encodé MS est entrelacé. Le canal gauche du signal entrelacé sera décodé comme le signal M (=Mid). Le canal droit sera décodé en gauche et droite. Dans l'instr 2 cependant, deux canaux séparés sont utilisés. L'utilisateur décide lequel affecter au signal médiant (M) et au signal latéral (S).

En haut le fichier entrelacé encodé MS (instr 1), en bas les deux fichiers séparés (instr 2)

En haut le fichier entrelacé encodé MS (instr 1), en bas les deux fichiers séparés (instr 2)

Voir aussi

On peut trouver plus d'information sur MS stéréo sur la page wikipedia.

st2ms

Crédits

Auteur : Victor Lazzarini
Avril 2021