Ana sayfa Donanım Eşgüdüm (Senkronizasyon) ve MMC Yapısı

Eşgüdüm (Senkronizasyon) ve MMC Yapısı

141
0

üzerinde pek fazla durulmasa da profesyonel ses kayıt uygulamalarında en çok kullanılan bağlantılardan biridir eşgüdüm.Eşgüdüm sorunlarının kökenine iniyoruz.

Geçtiğimiz ayki yazıda, MIDI”li eşgüdümlerde zaman kodu sorunlarının kökenini önce MTC”de aramış; MTC”li bir eşgüdümde, daha doğrusu MIDI”de bir MTC tipi olan “çeyrek kare mesajlarının” eşgüdümünde sorunun yetersiz bantgenişliğinden kaynaklandığını görmüştük. Yakından incelediğimiz çeyrek kare mesajlarının olağan yapısından kaynaklanan bu sorunun çözümü olarak da, sistemde kısa mesafeli MIDI kablolama yapılması ve markalı MIDI kablo ve soketlerinin tercih edilmesi gerektiğini belirtmiştik.

Bir kullanıcının eşgüdümde salt MTC”yi tercih ettiği durumlarda ortaya çıkan bu türden sorunlar, teknoloji gelişip eşgüdüm için kullanılan yeni mesaj tipleri ortaya çıktıkça zamanla azalmaya başladı diyebiliriz; ancak, yeni gelenin eskini fazlasıyla arattığı durumlarla karşılaşmıyor da değiliz. Tıpkı, zaman koduyla ilgisi olmadığı için burada söz etmediğimiz, ancak eşgüdüm için halen yaygın olarak kullanılan MIDI Clock veya SPP (Song Position Pointer) gibi atım veya tartıma dayalı eşgüdüm mesajlarının, MTC”nin yaygınlaşmasından sonra bile özellikle davul kayıtları için mumla aranır olması gibi. Elbette müzik teknolojisinde hedef, yarıyolda kalmamak için yola en iyisiyle çıkmak olmalı, ancak eşgüdüm gibi bazı istisna durumların kaideyi bozmadığını da unutmamak gerek. 
 

  MIDI”li bir eşgüdümde, doğrudan MTC kaynaklı zaman kodu sorunlarını ortadan kaldırmak ve sistemi tek elden daha rahat kullanmak için geliştirilen mesajlardan biridir MMC. Kısaca makine kontrolü olarak tanımlayacağımız MMC, sektörle buluştuğu anda eşgüdüme yeni bir bakış açısı getirdi. önceleri “uygun adım” için zamanı, atımı-tempoyu-tartımı ve hatta tınıyı kılavuz seçen donanımlar, MMC ile birlikte kendi doğalarında var olan hareket tetikleyicilerine geri döndüler. Bu hareketlerin neler olduğunu, komutların nasıl işlediğini ve kısaca MMC yapısını birazdan ele alacağız ancak isterseniz gelin, geçtiğimiz ay tanımladığımız eşgüdümü tekrar anımsayalım.
 
Eşgüdüm (synchronization veya kısaca sync.), donanımlar arasında uygunadım gidişi sağlayan bir iletişim, sistemin bir merkezden yönetilmesine olanak tanıyan makinalar arası bir protokoldür. Eşgüdüm sayesinde iki ya da daha fazla donanım zaman ve hız değerlerinde anlaşarak “eşzamanlı” çalışır. örneğin bir ya da birden fazla bilgisayar, çok kanallı kayıt cihazı, video oynatıcı, ses masası, efekt işlemci, synthesizer gibi tek bir sistem içinde birbirine bağlı farklı donanımlar, ancak eşgüdüm sayesinde aynı anda “uygun adım” çalışabilirler.

Eşgüdüm, SMPTE örneğinde olduğu gibi donanımlar arasındaki audio soket ve kablosuyla kendine özgü bir üreteç üzerinden kurulabildiği gibi, MIDI gibi zaten var olan bir bağlantı üzerinden de gerçekleşebilir. Biz, sektörde en çok kullanılan MIDI bağlantı ile yapılan eşgüdümü inceliyoruz. üstelik “uygun adım” için zaman kodunu tercih eden eşgüdümleri. İncelemeyi yaparken bir taraftan MTC ve MMC”nin yapısını somut olarak görüyor, diğer taraftan bu yapının kendisinden kaynaklanan olası sorunlarını ortaya çıkarıyoruz. Kısaca, MIDI”li eşgüdümlerde zaman kodu sorunlarının kökenine iniyoruz…


