Przygotowanie krótkiego utworu (~1min) w środowisku Sonic Pi, spełniającego następujące wymagania:
Terry Riley's "In C" - artykuł anglojęzyczny stanowiący dobry wstęp do minimalizmu.
hz_to_midi
)(ring :d1, :d2, :a2, :d3, :a3, :d4, :a4, :d5, :a5, :d6, :fs6)
,
cały czas zwiększając głośność aż do osiągnięcia maksymalnej głośności (pełnej, 1.0)Sonic Pi posiada wbudowany generator liczb pseudolosowych, którego stan początkowy jest taki sam przy każdym uruchomieniu.
rand n
- losowa liczba zmiennoprzecinkowa od 0 do n
rand_i n
- losowa liczba całkowita od 0 do n
(bez n
)rrand min, max
- losowa liczba całkowita od min
do max
rrand_i min, max
- losowa liczba całkowita od min
do max
(bez n
)use_random_seed seed
- ustawienie seed
jako wartości od której zacząć generować liczby losoweakord = []
# Akord ma 12 dźwięków
12.times do
# Akord składa się z dźwięków od 60 do 72
akord.push(rrand_i(60, 72))
end
# Odtwarzamy akord
play akord
x = play [:c4, :e4, :g4], duration: 4, note_slide: 1
sleep 1
control x, notes: [:f4, :d4, :a4]
# Wylosuj dźwięk
n = note(:c4)
# Powtórz dwa razy
2.times do
# Stwórz wątek
in_thread do
# Powtarzaj w nieskończoność
loop do
# Wylosuj przesunięcie
d = rand(-12, 12)
# Odtwórz dźwięk
play (n + d), amp: 1 / 2.0
sleep 1
# Zapisz przesunięcie
n += d
# Jeśli jest poza zakresem powróć do niego
if n <= note(:c2) or n >= note(:c6)
n = note(:c4)
end
end
end
end