1 puan yazan GN⁺ 2024-01-29 | 1 yorum | WhatsApp'ta paylaş
  • Kodun akor seçimini, ses sentezini ve LED tepkisini birlikte yönettiği bir enstalasyon sanatı partisyonu; bitki saplarını andıran bir heykel, tekrar tekrar ses ve ışık üretiyor
  • Bölüm A, A2’den D5’e kadar Major, Minor, Major 7th, Minor 7th akorları ve çevrimlerini oluşturuyor; her 8 saniyede yalnızca bir notası farklı olan başka bir akora geçiyor
  • Bölüm B, mevcut akordan bir nota seçip bunu rastgele dalga biçimi ve süreyle çalıyor; düzenli akor ilerleyişinin üzerine öngörülmesi zor tek notalar ekliyor
  • Her yeni akor veya nota oluştuğunda sap biçimli LED’ler tepki veriyor; her notanın rengi, beşliler çemberinde yakın notalar birbirine benzer görünecek şekilde eşleniyor
  • Uygulama, Raspberry Pi 3 B+ üzerinde çalışan C++ ses programı ile Arduino Uno üzerindeki FastLED LED kontrolü arasında bölünmüş durumda; iki cihaz nota bilgilerini seri port üzerinden alışveriş ediyor

Üretim kurallarından oluşan partisyon

  • Bölüm A, A2’den D5’e kadar mümkün olan Major, Minor, Major 7th, Minor 7th akorlarını ve tüm çevrimlerini listeliyor
  • Seçilen akor 8 saniye boyunca çalınıyor; ardından mevcut akordan yalnızca bir notası farklı olan akorlardan birine geçiliyor
  • Bu süreç, 8 saniyelik çalma ve komşu akor seçimini tekrarlayarak sürekli devam ediyor

Ses üretim kuralları

  • Bölüm B, o anda çalan akordan bir nota seçiyor
  • Seçilen nota rastgele bir dalga biçimiyle, rastgele bir süre boyunca çalınıyor
  • Süre kısaysa rastgele sayıda tekrarlanıyor; ardından rastgele bir süre beklenip aynı süreç yeniden tekrarlanıyor

Işık tepki kuralları

  • Bölüm C, Bölüm A’da her yeni akor tetiklendiğinde her sapı kökten uca kadar aydınlatıyor
  • Işık rengi akorun her notasına karşılık geliyor; beşliler çemberinde bitişik notalar benzer tonlara sahip oluyor
  • Bölüm D, Bölüm B’de her nota çalındığında saplardan birinin ucunu o notaya karşılık gelen parlak renkle aydınlatıyor

Donanım ve yazılım uygulaması

  • Bölüm A ve B’den, Raspberry Pi 3 B+ üzerinde çalışan özel C++ programı sorumlu
    • Hem nota seçimini hem de ses tamponu sentezini işliyor
  • Bölüm C ve D, Arduino Uno kartındaki özel programla uygulanıyor
    • WS2812B protokollü LED şeritlerle arayüz kurmak için FastLED kullanıyor
  • Raspberry Pi’den Arduino’ya iletilen nota bilgileri seri port sinyalleri üzerinden gidip geliyor

Fiziksel yapı ve çalışma biçimi

  • LED şeritler, ev akvaryumlarında kullanılan şeffaf tüplerin içinden geçiyor
  • Tüpler kalın nikel tel ile güçlendirilerek şekillendirilebilir bir forma kavuşuyor
  • Saksının altındaki ahşap muhafazada mikro bilgisayarlar, kablolama ve ses sistemi bağlantısı için 3,5 mm ses soketi bulunuyor
  • Güç iki ana elektrik bağlantısı üzerinden geliyor
  • Bilgisayarlar headless çalışıyor ve güç verildiğinde otomatik başlıyor

