Besteleme Aracı Olarak Ruby: Sonic Pi
(bhmt.dev)-
Sonic Pi: Ruby'yi Besteleme Aracı Olarak Kullanmak
-
Arka plan
- Yazar aslında müzik eğitimi almıştı
- Web geliştiricisi olarak çalışırken teknik üretimlere ilgi duymaya başladı
- Çeşitli enstrümanları kullanmak zor olduğu için elektronik müziği denedi ancak başarısız oldu
- Son dönemde Sonic Pi sayesinde müzik ile kodlamayı yeniden birleştirdi
-
Sonic Pi tanıtımı
- Sam Aaron tarafından geliştirilen Sonic Pi, kodla kontrol edilen bir yazılım sentezleyicisidir
- Ruby'yi genişleten alan odaklı bir dil (DSL) kullanarak müzik ve ses kavramlarını eşler
- Örneğin notaları
:c4gibi sembollerle gösterir vechord(:d3, :maj7)gibi akor üreticileri kullanır
-
Projenin hedefi
- Amaç yalnızca Sonic Pi kullanarak bir demo bestelemekti
- MIDI veya harici sample kullanmadan, tamamen kodla beste yapıldı
-
Temel kod örnekleri
use_bpm 70ile BPM ayarlanır,use_synth :pulseile sentezleyici seçilirplay :c2,sleep 0.25gibi kodlarla notalar çalınır ve zaman aralıkları belirlenirplay_pattern_timed [ :c3, :d3, :e3, :g3 ], 0.25ile bir desen çalınır
-
Kod optimizasyonu
- Tekrarlanan kodu azaltmak için fonksiyonlar tanımlanır
def arpeggiate(root, is_minor = false)fonksiyonu ile arpej desenleri oluşturulurin_thread doblokları kullanılarak kod paralel çalıştırılır
-
Paralel yürütme
in_thread doblokları kullanılarak iki "enstrüman" paralel çalıştırılabilir- Örneğin bir iş parçacığında arpej, diğerinde melodi yürütülür
-
Koro düzeni oluşturma
ringkullanılarak birden fazla nota tek bir listede birleştirilirplay_pattern_timed [ring(:c5, :e5)], 4, sustain: 3.8gibi ifadelerle notalar çalınır ve süreleri ayarlanırdef choral_rings(notes, sus)fonksiyonu tanımlanarak koro desenleri sadeleştirilir
-
Canlı döngüler
live_loopkullanılarak sonsuz tekrar eden döngüler oluşturulurlive_loop :harp dogibi döngüler tanımlanır ve içine kod yazılır
-
Sonuç
- Programlama yalnızca bir bilim değil, aynı zamanda bir sanattır
- Kod yazmak yaratıcı bir eylemdir ve başkalarıyla iletişim kurmanın bir yoludur
- Sonic Pi sayesinde müzik ile kodlama birleştirilerek yaratıcı işler üretilebilir
GN⁺ Özeti
- Sonic Pi, Ruby'yi genişleten bir DSL ile kod yazarak müzik bestelemeyi sağlayan bir araçtır
- Bu proje, yalnızca Sonic Pi kullanarak tek bir demo bestelemeyi hedefliyor
- Programlamanın yalnızca bilimsel değil, sanatsal bir yönü de var ve Sonic Pi bunu iyi gösteriyor
- Müzik ile kodlamayı birleştirerek yaratıcı üretim yapmak için iyi bir örnek sunuyor
- Benzer yeteneklere sahip araçlar arasında TidalCycles ve SuperCollider bulunuyor
1 yorum
Hacker News görüşleri