MMC (MIDI Machine Control) ve Yapısı

MMC, 1992 yılında MIDI ailesine katılan gelişmiş bir sistem mesajı türüdür. MIDI”li donanımlara çalma (play), durma (stop), ileri-geri sarma (forward-backward) gibi komutları iletmek olan MMC sayesinde her bir donanım, herhangi bir zaman kaygısı gözetmeksizin kullanıcının eşgüdüm için ihtiyacı olan “hareket” bilgilerini otomatik olarak almış olur.

MMC mesajı, aslında kendi başına bir mesaj olmayıp, MIDI”de 240 numaralı mesajla başlayan (SysEx= Hex: F0, Binary: 1111 0000) ve 247 numaralı mesajla sonlanan (EOX (End of Exclusive= Hex: F7, Binary: 1111 0111)) SysEx (System Exclusive) mesajı içinde yer alır. Bu nedenle, bir kullanıcı için aslında bilinmesi gereken yapı SysEx mesajıdır. Bu mesaj kısaca, firma ve ürünlerine göre değişen özgün bilgi gruplarını içerir. örneğin bir MIDI uygulamasının hangi marka ve hangi model bir donanımla yapıldığını gösteren üretici bilgileri, tıpkı barkodlar gibi SysEx mesajında gizlidir. Ancak MIDI”de sistem otomasyon, veri yedekleme veya veri transfer etme gibi uygulamalarda çok daha geçerli olan üretici bilgileri, MMC gibi evrensel zaman kodlarının içine gömüldüğü durumlarda 0000 0110 sayı değeriyle sabitlenir. Yani MMC, yapısında firma kimlik bilgisi içermez. Ancak buraya dikkat! MMC bir SysEx mesajı olduğundan, üretici firmalara göre farklılık gösterebilir. Yani bazı MMC komutları bazı firmalar tarafından üretilmeyebilirler. Bu da MMC”li eşgüdüm sorunlarının en temel boyutu, bir başka ifadeyle sorunun kökenidir. ?imdi MMC yapısı anlatılırken bu durumu daha iyi göreceğiz.

Tablo 1 ile özetlenen MMC veri yapısı, 240 (1111 0000) ile başlayıp 247 (1111 01111) ile tamamlanan SysEx içinde konumlanır ve Sub-ID olarak adlandırılan bir durum byte”ı ile sabitlenir (0000 0110). Yapıda, SysEx sonrası gelen “kimlik” byte”ı daha önce belirtildiği gibi sabittir ve SysEx ile gelecek olan verinin, zamana bağımlı evrensel bir mesaj (universal real-time message) olduğunu gösterir. Bu mesajın yazılabilir olması, yani SysEx mesajının otomasyon veya yedekleme gibi tümden veri transferine (data dump) açık olması nedeniyle, MMC için MIDI içinde global bir kanal ayrılabilir. Kanal numarası (c) genelde her donanım için 1 veya 16 olarak sabitlenmiştir. Mesajda k ile gösterilen değişken, MMC”nin karşı tarafa donanım kontrollerinden hangisinin yapıldığını belirtir komutu temsil eder. Daha önce MMC tanımını yaparken kullanıcı için “donanımın hareket bilgisi” olarak belirttiğimiz bu komutlar, 7 bit ile temsil edilirler. Bu komutların neler olduğu ise Tablo 2″de gösterilmiştir.  örneğin MMC ile eşgüdümlü bir MIDI sistemde kayıt yazılımının “stop” tuşuna bastığınızda, mesajın komut byte”ına 0000 0001 (Hex: 01) değeri yerleşir ve diğer donanımlara iletilir. Böylece MMC ile eşgüdümlü diğer tüm donanımlar durdurulmuş olur.
Tablo 1: Soldan sağa doğru çözümlemeyle MMC mesaj yapısı içeriği ve binary karşılıkları

Tablo 2: Eşgüdüm için kullanılan MMC hareket komutları
?imdi, Tablo 1″de gösterilen yapıyla MMC”yi özetleyelim: önce SysEx olduğunu gösterir ilk byte, sabit kimlik değeriyle 2. byte, kanal numarasını gösterir 3. ve MMC”yi belirten 4. byte, 5. byte ile gönderilen komut sonrası SysEx”i sonlandıran 6.byte.
 

