Une façon simple (et peut-être familière) d’accéder les sons entrants est en utilisant notre ami synth
en spécifiant le synthé :sound_in
:
synth :sound_in
Cela va fonctionner comme n’importe quel synthé comme par exemple synth :dsaw
à l’exception que l’audio généré sera lu directement de la première entrée de votre carte de son système. Sur les portables, c’est typiquement le microphone intégré, mais si vous avez une carte de son externe, vous pouvez brancher n’importe quel audio entrant dans la première entrée.
Une chose que vous pourriez remarquer est que tout comme synth :dsaw
, le synthé :sound_in
dure seulement pour 1 rythme puisqu’il a une enveloppe standard. Si vous voulez le garder ouvert pour un peu plus longtemps, changez les paramètres d’enveloppe ADSR. L’exemple suivant va conserver le synthé ouvert pour 8 rythmes avant de fermer la connexion :
synth :sound_in, sustain: 8
Bien sûr, tout comme n’importe quel synthé normal, vous pouvez facilement ajouter des couches d’effets avec le bloc FX :
with_fx :reverb do
with_fx :distortion do
synth :sound_in, sustain: 8
end
end
Si vous avez connecté une guitare dans votre première entrée, vous devriez être capable de l’entendre avec de la distorsion et de la réverbération jusqu’à ce que le synthé se termine comme prévu.
Vous êtes libre d’utiliser le synthé :sound_in
aussi souvent que vous le voulez de façon concurrente (tout comme vous le faites avec n’importe lequel synthé normal). L’exemple suivant va jouer deux synthés :sound_in
en même temps - l’un via la distorsion et l’autre via la réverbération :
with_fx :distortion do
synth :sound_in, sustain: 8
end
with_fx :reverb do
synth :sound_in, sustain: 8
end
Vous pouvez sélectionner quelle entrée audio vous voulez jouer avec l’option input:
. Vous pouvez également spécifier une entrée stéréo (deux entrées consécutives) en utilisant le synthé :sound_in_stereo
. Par exemple, si vous avez une carte de son avec au moins trois entrées, vous pouvez traiter les deux premières en tant que flux stéréo et y ajouter de la distorsion et la troisième en tant que flux mono et y ajouter une réverbération avec le code suivant :
with_fx :distortion do
synth :sound_in_stereo, sustain: 8, input: 1
end
with_fx :reverb do
synth :sound_in, sustain: 8, input: 3
end
Cependant, même s’il s’agit d’une technique utile, il y a quelques limitations à cette approche. Premièrement, cela fonctionne seulement pour une durée déterminée (étant donné qu’il a une enveloppe ASDR) et deuxièmement, il n’existe pas de façon de changer le FX une fois que le synthé a été déclenché. Ces deux choses sont des requêtes typiques lorsqu’on travaille avec des flux audio externes comme les microphones, les guitares et les synthétiseurs externes. Par conséquent, nous allons regarder la solution de Sonic Pi au problème de manipuler une (potentielle) infinité de flux d’entrée audio en direct : live_audio
.