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.
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
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
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
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
.