ms2st — Conversion mid-side stéréo.
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.
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).
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).