3 puan yazan GN⁺ 2024-08-11 | 1 yorum | WhatsApp'ta paylaş
  • 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ı :c4 gibi sembollerle gösterir ve chord(: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 70 ile BPM ayarlanır, use_synth :pulse ile sentezleyici seçilir
    • play :c2, sleep 0.25 gibi kodlarla notalar çalınır ve zaman aralıkları belirlenir
    • play_pattern_timed [ :c3, :d3, :e3, :g3 ], 0.25 ile 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şturulur
    • in_thread do blokları kullanılarak kod paralel çalıştırılır
  • Paralel yürütme

    • in_thread do blokları 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

    • ring kullanılarak birden fazla nota tek bir listede birleştirilir
    • play_pattern_timed [ring(:c5, :e5)], 4, sustain: 3.8 gibi ifadelerle notalar çalınır ve süreleri ayarlanır
    • def choral_rings(notes, sus) fonksiyonu tanımlanarak koro desenleri sadeleştirilir
  • Canlı döngüler

    • live_loop kullanılarak sonsuz tekrar eden döngüler oluşturulur
    • live_loop :harp do gibi 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

 
GN⁺ 2024-08-11
Hacker News görüşleri
  • Canlı kodlamayla ilgileniyorsanız Glicol'u denemeye değer
  • TidalCycles da tavsiye edilebilir. Haskell ve Ruby'nin DSL oluşturma yeteneği övülüyor
  • Glicol'ün dil tasarımı, synthesizer'dan ilham alan sözdizimi, beste yapma hızı ve ses tasarımının kullanım kolaylığına odaklanıyor
    • Mevcut programlama alışkanlıklarını yansıtırken mevcut dillere bağlı kalmayan bir DSL tasarlamak amaçlanıyor
  • Ruby, sözdizimi neredeyse İngilizce gibi olduğu için çok kullanışlı
  • Sonic Pi'nin yaratıcısı Sam Aaron'ın canlı performansını izlemiş biri var
    • Kod her değiştiğinde müziğin evrilmesi etkileyici bulunmuş
  • Bir Ruby geliştiricisi olarak, algoritmik olarak üretilen müzik yapmak için kullanılabilmesi çok ilginç geliyor
    • Örneğin, gürültülü git repository olaylarını algoritmik müziğe dönüştürmek için kullanılabilir gibi görünüyor
  • Bir müzisyen olarak, MIDI klavye veya akustik enstrüman kaydedip loop'lamak daha iyi bir UX sunuyor
    • Ruby DSL kullanarak her şeyi girebilirsiniz ama piyano klavyesiyle karşılaştırıldığında UX iyi değil
    • Logic'in yerini alacak bir şey olarak kullanılmayacak gibi görünüyor
  • Programlama yoluyla müziğe başka bir yaklaşım olarak Python için scamp tavsiye ediliyor
    • Yazarı YouTube'a çeşitli videolar yüklemiş
  • Birkaç yıl önce Sonic Pi kullanarak THX Deep Note'u yeniden oluşturan bir YouTube videosu izlemiş biri var
    • Başta ne yapacağını söylemeden sesi azar azar ayarlayıp sonunda Deep Note'u ortaya çıkarıyor
    • O videoyu tekrar bulamamak üzücü
  • Son zamanlarda Sonic Pi hakkında düşünüp birkaç video izlemiş biri var
    • Birkaç yıl önce kısa süreliğine denemiş
  • HTML yorumları düzgün çalışmıyor. Editör iki kısa çizgiyi tek bir em dash'e dönüştürüyor
  • Sonic Pi live coder'ı alsoknownasrox'a destek mesajı iletiliyor
  • Gerçekten harika bir demo
    • Ama Safari'de site yerleşimi bozuluyor