Ana sayfa Donanım MIDI Protokolü

MIDI Protokolü

0

2012 yılının ilk sayısı ile yine birlikteyiz. öncelikle yeni yılın hem bizlere hem de ülkemize sağlık, mutluluk ve başarı getirmesini diliyorum. 2012 yılında da synthesizer odaklı yazılarımla sizlerle birlikte olacağım..
 

Geçtiğimiz yıl, hatırlayacağınız üzere, synthesizer”ların tarihsel gelişimi ile başlamış ve modülasyon işlemlerine kadar geniş bir konu yelpazesinde teknik hususları irdelemiştik. Bu ay, sadece synthesizer”lar için değil, ilgili tüm müzik ekipmanları için vazgeçilmez bir haberleşme dili olan MIDI protokolü ile ilgili genel bir giriş yapacağız ve önümüzdeki sayılardan itibaren detaylı incelemelere başlayacağız.

Genel anlamda, bir haberleşme protokolü, farklı sistemler arasında senkron veya asenkron sayısal veri iletimi sağlayan kurallar bütünüdür. Bu noktada, temel şart, farklı sistemlerin veri formatlarını aynı şekilde anlamlandırması ve semantik bir birliktelik sağlayarak daha karmaşık işlevler yerine getirebilmesidir. Bir başka ifadeyle, protokolü oluşturan iletişim kelimeleri her sistemin veya cihazın aynı şekilde yorumlayacağı ortak bir dili oluşturmalıdır. Protokollerin genel özelliği sayısal teknolojiye dayalı olması, analog teknolojiden ancak fiziksel veri iletimi katmanı düzeyinde istifade etmesidir. Eski analog synthesizer”larda kullanılan ve CV (control voltage) olarak bilinen kontrol sinyali yapısı, günümüzde kullanılan haberleşme protokolü kavramından oldukça uzaktır. Sadece temel performans parametrelerinin kontrol edilmesini sağlayan analog CV sinyalleri yine de sayısal MIDI protokolünün geliştirilmesinde bazı açılardan ilham kaynağı olmuştur. Musical Instrument Digital Interface kelimelerinin kısaltması olan MIDI, protokol yapısını dönemin bilgisayar ağlarında kullanılan daha gelişmiş protokol yapıları paralelinde oluşturmuştur.
 

midi
 
Günümüzde yaygın olarak kullanılan gelişmiş bilgisayar ağları OSI modeli adı verilen ve 7 farklı katmandan oluşan bir veri iletişim yapısını kullanır. En üst katman, uygulama katmanı olarak bilinir ve örneğin MS Word dokümanı oluşturmak bu katman içerisinde gerçekleştirilir. En alt katman ise fiziksel katman olup, 0 ve 1″lere dönüştürülmüş Word dosyasını kablolar vasıtasıyla internet ortamına taşır. Her katman kendisinden bir altta yer alan katmandan hizmet alıp, bir üstünde yer alan katmana hizmet verir. Her bilgisayar, içinde bulunduğu ağda, aynı katmanlı model ile çalışır. Bu noktada belirtilmesi gereken en önemli husus, her katmanın diğer bilgisayardaki eşdeğer katman ile iletişim halinde olmasıdır. Doğal olarak, 7 katmanın her biri için bir iletişim standardı spesifikasyonu vardır.

 

OSI modeline benzer bir protokol yapısı basitleştirilerek MIDI için de uygulanabilir. Kolay anlaşılır olması açısından, MIDI protokolünü uygulama, veri ve fiziksel olmak üzere 3 katmanlı bir yapı içerisinde inceleyelim. Şekil-1″de MIDI protokolü yapısı ve katmanlar arası iletişim akışı görülmektedir. Bknz. Şekil 1

