Sound Ein

Ein einfacher (wahrscheinlich bekannter) Weg um Sound Eingänge zu erreichen ist unser Freund synth beim Festlegen des :sound_in Synth:

synth :sound_in

Dies wird genause Funktionieren wie jeder andere Synth, wie zum Beispiel synth:dsaw mit der Außnahme, dass der gespielte Ton direkt vom ersten Eintrag deiner Systemsoundkarte gelesen wird. Auf Laptops ist dies normalerweise das eingebaute Mikrofon, falls du aber eine externe Soundcarte hast, kannst du jeden Audioeingang an den ersten Eintrag anschließen.

Die Dauer erhöhen

Eine Sache die du vielleicht schon bemerkt hast ist, dass genauso wie synth:dsaw der :sound_in Synth nur für einen Beat hälft weil er standartmäßig Verpackt ist. Falls du ihn für etwas länger offen halten möchtest, kannst du die ADSR-Verpackungseinstellungen ändern:

synth :sound_in, sustain: 8

FX hinzufügen

Natürlich ist es wie jeder andere Synth, wir können einfach mit dem FX-Block Effekte auftragen:

with_fx :reverb do
  with_fx :distortion do
    synth :sound_in, sustain: 8
  end
end

Falls du eine Gitarre an den ersten Eingang angeschlossen hast, solltest du es jetzt mit einer Vernzerrung und Hall, bis zum ende des Synth, wie erwartet, hören können.

Benutze :sound_in Synth so oft du möchtest (genauso wie du es mit jedem anderen Synth machen würdest). Zum Beispiel werden im Folgenden zwei :sound_in Synths gleichzeitig gespielt - einer mit Verzerrung der andere mit Hall:

with_fx :distortion do
  synth :sound_in, sustain: 8
end
with_fx :reverb do  
  synth :sound_in, sustain: 8
end

Mehrteilige Ketten

You can select which audio input you want to play with the input: opt. You can also specify a stereo input (two consecutive inputs) using the :sound_in_stereo synth. For example, if you have a sound card with at least three inputs, you can treat the first two as a stereo stream and add distortion and the third as a mono stream and add reverb with the following code:

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

Mögliche Probleme

However, although this is a useful technique, there are a couple of limitations to this approach. Firstly, it only works for a specific duration (due to it having an ADSR envelope) and secondly, there’s no way to switch the FX around once the synth has been triggered. Both of these things are typical requests when working with external audio feeds such as microphones, guitars and external synthesisers. We’ll therefore take a look at Sonic Pi’s solution to the problem of manipulating a (potentially) infinite stream of live audio input: live_audio.