MMC”nin artık bir “fiskeleme” hareketi olduğunu öğrendik. Yani donanımlar için yalnızca hareket bilgisi taşımakta. Peki, bu arada eşgüdümün olmazsa olmaz zaman bildirgesi, yani saat-dakika-saniye-kare bilgileri karşı tarafa nasıl aktarılıyor?

Bu durum, geçtiğimiz sayıda açıkladığımız MTC ile örtüşen bir içerik taşıyor. Yani devreye yine MTC giriyor; ancak önemli bir farkla: çeyrek kare mesajları yerine artık “tam kare (full frame)” ve hatta bazı durumlarda “kullanıcı bitleri (user bits)” olarak.
Tam kare mesajları, çeyrek kare olanların handikapı sayılan ve geçtiğimiz sayıda sözüne ettiğimiz MIDI”de bantgenişliğini ortadan kaldıracak biçimde tasarlanmış. Tıpkı çeyrek karede olduğu gibi tam kare zaman kodu da saat-dakika-saniye-kare bilgisi taşıyor ancak en önemli fark, bu bilgilerin yerleştirildiği mesajda. çeyrek kareler MIDI”de tek başlarına bağımsız bir mesajla giderlerken (241 numaralı mesaj), tam kareler SysEx mesajının içine gömülü bulunurlar. Böylece “alan darlığı”  meselesi kendiliğinden ortadan kalkar. Tablo 3 ile gösterilen MTC Tam Kare mesajına dikkat edecek olursanız, mesajın SysEx (1111 0000 ve 1111 0111 (EOX)) içine gömülü bir küresel zaman kodu olduğunu (01111111); genelde 1. veya 16. global MIDI kanalı üzerinden (c) kendi adına kodlanmış özel yapısıyla (00000001) saat (k (kare seçimi (h)), dakika (m), saniye (s) ve kare (f) bilgilerinden oluştuğunu görürsünüz. Böylece her bir zaman dilimi 7 bitlik, yani doğal olanından da fazla bir kümeyle taşındığından çeyrek karede olan zaman sorunlarının neredeyse hiçbiri tam karede yaşanmaz dersek abartmış olmayız. Yani MIDI kablo uzunluğu veya kalitesi, fazla veri içeren uygulamalar tam kare zaman kodu için bir sorun değildir. Ancak bunun yerini, kaynağında MMC”nin olduğu başka sorunlar alır ki maalesef bu sorunların kökeni de zaman kodunun SysEx ile olan ilişkisinde, yani yapısında gizlidir.

 

Bir kullanıcı, uygulamasının “synchronization” menüsünden eşgüdüm olarak MMC”yi seçtiğinde o uygulama, eşgüdüm için diğer donanımlara “hareket” bilgilerini göndermeye hazır hale gelir. MMC bir zaman kodu içermediğinden, aynı kullanıcı bu kez “zaman kodu” için tercih yapmak zorundadır ve bunun için çoğunlukla MTC tercih edilir. Eşgüdüm için asıl tercih MMC olduğundan, zaman kodunda MTC tercihi aslında MTC”nin Tam Kare mesajını çağırmak anlamına gelir. Bu yolla “Tam Kare” mesajları devreye girer ve zaman kodu SysEx üzerinden taşınır. Eğer kullanıcı MMC”yi devreye sokmadan doğrudan MTC ile çalışırsa bu durumda MTC çeyrek Kare mesajları görevde olacaktır. Dolayısıyla, bir zaman kodu olarak MTC”nin hangi durumlarda hangi mesajla devreye girmesi gerektiğini aslında MMC belirler diyebiliriz.

Kimi durumlarda bazı hareket komutları, MMC yerine MTC yeteneğiyle karşı tarafa iletilebilir. İşte bu iletilen özel durumlu komutlara “MTC Cueing” mesajları adı verilir. MIDI jargonunda “MTC kullanıcı bitleri (users bits)” olarak tanımlanan bu özel eşgüdüm biçimi, tıpkı Tablo 2 ile belirtilen MMC komutları gibi start, stop, fast forward, punch in-out vs. gibi hareket bilgilerini SysEx mesajı içine yapılandırılmış MTC zaman koduyla birlikte karşı tarafa gönderir. Eşgüdüm için olağanüstü bir çözüm yaratmasa da, “cueing” mesajlarının diğer iki tip olan çeyrek kare ve tam kare ile birlikte MTC”nin üçüncü farklı tipi olduğunu bilmekte fayda var. 

Peki, yapısıyla daha da netleşen MMC”de zaman kodu sorunu uygulamada tam olarak nerede ve nasıl ortaya çıkıyor, kısacası sorun nerede? Sorun, MMC ile harekete geçen komut ve zaman koduna dayalı eşgüdümün SysEx mesajı ile taşınmasında. Yukarıda belirtilen nedenlerden dolayı bunun zararından çok yararı var kuşkusuz. Eşgüdümü “hareket komutları” ve “zaman kodu” etkileşimiyle ayrı iki koldan yönetmek, her bir komut ve kod için neredeyse 1 Byte kullanmak MMC”nin eşgüdümde sağladığı en büyük avantaj gibi görünüyor. Ancak bu mesajların kendine özel yapısıyla değil de SysEx mesajı içine gömülerek gönderilmesi, donanımlar arasında uyuşmazlığı ortaya çıkarabiliyor ve işte MMC eşgüdümlü zaman koduna ait sorunların kökeninde de bu durum yatıyor.  Aynı marka veya farklı marka ama birbirlerini desteklediği uluslar arası bildirgelerde açıklanmış donanımlardan oluşan bir sistem için MMC ile sağlanan eşgüdümlerde neredeyse sorun çıkmazken; çok farklı marka ve modellerin kullanıldığı sistemlerde MMC ile kurulan eşgüdümde zaman kodu sorunları hat safhaya varabiliyor. çünkü her ne kadar MMC veya MTC Tam Kare mesajları SysEx içinde firma bilgisi yerine sabit bir kod taşısa da, özellikle zaman kodlarında mesajın SysEx içinde gönderilmesi, mutlaka karşı donanımlarda bir marka/model sorgulamasını tetikliyor. Bu sorundan korunmak için de maalesef sistemdeki donanımları kılı kırk yararak seçmek gerekiyor. örneğin ProTools destekli donanımlar kendi içlerinde sorun yaşamazken, ProTools tarafından açıkça desteği belirtilmeyen bazı dijital masalar sisteme girdiğinde MMC ile sorunlar ortaya çıkabiliyor. Hatta ve hatta bu türden karışık markalı sistemlerde eşgüdümün tek merkezden yürütüldüğü MOTU veya M-Audio gibi synchroniser”lar (MIDI Express”ler) kullanılsa da MMC kaynaklı eşgüdüm sorunlarından bir türlü yakayı sıyıramayan örneklere çokça rastlıyoruz. Sorunun kesin çözümünü tekrar etmek gerekirse, birbirlerini desteklediği kamuoyuna açıkça duyurulan donanımları sistem içinde kullanmayı tercih etmek. Başka bir çözüm yolu yok maalesef.

Geçtiğimiz ay ve bu ayki yazımızda özetle, MIDI”li bir eşgüdümde kullanılacak zaman kodunun olağan yapısından kaynaklanan sorunları inceledik. Sektörde yaygın olarak kullanılan MTC ve MMC eşgüdüm mesajlarının yapısını sırasıyla anlattık ve bu yapıların olağan akışından kaynaklanan nedenlerle, eşgüdümde arızalı zaman üretimi veya tamamen eşgüdümü durdurma gibi sonuçların ortaya çıkabileceğini gördük. Kullanıcının kontrolü dışında oluşabilecek bu hataların engellenmesi için ancak bir-iki önemli donanım müdehalesinin olması gerektiğini savunduk. örneğin MTC sorunlarında, MIDI kablolarının kısa tutulması ve sektörde tecrübeli firmalara ait kabloların tercih edilmesi gerektiğini; MMC için ise olabildiğince birbirlerine uyumlu donanımları seçmenin sorunu ortadan kaldıracağını belirttik. Sorun ortaya çıktığında her ne kadar farklı çözümlermiş gibi görünseler de aslında her iki çözümün MIDI”li bir sistemde aynı anda tercih edilmesi en ideali elbette.

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here