Cuma, Aralık 16, 2011

Robotlar dünyayı ele geçirince herkes dans edecek

Arxiv Blog'unda süper bir şey yakaladım bu gün. Herkes bir numara olacak bir sonraki müziğin matematiğini aramakla meşgul ki her zaman bu başarıyı tekrar tekrar yakalabilsinler. Hoş, İngiltere'de X-Factor cart curt derken pop müzik de en banal seviyelere vurdu ya (ben metalciyim, annamam pop müzikten).


Arxiv'de anlatıldığı üzere bir Visnut takma isimli arkadaş 23 byte uzunluğunda bir VIC20 (bizim çocukluğumzda kullandığımız Commodore 64 bilgisayarının bir önceki hali) demosuna bakarken aklına bir fikir gelmiş. Biraz kurcaladıktan sonra bir satırda yazılabilecek C programlarıyla müzik yapmaya başlamış.

 Mesela aşagıdaki koda bakınız:

  main(t){for(t=0;;t++)putchar(t*(t>>4&t>>8));}

Büyük usta Hawking, meşhur bir kitabında tek bir formül yazacağımı ve satışların yarıya düşeceğini yazmıştı, yine de Zamanın Kısa Tarihçesi herhalde bu güne kadar en çok satan popüler fizik kitabı olsa gerek. Benim de tek bilgisayar fonksiyonum bu olsun, okuyucuların yarısını kaybedersem artık affola. Burada müziği yaratan kısım kırmızı ile işaretlediğim fasıl.

 Ubuntu veya Fedora yüklü bir makinada bu bilgisayar kodunu şu şekilde derleyip çalabilirsiniz:


gcc -o visnut1 visnut1.c ; ./visnut1 | pacat --format u8 --rate 8000 | padsp

Ancak bunlarla uğraşmanıza gerek yok. Benden iyi bir koder çoktan nette bunu test edebileceğiniz bir yer yaratmış. Bu linke basarak ulaşabilirsiniz. Ayrıca yapılan müziği grafik olarak görebiliyorsunuz.

Visnut, bu konudaki üçüncü videosunda hem formülleri hem de müziğin son derece ilginç bir grafık versiyonunu gösteren bir demo hazırlamış. Videodaki formülleri ister kendi makinanızda, ister az önce linkini verdiğim Wurstcapture sayfasında elle girerek deneyebilirsiniz.


Viznut arkadaş kendisi uzun uzun anlatıyor nasıl yaptığını ve nasıl çalıştığını. Hem videodaki demolar, hem de analizdeki örnekler gerçekten dehşetengiz. Mesela şuna bir bakın. Açıkçası hem ZX Spectrum 48, hem de C64 ve C128 sahibi olduğum zamanlar izlediğim demolardaki müzikler bundan iyi değildi ve bu melodi ve ritmi sadece şu kadar matematiksel bir kodla ifade edebilmek beni korkutuyor:

((t*("36364689"[t>>13&7]&15))/12&128) +(((((t>>12)^(t>>12)-2)%11*t)/4|t>>13)&127)


Bütün bunları niye yazıyorum sizlere? Herşeyden önce dibim düştü. Bu gün ofiste yapmam gereken bir milyon işi bırakıp oturup yarım saat bu işin nasıl çalıştığını reverse-eng etmeye çalıştım (salak gibi, Visnut'un açıklayan yazısını okusaydım ya! Ancak oraya daha hiç gelememiştim, Arxiv'den videoyu görür görmez bir editor açıp kodu yazıp Ubuntu'da artık niye /dev/audio|/dev/dsp yok diye kızmaktaydım). 


Öte yandan müzik gibi bir olayın birkaç basit fonksiyona indirgeniyor olması, Visnut ve arkadaşlarının bir güruh toplayarak "arkadaşlar, bu matematiksel formüllerden hangisi daha iyi bir müzik yaratıyor?"  diye sorması, bizlerin müzik zevkinin nerden geldiğini anlamamıza yol açabilir. Bazı isanların "Ruh" olarak tanımladığı kavramın nasıl oluştuğunu anlamamıza yol açarsa herhangi bir bilgisayarı buna uygun bir şekilde programlamak aniden yakın bir gelecek takvimde kırmızı bir marker kalem ile işaretlenmiş olsa gerek diyesim gelir. Yarın öbürgün de Arni kapımızı çalıp "Kusura bakmayın,  akşam akşam rahatsız ettim, Sarah Connor burda mı ikamet etmekte?" diye sorabilir! 




(DeviantArt'tan Pupang kardeş'e bu resim için tek diyecek lafımız var: Süper!)

(Dipnot: Arni kardeş, yahu kapı kapı dolaşacağına önce bi mahalle muhtarına uğrsana?)

1 yorum:

Hakan dedi ki...

Bir formul yazicam diyip iki tane yazdigim icin Daily Mail beni The Guardian'i sucladiklari gibi yalancilikla suclar mi?