Sonic Pi ile Rastgele Sayılar Kullanarak Müzik yapmak
4.Bölümle karşınızdayım. Sonic Pi nin kod yazarak müzik yapmaya yaradığından bahsetmiştim. Önceki bölümlere göz atmak için bölüm 1(sonic pi nedir) , bölüm 2 (ses süresi ve genliği ayarlama) , bölüm 3 (örnek melodiler)bölümlere göz atabilirsiniz.
Bu bölüm de ilk olarak rastgele sayılar vererek ses oluşturacağız. Kullanacağımız metot rrand
iki değer alıyor. İlk değer en küçük değer(min) , ikinci değer en büyük değer (max) şeklinde. Kullanımı aşağıdaki gibidir.
play rrand(50, 95)
Burada dönen sayının 83.7527 olduğunu sağ alt taraftan görmüşsünüzdür. Tekrar tekrar çalıştırırsak aynı değerin döndüğünü fark etmişsinizdir. Bunun nedeni Sonic Pi yi kullanan herkeste aynı sayının dönmesi için yapılmış bir ayarlamadır.
Farklı sesler duymak isteseniz bir döngü kullanabilirsiniz. Örnek ;
loop do
play rrand(50, 95)
sleep 0.5
end
Burada duraklama zamanı eklediğimiz için her dönüşte farklı bir ses üretiyor olacak. Deneyim ve görün. (Stop butonuna basarak durdurabilirsiniz.)
3. bölümde gördüğümüz sample metotuyla birlikte kullanırsak neler olabileceğine bakalım.
loop do
sample :perc_bell, rate: (rrand 0.125, 1.5)
sleep rrand(0.2, 2)
end
Güzel bir çan sesi melodisi oluşturduk.
2. bölümde gördüğümüz ön tanımlı sesleri rastgale sayılar ile kullanalım. Bunu cutoff metodu ile birlikte kullanacağız. Kullanımı aşağıdaki gibidir.
use_synth :tb303loop do
play 50, release: 0.1, cutoff: rrand(60, 120)
sleep 0.125
end
Daha farklı sesler çıktığını fark etmişsinizdir. Değiştirerek tekrar çalıştıralım.(örneğin saw kullanabiliriz tb303 yerine)
Rastgele sayıları beğenmediyseniz , beğeneceğinizi düşündüğüm farklı bir metoddan bahsetmek istiyorum.
use_random_seed
Denemeden önce ilk olarak aşağıdaki gibi çalıştıralım.
5.times do
play rrand(50, 100)
sleep 0.5
end
Sonra aşağıdaki metodu ekleyerek tekrar çalıştıralım.
use_random_seed 40
5.times do
play rrand(50, 100)
sleep 0.5
end
Aradaki farkı duymuşsunuzdur.
Sadece belli notaları çalmak isteyebilirsiniz. Ya da sadece belli sayıların karşılıklarına gelen sesleri çalmak isteyebilirsiniz. Bunu için choose metodunu kullanacağız.
loop do
play choose([:C, :D, :E])
sleep 1
end
Burada seçtiğimiz notaları 1. bölümde görmüştük.
Farklı bir kullanım olarak ;
loop do
play 60, amp: rand
sleep 0.25
end
Yukarıdaki kodda 0.25 lik zaman aralığı ile random genlik alabiliriz.
Bu bölümü burada bitiriyorum. Diğer bölüm daha eğlenceli olacak bol bol denemeler yaparak beklemede kalın arkadaşlar.
Sonraki bölüm ;
Bana ulaşabileceğiniz iletişim adresleri,
nafidurmus.com| Twitter | Instagram | Facebook | Medium
Yararlandığım kaynak ;