Uitgaand Geluid

Een eenvoudige (en mogelijk bekende) manier om geluids-ingangen te benaderen is het bekende synth met de :sound_in synth:

synth :sound_in

Dit werkt eigenlijk gelijk elke andere synth zoals synth :dsaw met als bijzonderheid dat het gegenereerde geluid direct uit de eerste geluids-ingang van je computers geluids-kaart word gelezen. Op een laptop is dit meestal de ingebouwde microfoon, maar het je externe geluidskaart dan kun je zelf bepalen wat je in de eerste ingang plugt.

Duurtijd vergroten

Zoals je merkt duurt het geluid van :sound_in, net als bij synth :dsaw, maar 1 tel. Ook op :sound_in is namelijk de standaard envelope van toepassing. Door de envelope instellingen aan te passen kun je het kanaal langer houden. Het volgende houd de synth bijvoorbeeld 8 tellen open voordat het kanaal weer gesloten word:

synth :sound_in, sustain: 8

FX Toevoegen

Natuurlijk kun je net als bij andere synth een effect toepassen met een FX block (with_fx):

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

Als als een gitaar hebt aangesloten op de eerste ingang dan kun je deze nu horen met de toegevoegde vervorming en echo totdat de synth zoals verwacht weer stopt.

Je bent helemaal vrij om de :sound_in synth zo vaak je maar wilt gelijktijdig te gebruiken (net zoals dat kan met alle andere synth). Het volgende speelt bijvoorbeeld twee :sound_in synths tegelijk, waarbij er één met vervorming en één met een echo te horen is:

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

Meerdere inputs

Je kunt aangeven welke audio ingang je wilt gebruiken met de input: optie. Om een stereo ingang aan te geven (dit zijn eigenlijk twee opvolgende mono kanalen) gebruik je de :sound_in_stereo optie van de synth. Heb je bijvoorbeeld een geluidskaart met tenminste drie ingangen, dan kunt je de eerste twee bundelen tot een vervormd stereo geluid en de derde als een mono geluid met echo, met de volgende 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

Mogelijke problemen

Alhoewel dit een handige feature is, heeft het ook zo zijn beperkingen. Allereerst werkt het maar voor een vastgestelde tijd (vanwege de aanwezigheid van de ADSR envelop op alle synth). Ten tweede is er geen manier om de effecten te veranderen zodra de synth is gestart. Beide van deze beperkingen zijn veel gevraagd wanneer er gewerkt word met externe audio, denk hierbij aan microfoons, gitaren en externe synthesizers. Sonic Pi heeft een oplossing voor het probleem van het manipuleren van een (potentieel) oneindig live geluid: live_audio.