Onur Güngör | May 23rd, 2009

Last.fm Mağduriyetinden Kullanıcı Sendikasına

we are listening.

Biraz önce Replikas’tan bir şarkı dinledim bilgisayarımda. Bu sırada MP3 oynatıcıma eklenmiş bir yazılım ise arkaplanda bunu last.fm sunucularına haber vermekle meşguldu.

Günün her anı milyonlarca kişi milyonlarca şarkı dinliyor, ve aynen benim bilgisayarımın yaptığı gibi onlarınki de bıkmadan usanmadan dinlenen bütün şarkıları last.fm‘e haber vermekte. Yani last.fm kullanıcısı olan her dinleyicinin müzik zevki kayıt edilmekte.

Bu yazının geri kalanını okuyun »

Ali Miharbi | November 20th, 2008

Open Sound Control ile Processing – Pure Data Haberleşmesi

Yeni Formlar: Reaktif Müzik yazısında konu Pure Data‘dan (PD) açılmışken, işlemsel ses ve müzik konusunda oldukça kuvvetli olan bu gerçek-zamanlı grafiksel programlama ortamını, şahsen grafik ve video işleme konusunda daha doğrudan kontrol sağladığını düşündüğüm Processing ile haberleştirmenin ve bu iki alemin güçlerini birleştirmenin yolunu gösteren bir yazı yazmaya karar verdim. Burada vereceğim örneği elbette sadece Processing veya sadece Pure Data (pd-extended paketinin içinde gelen veya PD’ye ayrıca ekleyebileceğiniz OSCx ve GEM kütüphanelerini kullanmak suretiyle) ile yapmak da mümkün ama daha karmaşık uygulamalar için (mesela ağ üzerinden, değişik platformlarda yazılmış programların entegrasyonu) bir örnek olma amacı taşıyor.

Hem PD hem de Processing (Python, Ruby, Java, Microsoft.Net, vvvvMaxMSPLiveAPI, OSCulator vb. sayısız ortam gibi) Open Sound Control – OSC protokolünü destekliyor. OSC, bilgisayarlar, synthesizer’lar ve bilimum çeşit multimedya cihazını birbirine bağlamayı kolaylaştırmak için geliştirilmiş, modern ağ teknolojileri ile hatasız, birlikte çalışan, esnek sistemler kurmak için birebir bir protokol. Bunun yanında ağlar üzerinde çalıştığı icin MIDI’nin sunamadığı yeni türden etkileşimlere de (İnternet üzerinden gerçek-zamanlı etkileşim, değişik veri tiplerini ve donanımları birbirine bağlamak gibi) imkan sağlıyor. 

İşin Processing ayağından başlayalım:

Önce oscP5 kütüphanesini indirmek gerekiyor. Normalde yapılanın aksine, sıkıştırılmış dosyaları açtıktan sonra libraries klasörüne değil, sketches klasörü içine atıyoruz. Bu kütüphane birçok örnekle gelse de, buradaki amacımız için aşağıdaki gibi sade bir kod yazabiliriz:

import oscP5.*;
import netP5.*;

OscP5 oscP5;
NetAddress myRemoteLocation;

void setup() {
  size(400,200);
  frameRate(25);
  stroke(255);
  oscP5 = new OscP5(this,12000);
  myRemoteLocation = new NetAddress("127.0.0.1",9999);
}

void draw() {
  background(0);
}

void mouseDragged() {
  line(mouseX, 0, mouseX, height);

  OscMessage msg1 = new OscMessage("/msg1");
  OscMessage msg2 = new OscMessage("/msg2");

  msg1.add(map(mouseX, 0, width, 69, 100));
  msg2.add(50);

  oscP5.send(msg2, myRemoteLocation);
  oscP5.send(msg1, myRemoteLocation);
}

 

 

 

 

void mouseReleased(){
  OscMessage msg2 = new OscMessage("/msg2");
  msg2.add(0);
  oscP5.send(msg2, myRemoteLocation);
}

Bu örnek tek bilgisayarda lokal olarak çalışıyor ama IP adresini değiştirerek ağ üzerinde çalışır hale getirmek de olası. Burada 9999 numaralı porta iki mesaj yolluyoruz. Birincisi mouse’un x koordinatını okuyarak 69 ile 100 arasında bir değer ile eşleştiriyor. Daha sonra PD, bu değerleri MIDI girişi olarak alıp frekansa çevirecek.

Bu program çalışırken PD’yi açıp oynamaya başlayabiliriz. Herşeyin düzgün çalışabilmesi için PD_extended–>Preferences–>Startup içinde “oscx”in olması gerekiyor. Pure Data ile haşır neşir olmamış ama bu vesileyle girişmeye niyetlenmiş olan varsa buradan ve buradan başlayabilirler. Temel nesneler dışında dumpOSC ve OSCroute nesnelerini kullanıyoruz ve 9999 no’lu portu dinleyip Processing’den gelen mouse değerine göre frekansı değişen bir kosinüs dalgası yaratıyoruz:

PD kodunu da aşağıya ekleyip ilk eğitsel-öğretsel yazımı burada noktalıyorum:

