Przygotowanie krótkiego utworu (~30s) w środowisku Sonic Pi, spełniającego następujące wymagania:
play
i synth
play :c4
sleep 1
# zachowuje się tak samo jak:
synth current_synth, note: :c4
sleep 1
with_synth :blade do
play :c4
sleep 1
end
# zachowuje się tak samo jak:
synth :blade, note: :c4
sleep 1
# Brak przejścia między dźwiękami
play :c4, duration: 1
sleep 1
play :c5, duration: 1
sleep 1
play :c4, duration: 1
# Skokowe przejścia między dźwiękami
x = play :c4, duration: 3
sleep 1
x.control note: :c5
sleep 1
x.control note: :c4
# Płynne przejścia między dźwiękami
x = play :c4, duration: 3, note_slide: 0.5
sleep 1
x.control note: :c5
sleep 1
x.control note: :c4
Poniższe przykłady brzmią identycznie.
# Przykład 1
with_synth :prophet do
with_synth_defaults res: 0.9 do
play :c4
play :e4
play :g4
end
sleep 1
with_synth_defaults res: 0.1 do
play :c4
play :e4
play :g4
end
end
# Przykład 2
synth :prophet, note: :c4, res: 0.9
synth :prophet, note: :e4, res: 0.9
synth :prophet, note: :g4, res: 0.9
sleep 1
synth :prophet, note: :c4, res: 0.1
synth :prophet, note: :e4, res: 0.1
synth :prophet, note: :g4, res: 0.1
sleep 1
dsaw
synth :saw, note: :c4
synth :saw, note: :cs4
sleep 1
# detune: 1 przesuwa drugą falę o 1 dźwięk MIDI
synth :dsaw, note: :c4, detune: 1
:piano
synth :piano, hard: 1
sleep 1
synth :piano, hard: 0.5
sleep 1
synth :piano, vel: 0.5
sleep 1
synth :piano, hard: 0.2
sleep 1
tick
in_thread do
4.times do
play :e4, duration: 0.5
sleep 1
end
end
sleep 0.5
in_thread do
loop do
play :f4, duration: 0.5
sleep 1
end
end
live_loop :primary do
4.times do
play :c5, duration: 0.125
sleep 0.25
end
end
live_loop :secondary do
play :c4
play :e4
play :g4
sync :primary
end
tick
do odtwarzania kolejnych dźwiękówlive_loop :up do
play (note(:c4) + tick)
sleep 1
end