Jusqu’à maintenant dans cette section nous avons regardé comment avoir plusieurs flux d’audio dans Sonic Pi - soit par l’utilisation du synthé :sound_in
ou par le système puissant live_audio
. En plus de pouvoir travailler avec de multiples flux d’entrée audio, Sonic Pi peut également faire sortir plusieurs flux d’audio. Cela est possible via le FX :sound_out
.
Récapitulons rapidement comment les synthés et les FX de Sonic Pi sortent leur audio à leur contexte FX courant. Par exemple, considérant ceci :
with_fx :reverb do # C
with_fx :echo do # B
sample :bd_haus # A
end
end
La façon la plus simple de comprendre ce qui se passe avec le flux audio est de commencer au niveau le plus interne du contexte audio et de remonter. Dans ce cas, le contexte le plus interne est étiqueté A
et il s’agit de l’échantillon :bd_haus
qui est déclenché. L’audio pour cela va directement dans son contexte qui est B
- l’effet :echo
. Cela ajoute de l’écho à l’audio entrant et l’émet en sortie à son contexte qui est C
- l’effet :reverb
. Cela ajoute ensuite de la réverbération à l’audio entrant et l’émet en sortie à son contexte qui est le niveau le plus haut - les haut-parleurs de gauche et droite (sortie 1 et 2 de votre carte audio). L’audio sort avec un signal stéréo via ces derniers.
Le comportement ci-dessus est vrai pour tous les synthés (incluant live_audio
) et la majorité des FX, à l’exception de :sound_out
. L’effet :sound_out
accomplit deux choses. Premièrement, il émet en sortie son audio au contexte externe comme décrit ci-dessus. Deuxièmement, il émet aussi en sortie son audio directement à une sortie sur votre carte son. Jetons un coup d’œil :
with_fx :reverb do # C
with_fx :sound_out, output: 3 do # B
sample :bd_haus # A
end
end
Dans cet exemple, notre échantillon :bd_haus
sort son audio à son contexte externe qui est l’effet :sound_out
. À son tour, il sort son audio à son contexte externe qui est l’effet :reverb
(comme attendu). Cependant, il sort aussi un mélange mono à la troisième sortie de la carte de son système. L’audio généré dans :sound_out
a donc deux destinations - l’effet :reverb
et la sortie 3 de la carte audio.
Comme nous l’avons vu, par défaut, l’effet :sound_out
ressort un mix mono d’une entrée stéréo vers un canal spécifique en addition de passer le flux stéréo vers le contexte de sortie (comme prévu). Si le fait de sortir un mix mono n’est pas précisément ce que vous voulez faire, il y a plusieurs options alternatives. Premièrement, en utilisant l’option mode:
, vous pouvez choisir de ressortir uniquement le signal d’entrée de gauche ou celui de droite vers la carte-son. Ou vous pouvez utiliser l’effet :sound_out_stereo
pour ressortir vers les sorties de deux cartes-son consécutives. Consultez la documentation de la fonction pour davantage d’informations et des exemples.
Comme nous l’avons également vu, le comportement par défaut pour :sound_out
et :sound_out_stereo
pour les deux est d’envoyer leur audio à leur contexte externe (ce qui est typique de tous les FX) et à la sortie spécifiée de la carte de son. Cependant, vous pourriez occasionnellement vouloir seulement envoyer à la sortie de la carte de son et pas le contexte externe ( et donc ne pas avoir la possibilité que le son soit mélangé et envoyé aux canaux de sorties standards 1 et 2). Cela est possible en utilisation l’option standard FX amp:
qui s’applique sur l’audio après que le FX ait manipulé l’audio :
with_fx :sound_out, output: 3, amp: 0 do # B
sample :loop_amen # A
end
Dans l’exemple ci-dessus, l’échantillon :loop_amen
est envoyé à son contexte extérieur, le FX :sound_out
. Ensuite, cela envoie un mélange mono à la sortie 3 de la carte audio et multiplie l’audio par 0 ce qui le rend silencieux essentiellement. C’est le signal silencieux qui est par la suite envoyé au contexte extérieur de :sound_out
qui est la sortie standard. Par conséquent, les canaux de sorties par défaut ne recevront aucun audio et le canal 3 recevra un mélange mono de tambours d’Amen Break.