Bu modele göre, MIDI Cihazı-1 uygulama katmanı sadece MIDI Cihazı-2 uygulama katmanı ile iletişime geçebilmektedir. Benzer şekilde, 1. Veri Katmanı sadece kendisi ile aynı dili konuşan 2. Veri Katmanı ile iletişim kurabilmektedir. Her iki cihazın fiziksel katmanları ise yine fiziksel bağlantılar aracılığıyla birbirlerine erişebilmektedir. Protokolün gerçek şartlarda çalışması ise, her katmanın bir alt katmana komut vermesi ile şeklinde gerçekleşmektedir. örneğin, MIDI Cihazı-1 diğer cihaza herhangi bir MIDI mesajı göndermek istediğinde, bu istek 1. Veri Katmanına iletilmektedir. 1. Veri Katmanı gelen bu komutu Fiziksel Katman vasıtasıyla diğer cihaza iletmekte ve komutu alan 2. Veri Katmanı gerekli tercümeyi yaparak MIDI Cihazı-2″ye uygulama katmanı üzerinden MIDI mesajını iletmektedir. Sonuç olarak, her katman kendi iletişim dilini kullanmakta ve katmanlar arası dikey iletişim diller arasında tercüme edilerek sağlanmaktadır. Cihazlardan birinde yukarıdan aşağıya doğru gerçekleşen tercüme işlemi, fiziksel katman ile sağlanan irtibat sonrasında, diğer cihazda aşağıdan yukarı doğru gerçekleşmektedir. Doğal olarak, her katmanın kendi dili yani kendi veri yapısı ayrı bir standart ile tanımlanmaktadır ve ilgili standartların toplamı MIDI protokolünün toplamını teşkil etmektedir. örneğin, MIDI kablolarının ne tür olacağı, azami uzunluk değerleri, IN, OUT ve THRU konnektör yapıları fiziksel katmana ait standartlar ile belirlenirken, her bir mesajın 0 ve 1 bitlerinden ne şekilde oluşturulacağı veri katmanında standartlaştırılmaktadır. Klavye tuşlarının ne şekilde MIDI mesajı üreteceği veya Cubase programında MIDI otomasyonunun ne şekilde yapılacağı ise Uygulama Katmanı konularıdır. Katmanlara bu örneklerde verilen isimler jenerik olup, farklı şekillerde de anılabilir.
 


 
MIDI protokolü asenkron çalışma şeklini kullanacak şekilde geliştirilmiştir. Bunun anlamı, bir MIDI mesajı göndermek isteyen cihazın herhangi bir anda ilgili mesajı oluşturup gönderebilmesi ve alıcı taraftan herhangi bir reaksiyon beklememesidir. Bu nedenle, sistemler arası mesajlaşma esnasında zamansal herhangi bir korrelasyon bulunmamaktadır.

Bu uygulamanın kötü tarafı ise mesajın karşı tarafca doğru bir şekilde alınıp alınmadığının bilinememesidir. MIDI, temel olarak, simplex haberleşme yapısını kullanmaktadır. Bir başka ifadeyle, mesajlar MIDI kablosu üzerinde sadece tek yönlü olarak iletilebilmektedir. İletimin yönü, gönderici cihazın MIDI OUT çıkışından alıcı cihazın MIDI IN girişine doğru olan yöndür. MIDI, OUT ve THRU konnektör yapıları farklı olduğu için MIDI OUT çıkışı ile mesaj gönderen bir cihazın başka bir cihazdan aynı kablo ile veri alması zaten mümkün değildir. İki cihazın sadece tek yönlü değil, çift yönlü olarak haberleşmesi ihtiyacı bulunduğunda, her iki cihazın kendi OUT çıkışları diğerinin IN çıkışlarına bağlanarak iki kablolu ve çift yönlü bir iletişim hattı oluşturulabilir. MIDI mesajlaşmasının simplex, yani tek yönlü olması aynı zamanda protokolü de asenkron hale getirmektedir. çünkü, tek kablo kullanılması halinde, alıcı cihazın gelen mesaja herhangi bir reaksiyon üretmesi olası değildir. MIDI mesajları 8 adet sayısal bit değerinin peşpeşe sıralanarak kelimeler oluşturması ve kelimelerden kısa veya uzun cümleler meydana getirilmesi şeklinde oluşturulur. ‹letim esnasında her bir bit değeri sıralı olarak fiziksel katmana iletilir ve böylece bit değerlerinin bir nevi kuyruk oluşturması sağlanır. ‹letişim dilinde bu gönderme mantığı seri haberleşme olarak bilinir. Her 8 bit uzunluğunda kelimenin 8 adet paralel hat üzerinden aynı anda gönderilmesi de mümkün olmakla birlikte, MIDI protokolü paralel değil seri haberleşme tekniğini benimsemiştir. Her iki tekniğin de kendilerine özgü avantaj ve dezavantajları olduğu söylenebilir.

 

