Bu makalede, herhangi bir platform uygulamasından, API'den veya platforma özgü özelliklerden bağımsız olarak genel MIDI mimarisi açıklanmaktadır.
Temel kavramlar
Etkinlikler
MIDI protokolü, etkinliğe dayalı iletişim için tasarlanmıştır. Etkinlik, belirli bir zamanda bir şeyin gerçekleştiğini veya gerçekleşeceğini gösteren bir göstergedir. MIDI etkinlikleri, atomik bilgi paketleri olan mesajlar ile temsil edilir.
Taşımacılık
MIDI mesajları, ham MIDI verilerini alıcıya gönderen ve ardından verilerin kodunu çözerek iletiye dönüştüren aktarım katmanı (transport olarak kısaltılır) üzerinden kodlanır ve yayınlanır.
Donanım tabanlı MIDI aktarım yöntemleri şunlardır:
- 5 pimli DIN konnektörlü MIDI 1.0 akım döngüsü
- USB
- Bluetooth Düşük Enerji (BLE)
Mesaj temsili
MIDI aktarım spesifikasyonu, mesajların nasıl iletileceğini açıklar. Mesajların paketlenmesi en düşük düzeyde aktarıma özel olsa da daha yüksek düzeydeki uygulamalar, zamana göre sıralanmış bir mesaj dizisini ayrılmış bir bayt akışı olarak değerlendirebilir. Bu, her mesajın, mesaj sınırının başlangıcı bilindiği sürece mesajın toplam uzunluğunu belirlemek için yeterli bilgi içermesi nedeniyle mümkündür.
Çoğu MIDI mesajı kısadır (bir ila üç bayt), ancak SysEx aracılığıyla daha uzun mesajlar gönderebilirsiniz.
Zaman damgaları
Zaman damgası, iletiye gönderim aracına bağlı olarak gönderim sırasında veya alındığında eklenen isteğe bağlı bir etikettir. Zaman damgası, saniye veya tik gibi zaman birimlerinde ifade edilir.
Belirli bir zaman damgası yoksa sistem, hemen önceki mesajın zaman damgasını veya mevcut zamanı kullanmalıdır. Bu zaman damgalarının doğruluğu (açık veya örtük), MIDI tabanlı bir sistemin güvenilirliğinin önemli bir yönüdür.
Zaman damgaları MIDI 1.0 protokolünün bir parçası değildir. Bunlar genellikle platforma özgü bir API'nin parçası olarak eklenir. BLE aktarıcısında, tek bir BLE paketinde gönderilen birden fazla ayrı mesajın zamanlamasını belirten zaman damgaları bulunur.
Cihazlar
Çevre birimi, bilgisayara giriş/çıkış (G/Ç) özelliği sağlar. MIDI çevre birimi ve MIDI cihazı terimleri genellikle MIDI protokolünü destekleyen tüm donanım veya yazılım modüllerini ifade eder. Bu belgede MIDI çevre birimi fiziksel öğeyi, MIDI cihazı ise MIDI'yi gerçekten uygulayan modülü ifade eder.
Bağlantı Noktaları
Bağlantı noktası, bilgisayarlar ile çevre birimleri arasındaki bir arayüz noktasıdır.
MIDI 1.0, bağlantı noktası olarak dişi 5 pinli DIN soketi kullanır. Her bağlantı noktası OUT (MIDI verilerinin kaynağı), IN (MIDI verileri için alıcı) veya THRU (doğrudan bir OUT'a yönlendirilen bir IN anlamına gelir) olarak ayarlanabilir.
USB ve BLE gibi diğer aktarım yöntemleri bağlantı noktası kavramını genişletir.
MIDI cihazlarında en az bir OUT, IN veya her ikisi de bulunur.
MIDI cihazı, her OUT bağlantı noktasından gelen mesaj akışları sağlar ve her IN bağlantı noktasına gelen mesaj akışlarını alır. GİRİŞ ve ÇIKIŞ terimleri elbette bir bağlantı noktasına göredir. Diğer bağlantı noktası açısından terimler ters şekilde geçerlidir.
Bağlantı
MIDI 1.0 aktarımında, mevcut döngünün yapısı nedeniyle bir OUT bağlantı noktası en fazla bir IN veya THRU bağlantı noktasına bağlanır. USB ve BLE aktarımlarında en alt katmanda da aynı durum geçerlidir. Ancak bir uygulama, mesaj akışını birden fazla GİR bağlantı noktasına yayınlanacak şekilde yeniden koşullandırabilir.
Kablolar
MIDI 1.0 kablosu, bir OUT bağlantı noktasını IN veya THRU bağlantı noktasına bağlayan fiziksel kablo demetidir. Kablo yalnızca veri taşır.
Not: MIDI'de, kullanılmayan iki pin üzerinden güç sağlayan standart dışı değişiklikler vardır. Buna hayalet güç denir.
USB kablosu da benzerdir. Bununla birlikte, çok çeşitli konnektör türleri vardır ve GİR/ÇIKIŞ/GEÇ kavramı, ana makine/çevre birimi rolü ile değiştirilir.
USB ana makine modunda çalışırken ana makine, MIDI çevre birimine güç sağlar. Küçük MIDI çevre birimlerinin çoğu bir USB birimi yükünü (100 mA) veya daha azını kullanır. Ancak bazı büyük çevre birimleri veya ses çıkışı ya da ışıkları olan çevre birimleri, ana cihazın sağlayabileceğinden daha fazla güç gerektirir. Sorun yaşarsanız başka bir MIDI çevre birimi veya güç destekli USB hub'ı deneyin.
Kanal
Her MIDI mesaj akışı 16 kanal arasında çoklu yayınlanır. Çoğu mesaj belirli bir kanala yöneliktir ancak kanala özel olmayan mesaj türleri de vardır. Kanallar genellikle 1 ile 16 arasında numaralandırılır ancak sıfır ile 15 arasındaki kanal değerleriyle temsil edilir.
Uygulamanın 16'dan fazla kanala veya birden fazla mesaj akışının destekleyebileceğinden daha yüksek bir veri hızına ihtiyacı varsa birden fazla bağlantı noktası kullanılmalıdır.
MIDI 1.0'da bu, bağlantı noktası çiftlerini birbirine bağlayan birden fazla kabloyla yapılır.
USB üzerinden MIDI aktarımında, tek bir USB uç noktası birden fazla bağlantı noktasını destekleyebilir. Bu bağlantı noktaları her biri bir kablo numarasıyla [sic] tanımlanır. USB MIDI spesifikasyonuna göre kablo numarası, uç noktadaki sanal bağlantı noktasını tanımlar.
Not: Bir bağlantı noktasını tanımladığı için bağlantı noktası numarası daha doğru bir terim olurdu.
Bu nedenle, tek bir fiziksel USB kablosu birden fazla 16 kanal grubu taşıyabilir.
Platform uygulama
Giriş bölümünde belirtildiği gibi, bu genel MIDI kavramları tüm uygulamalar için geçerlidir. Android platformundaki kavramların yorumu için
android.media.midi
için Android MIDI Kullanıcı Kılavuzu'na bakın.