Diğer yönde, PD’den Processing’e mesaj göndererek, Processing ekranına daire veya kare çizdiren örnek kod:

Düğümküme’de yayımlanan ilgili yazılar:

Ali Miharbi | February 26th, 2008

Etkileşimli Sanat için Sınıflandırmalar

Birçok sanatçı haklı olarak sınıflandırılmaktan hoşlanmasa da, kategorilere yerleştirilmenin eserlerinin yanlış anlaşılmasına, yüzeyselleşmesine, önemsiz bir benzerlik yüzünden alakası olmayan başka işlerle birlikte anılmasına yol açtığını söylese de, gerek arşivleme gereksinimi, gerek araştırma yaparken uzun listeler içinde gezinebilme ihtiyacı, gerek kitap veya sunum hazırlarken bilgiyi bir yapıya oturtmanın pratikliği nedeniyle kategorileme ve sınıflandırma sistemlerine hala başvurulmaya devam ediliyor. Bu konuda çok sayıda değişik yöntem var ve çoğunda esnek olunmaya çalışılıyor. Bunlardan en son rastladığım, Ludwig Boltzmann Institute Media.Art.Research tarafından başlatılan, Prix Ars Electronica 2008 için yapılan başvurularda kullanılan anahtar sözcüklerin ışığında geliştirilmeye devam edilen, birbirinden bağımsız ve iç içe geçebilir başlıklardan oluşan Taxonomies of Media Art:

Sanat eserinin biçimi

enstalasyon
heykel
nesne
performans
yazılım

Sanat eserinin sahası

tek başına
kamusal alan
bağımsız alanlar
ağlı yapılar
sanal dünyalar (Second Life gibi)

Etkileşim ortakları

insan<>insan (sanatçı etkileşimi)
insan<>insan (izleyici etkileşimi)
insan<>bilgisayar
bilgisayar<>bilgisayar
bilgisayar<> harici dijital veri
bilgisayar<> dış ortam
bilgisayar<>analog aygıtlar

İzleyicinin (icracının) yaptığı

gözlemlemek
araştırmak
harekete geçirmek
kumanda etmek
seçmek
içinde gezinmek
katılmak
iz bırakmak
yaratım sürecine katkıda bulunmak
bilgi alışverişinde bulunmak

İşin (projenin) yaptığı

gözetlemek
araç görevi görmek
anlatmak, öykülendirmek
belgelemek
algıyı genişletmek
bir oyun önermek
iletişim sağlamak
görsellemek
ses üretmek
dönüştürmek
depolamak
işlemek
aracılık etmek

Medya

video
bilgisayar grafiği/animasyon
sabit görüntü
projeksiyon
monitör/ekran
3D
ses elektroniği
kulaklık
hoparlör
yayın (radyo/TV)
cep telefonu
el cihazları
mikrofon
RFID
motor (sibernetik, robotik, vs.)

İşlem Teknolojisi

hareket yakalama
görüntü yakalama
ses tanıma
metin tanıma
chroma anahtarlaması
bio-feedback

Slogan

mekansal medya
genişletilmiş (artırılmış) gerçeklik
her an her yerde hesaplama
sanal gerçeklik
televarlık
yapay zeka
low-tech
medya arkeolojisi
etkileşimli sinema
her an her yerde oynanabilir oyun
giyilebilir bilgisayarlar
sibernetik
kinetik
robotik

Konu

yapay zeka
yapay yaşam
biyografiler
veri işleme
ekonomik sistemler
çevre
günlük sorunlar
evrim
genetik
kitlesel medya
medya
çevrimiçi dünyalar
politika
din
göç
sosyal ilişkiler
mahremiyet

Bundan daha genel bir sınıflandırma da Christiane Paul’un Digital Art kitabında kullandığı yapı:

Dijital Teknolojilerin Araç Olarak Kullanımı

Dijital fotoğraf ve baskı
Dijital teknolojilerle heykel

Dijital Teknolojilerin Mecra Olarak Kullanımı

Enstalasyon
Film, video, animasyon
Internet sanatı ve göçebe ağlar
Yazılım sanatı
Sanal gerçeklik ve genişletilmiş (artırılmış) gerçeklik
Ses ve müzik

Dijital Sanatta Temalar

Yapay Yaşam
Yapay Zeka
Televarlık, telematik, telerobotik
Beden ve kimlik
Veritabanları, veri görsellemesi ve eşleştirmesi
Metin ve öyküleme ortamları
Oyun
Taktiksel medya, aktivizm, hacktivizm
Geleceğin teknolojileri

Son olarak da Burak Arıkan ile geçtiğimiz Kasım ayında Aksanat’ta yaptığımız İşlemsel Sanatlar Sunumu‘nda kullandığımız pratik sınıflandırma ile yazıyı bitireyim:

Algoritmik Sistemler: Bilgi İşlem Teknolojileriyle İfade

  • İşlemsel üretilen nesneler
  • İşlemsel çalışan sistemler

Sistemden Karmaşaya: İnternet ve Ağlı İletişim Sistemleri Üzerinden İfade

  • Ağda temsil
  • Ağda eylem