MIDI protokolünün kullanıcı açısından kolay yönlerinden bir tanesi mesajların büyük bir çoğunlukla müzikal aktivitiler sırasında cihazların kendileri tarafından üretilmesidir. Yani, mesajları oluşturan 0 ve 1 dizilerinin ne şekilde oluşturulduğu genellikle kullanıcının bilmesi gereken detaylar değildir, ancak daha ileri düzeyde MIDI kontrolü yapılması gerektiğinde alt detaylara inilmesi fayda sağlayacaktır. önümüzdeki sayılarda mesaj yapılarına da, bu bağlamda, değineceğiz. Yukarıda kısaca değindiğim MIDI protokolü katman yapısının pratikte nasıl bir veri akışı sağladığı Şekil-2″de görülen örnekte yer almaktadır. örneğin, bir synthesizer ile çaldığımız notaların Pro Tools DAW yazılımına kaydedilmesini istediğimizde synthesizer”ın MIDI OUT çıkışını DAW yazılımını çalıştıran bilgisayarın ses kartında bulunan MIDI IN girişine bir MIDI kablosu vasıtasıyla irtibatlandırmak gerekmektedir. Tersi yönde, ses kartının MIDI OUT çıkışını da synthesizer”ın MIDI IN girişine bir başka MIDI kablosu ile irtibatlandırdığımızda, Pro Tools”da kaydettiğimiz MIDI verilerini edit ettikten sonra synthesizer”e tekrar çaldırabiliriz. Synthesizer ve DAW uygulama katmanında görev yapan sistemler olarak değerlendirilirken, synthesizer”ın iç MIDI mesaj üretim devreleri ve DAW yazılımının çıkış port yapısı ile birlikte ses kartının MIDI kısmı veri katmanında yer alırlar. IN ve OUT konnektörleri arasında kablo vasıtasıyla verilerin iletimi ise fiziksel katmanda gerçekleşir.
MIDI protokolünün kısa bir tarihçesine de göz atmak faydalı olacaktır. Temeli 1980″li yıllarda atılan protokol, esasen çok sayıda üreticinin farklı ürünlerinin ortak bir dil ile haberleşebilmesi ihtiyacından doğmuştur. Bknz. Şekil 2
 

 
80’li yıllarda synthesizer modellerinin sayısındaki artış ve ortaya çıkan uyum sorunu, üretici ve modelden bağımsız tüm synthesizer’ların, kayıt cihazlarının ve gelecekte üretilecek müzik alet ve araçlarının evrensel bir uyum içinde ele alınmasını zorunlu kılmıştır. ‹ki yılda bir yapılan NAMM fuarlarının 1982 yılı toplantılarının birinde dönemin tanınmış firmalarından Amerikan Sequential Circuits firmasının kurucusu ve Prophet-5 synthesizer”larının tasarımcısı Dave Smith’in önderliğinde ve daha sonraları Japon Roland frmasının desteğiyle, bugünkü MIDI protokolünün temeli ortaya çıkmıştır. Doğal olarak, MIDI protokolü ile haberleşme yeteneğine sahip ilk synthesizer örnekleri de Prophet 600 ve Roland JX-3P olmuştur. MIDI”ye günümüze dek ciddi bir alternatif protokol geliştirilememesinin başlıca sebebi, MIDI”nın gelişime izin veren ve nispeten ucu açık bir mimari ile oluşturulması ve bu sayede zamanla değişen ihtiyaçlara göre adapte edilebilir olmasıdır. örneğin, sadece mesajların değil belli enstrüman seslerinin de standardize edilmesine duyulan ihtiyaç zaman içinde General MIDI (GM) adlı yeni bir spesifikasyonun tanımlanmasına izin verebilmiştir. Yine zaman içinde standart MIDI konnektör ve kablo yapısına alternatif olarak USB ve FireWire gibi daha güncel standartlar da kapsam içine alınmıştır.

 

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here