1 yorum

 
GN⁺ 2024-01-29
Hacker News yorumları
  • Bu kişi, tarayıcıda saatlerce kurcalayabileceğiniz harika endless acid banger’ın da yapımcısı
    https://www.vitling.xyz/toys/acid-banger/
    Bunu denedikten sonra gerçek bir 303 klonu bile alıp kurcalamaya başladım. Ayrıca tüm demoların sessiz bir “click to start” ekranıyla açılmasını ve otomatik oynatılan videoların da bu yazıdaki gibi varsayılan olarak sessize alınmış olmasını seviyorum

    • İki sayfada da benim ortamımda “click to start” mesajı görünmedi, ama görünmesi doğru olurdu gibi
      Bu yazıda ses kontrolünü görmek için “silent gif”in üzerine gelmem gerekti; acid banger’da ise herhangi bir yere tıklayınca sessizin kalktığını anlayana kadar yorumun yarısını yazmıştım
    • Gerçekten harika küçük bir oyuncak. Bu arada, hiç sentezleyici deneyimi olmayan biri için 303’ü öğrenip kullanmanın zor olup olmadığını merak ediyorum
    • Ton değiştirme düğmesini sevdim. Gerçekten mükemmel bir DJ aracı olması için yalnızca ileri gitmekle kalmayıp rastgele önceki bir paterne de dönebilmesi gerekir gibi geliyor; benim bulamadığım bir düğme ya da seçenek mi var?
  • Üretken müziğin notasını böyle bir şartname biçiminde yazılmış görmek ilginç
    Yeterince ayrıntılı; o talimatlardan yola çıkarak kendi sürümünüzü yeniden uygularsanız özünde aynı “müzik eseri” ortaya çıkar, ama yorum kesinlikle farklı olur. Çünkü nota bazı kısımları kesin olarak belirlerken başka seçimleri açık bırakır. Akorları listelerken “tüm çevrimler”in tam olarak ne anlama geldiği, açık voicing’leri de kapsayıp kapsamadığı, rastgele dalga biçiminin uzunluğunun hangi değerler arasından seçileceği, tekrara karar verirken “kısa”nın ne kadar olduğu, hangi dalga biçimi sentezleyicisinin kullanılacağı ve nasıl modüle edileceği gibi meseleler kalır
    Bu kararlar, geleneksel enstrüman icracısının notayı yorumlayıp çalarken verdiği kararlara benzer. Burada ise üretken müzik kodlayıcısı bu “notayı” izleyerek kendi yorumunu taşıyan bir program yapabilir
    Bunu Sonic Pi(https://sonic-pi.net/) ile uygulamaya çalışmak eğlenceli bir alıştırmaydı ve bestecinin amaçladığı yöne yakın bir şey yapabildiğimi hissettim. Videodaki kaydın havasını taşıyor; eğer anlamlıysa, o esere dair benim “icram” sayılır. Gerçi gerçek çalıştırma sırasında icra eden Sonic Pi oluyor
    Bu süreçte şartname ile uygulama arasındaki ilişkiyi de yeniden düşündüm. Farklı programcıların bir algoritmaya yönelik uygulamaları, genel tasarım denen notanın ayrı ayrı “icraları” olarak görülebilir; daha büyük bir sistem mimarisinin öğelerini yapan geliştirici de bir grup ya da orkestrada kendi partisini üstlenen icracı gibi görünebilir. Bazı ekipleri şef/architect yönetir, bazı ekipler birbirlerine riff atıp doğaçlama yapar ve arada bir solo alır. Bazı ekipler de prodüktörün şartnamesine uygun, gösterişli olmasa da sağlam çalan stüdyo müzisyenleri gibidir
    Pazar öğleden sonrası için iyi, meditatif bir kodlama alıştırmasıydı ve bakış açımı değiştirdi

    • Nota ile yapmaya çalıştığım şeyi gerçekten iyi yakalamışsınız gibi; niyetin aktarılmış olmasına sevindim
      Eski bir işimi sergilemeye çalıştığımda bir sanat küratöründen geri bildirim almıştım; o iş de şuydu: https://www.vitling.xyz/welcome-to-tech-talk/. Başta neler olduğunu pek anlamamıştı, ama nasıl çalıştığını ve içeride neler yaşandığını açıkladıktan sonra “Şimdi gerçekten sevdim. Ama izleyici için ilginç olan her şeyi gizliyorsun” dedi
      Üretken sanatta yaptığım “iş”, ortaya çıkan ses ya da görselden çok kural kümesine veya algoritmaya yakın. Bu yüzden “kutunun içinde” neler olduğunu göstermenin bir yolunu hep bulmak istedim. Kaynak kod iyi olabilir, ama yalnızca okuyabilenler için; temel fikrin boilerplate ve teknik tuhaflıkların arasında gömülmesi de kolay. Bu yüzden nota biçiminde yazma fikrine vardım; neler olduğunun temel öncülünü göstermek, ama ayrıntılara saplanıp yolu kaybettirmeyecek kadarını koymak istedim
    • Sevdiğim prosedürel görsel sanatçılardan biri de şartnamede benzer bir muğlaklık bırakıp eser her yeniden yapıldığında iyi varyasyonlar oluşmasını sağlıyor: https://www.sfmoma.org/artist/sol_lewitt/
      https://massmoca.org/event/walldrawing305/
    • “Tüm çevrimler”i genellikle akoru kök konumunda alıp oktavlar hariç döngüsel permütasyonlar gibi çevrimlerini yapmak anlamında anlıyorum
      Bu yüzden daha açık ve seyrek voicing’lerin çoğu dışarıda kalacak gibi
    • Temel Do majör akoru c4 f4 g4; çevrim de alttaki sesi üste taşıyarak f4 g4 c5 ya da g4 c5 f5 gibi yapmak demek
      Çevrimler akorun tadını epey değiştirir
    • Dinleyince açık akor yok gibi; notaların arada boşluk olmadan hemen yan yana geldiği akorlar kullanılmış gibi görünüyor
  • Bu algoritmayı ya da https://www.vitling.xyz/toys/acid-banger/ adresindekini anlamaya yardımcı olacak müzik teorisi kitapları veya dersleri önerebilecek var mı?
    Bir şeyin kulağa düzgün gelmesini öngören oldukça basit kurallar da var, daha karmaşık kurallar da; Barok müziğin algoritmik olduğu da meşhur, ama hâlâ hiç sezgisel olarak oturtamıyorum.
    Daha önce bu yönde araştırmıştım ama baktığım kitaplarda tam olarak neyin sorun olduğunu pek hatırlamıyorum. Muhtemelen çoğu fazla temeldi ve işe yaramadı. Uzun zaman önce çok temel solfej eğitimi almıştım ve nota okuyabiliyorum, ama o zamanlar bugün merak ettiğim soruları soracak ya da o eğitimin amacını anlayacak kadar büyük değildim.

    • Gerçekten anlamak için birkaç açıdan çalışmak gerekir. Hooktheory.com, kitaplar ve çok sayıda YouTube videosuyla 1 ila 10 yıl içinde oraya varılabilir.
      Sonuçta insan çok fazla müzik yazmadan müzik teorisini anlamakta zorlanır. JavaScript kitabı okumaya benzer: Hiç yazılım yazmadıysanız ve ileride de yazmayı planlamıyorsanız, o kitabı gerçekten anlamanızın yolu yoktur.
      Bu uygulamanın nasıl çalıştığını açıklamaya çalışırsam, minör tonda notaların bir alt kümesini, yani gam derecelerini muhtemelen rastgele seçiyor olabilir. Bir gam içindeki en fazla 5 notalık alt kümeler olan pentatonik gamlar, olası melodi uzayını sınırlandırarak çoğu bileşimin iyi duyulmasını sağlar. Daha az nota kullanırsanız daha öngörülebilir biçimde hoş duyulur ama daha az ilginç olabilir. Örneğin kök akoru oluşturan notalar hangi sırayla çalınırsa çalınsın her zaman iyi duyulur. Acid çizgileri genelde belirli bir akorun notalarından oluşan tekrar eden bir melodi, yani arpej yoluyla bir minör akoru ima eder.
      Ayrıca bir gamın alt kümesi her zaman başka bir gamın içinde de yer alabilir. Ortak notalardan oluşan bir alt kümeyi kullanan bir bölüm oluşturup ardından yeni bir gama geçerseniz, bir gamdan diğerine modülasyon yapabilirsiniz. Bu şekilde bir parça mümkün olan tüm gamlardan geçebilir; acid techno’da bunların neredeyse tamamı minör gamlardır.
    • Yale’in çevrim içi Listening to Music dersi müzik teorisine epey değiniyor. Dinlemesi oldukça keyifliydi: https://online.yale.edu/courses/listening-music
    • Başlamak çok zor. Bence en çok matematiğe benziyor.
      Şu anki seviyenizin üzerinde bir anlayışa sahip biri için yazılmış bir şeyi elinize alıp ondan çok şey çıkaramazsınız. Her sayfayı yavaş, bilinçli ve alçakgönüllü biçimde okumalı, karşılaştığınız her terimi tamamen anlamak için zaman ayırmalısınız. Bu süreçte saatlerce yan yollara saparsınız; o yan yolların içinde de başka terimler dallanıp budaklanarak sonsuza uzanır. Aralık, locrian/lydian gibi kavramları atlayıp osmoz yoluyla anlaşılmalarını bekleyemezsiniz.
    • Tipik bir teoriye giriş kitabı değil, ama Daniel J. Levitin’in popüler psikoloji kitabı This Is Your Brain On Music, sorduğunuz şeye benzer konular içeriyor.
      Perdenin ne olduğu, beynin neden belirli perde kombinasyonlarını “sevdiği” ve diğerlerini sevmediği gibi konuları ele alıyor. Müzik nörolojisiyle ilgili çeşitli teoriler başlı başına ilginç; ayrıca başlarda çok temel bir teori girişi de var.
    • Bir enstrüman çalmıyorsanız, bu biraz görme engelli birine Tetris’i anlatmaya benzer gibi.
  • Yazara bir ipucu: Arduino’yu çıkarıp Raspberry Pi’den WS281x şeritlerini doğrudan kontrol edebilen şu kütüphaneyi kullanırsanız donanım ve yazılım karmaşıklığını ciddi ölçüde azaltabilirsiniz: https://github.com/jgarff/rpi_ws281x
    Ben bunu Pi 4 üzerinde kullanarak evimin saçak süslemesine taktığım 466 piksellik WS2815 şeridi bayram dekorasyonu için kontrol ediyorum.

  • Bu projenin içinde ilginç bir müzik teorisi var. Açıklanan algoritmayla bir akordan başka bir akora yapılan tüm geçişler ya aynı akora geçiştir — örneğin C majörden onun çevrimine gitmek ya da 7. notayı ekleyip çıkarmak — ya da Neo-Riemannian teorisindeki üç temel dönüşümden biri olan P, L, R’dir.
    Ayrıntılar için Neo-Riemannian theory Wikipedia sayfasına bakabilirsiniz; P, L, R hakkındaki öz ise şu: Herhangi bir x akoru majörse P(x), L(x), R(x) hepsi minör olur. x minörse P(x), L(x), R(x) hepsi majör olur. P, L, R’nin her biri kendi tersidir; yani P(P(x)) = x’tir, L ve R için de aynısı geçerlidir. P, L, R dönüşümlerinin herhangi bir sıralamasıyla herhangi bir majör ya da minör akordan başka herhangi bir majör ya da minör akora gidilebilir. Örneğin C majörden sonra L, ardından R uygulanırsa G majör olur; R ardından P uygulanırsa A majör olur; L ardından P uygulanırsa E majör olur.
    Neo-Riemannian dönüşümleriyle hareket etmek, yumuşak ses yürütümü üzerinden “uzak” tonal merkezlere, yani başlangıç tonalitesiyle çok fazla ortak gam notasına sahip olmayan yerlere hızla gitmenin bir yoludur. Ama bu parçayı dinlerken armoninin görece istikrarlı hissedilmesine şaşırdım. İlginç olan, algoritmanın yapısı gereği P dönüşümünün L ya da R dönüşümüne veya aynı akorda kalmaya göre çok daha az gerçekleşmesi. P dönüşümü uzak tonalitelere hızlı geçişte kilit malzemedir; kaba hesabıma göre, Markov sürecinin durağan duruma ulaştığını varsayarak ve en düşük/en yüksek perde sınırlarını yok sayarak, tüm akor değişimlerinin yalnızca 1/27’si P dönüşümüdür. Durağan durumda yedili akorların basit üçlü akorlara göre 16:11 oranında daha yaygın olduğu da ortaya çıkıyor.

  • Raspberry Pi’nin sınırlarını daha iyi anlamak için teknik ayrıntıları merak ediyorum.
    Tüm bunlar tek bir Raspberry Pi ve ona bağlı çok sayıda GPIO pini ile halledilemez miydi? Şu hâliyle Raspberry Pi daha az kullanılıyor gibi geliyor; tek karta sadeleştirmek daha iyi görünürdü. Güç bağlantısının da tek olması gibi güzel bir sonuç doğardı.

    • Ben de aynı şeyi düşündüm ama Raspberry Pi yerine Arduino tarafını aklıma getirdim.
      Pi’nin yaptığı şey yalnızca “nota seçimi ve ses tamponunun bizzat sentezlenmesi” ise, Arduino Uno da bunu kesinlikle yapamaz mı?
    • Mümkün gibi görünüyor, ama LED kodu Arduino için tasarlandığından, kodu yeniden kullanma veya prototipleme açısından ilk yapımda iki cihaz kullanmak muhtemelen daha basit olmuştur.
  • Herkesin anlayabileceği şekilde sözde kod olarak yazılmış olması güzel
    Ben de böyle projeler, özellikle de müzik üretimi kısmını daha önce denediğim için bu sunum biçimini gerçekten beğendim. Bir de video demosu olsa daha da iyi olurdu; pek çok kod projesi, yazarın sadece uzun bir metin duvarıyla açıklama yapması yüzünden daha başlamadan ölüyor

  • Gerçekten harika. Böyle bir şeyi yapmak için ayrıntılı yapım talimatları olsa iyi olurdu

    • Artık çevrimiçi bir sürümünü yapmak gerekiyor gibi. Web Audio ve CSS transform bunun için gayet yeterli olur gibi
  • Four Tet setinin introsu olarak da kullanılabilir gibi :)

  • Çok güzel. Bitkilerin böyle olduğu bir uzaylı gezegen hayal ettiriyor
    Bunlar bir orman oluşturup, metronomların ya da ateş böceklerinin senkronize olması gibi birbirlerine uyum sağlayabilirler

    • Yapılıp deneyimlenebilse eğlenceli bir sanat enstalasyonu olurdu :)