MIDI mimarisi

Bu makalede, herhangi bir platform uygulamasından, API'den veya platforma özgü özelliklerden bağımsız olarak genel MIDI mimarisi açıklanmaktadır.

Anahtar kavramlar

Olaylar

MIDI protokolü olaya dayalı iletişim için tasarlanmıştır. Olay, bir şeyin belirli bir zamanda gerçekleştiğinin veya olacağının göstergesidir. MIDI olayları, atomik bilgi paketleri olan mesajlarla temsil edilir.

Ulaşım

MIDI mesajları, ham MIDI verilerini alıcıya gönderen ve daha sonra verilerin kodunu mesajlara dönüştüren bir taşıma katmanı (taşıma olarak kısaltılır) aracılığıyla kodlanır ve iletilir.

Donanım tabanlı MIDI aktarımları şunları içerir:

  • 5 pinli DIN konnektörlü MIDI 1.0 akım döngüsü
  • USB
  • Bluetooth Düşük Enerji (BLE)

Mesaj gösterimi

MIDI taşıma spesifikasyonu mesajların nasıl iletileceğini açıklar. Mesajların paketlenmesi en düşük seviyede aktarıma özel olmasına rağmen, daha yüksek seviyedeki uygulamalar, zaman sıralı mesaj dizisini sınırları belirlenmiş bir bayt akışı olarak değerlendirebilir. Bu mümkündür çünkü her mesaj, mesajın toplam uzunluğunu belirlemek için, mesaj sınırının başlangıcının bilinmesi koşuluyla yeterli bilgi içerir.

MIDI mesajlarının çoğu kısadır (bir ila üç bayt), ancak SysEx aracılığıyla daha uzun mesajlar alma olanağı da vardır.

Zaman damgaları

Zaman damgası , aktarıma bağlı olarak bir mesaja, oluşturulduğunda veya alındıktan sonra eklenen isteğe bağlı bir etikettir. Zaman damgası saniye veya tik gibi zaman birimleriyle ifade edilir.

Açık bir zaman damgasının yokluğunda sistem, hemen önceki mesajın veya geçerli zamanın zaman damgasını değiştirmelidir. Bu zaman damgalarının doğruluğu, ister açık ister örtülü olsun, MIDI tabanlı bir sistemin güvenilirliğinin önemli bir yönüdür.

Zaman damgaları MIDI 1.0 protokolünün parçası değildir. Genellikle platforma özgü bir API'nin parçası olarak eklenirler. BLE aktarımı, bir BLE paketi içinde gönderilen birden fazla ayrı mesajın zamanlamasını belirtmek için zaman damgalarına sahiptir.

Cihazlar

Çevre birimi, bilgisayar için giriş/çıkış (G/Ç) yeteneği sağlar. MIDI çevre birimi ve MIDI cihazı terimleri genellikle MIDI protokolünü destekleyen herhangi bir donanım veya yazılım modülünü ifade eder. Bu belgede, MIDI çevre birimi fiziksel varlığı ifade eder ve MIDI cihazı, MIDI'yi fiilen uygulayan modülü açıklar.

Limanlar

Bağlantı noktası, bilgisayarlar ve çevre birimleri arasında 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ı ya OUT (MIDI verilerinin kaynağı), IN (MIDI verileri için havuz) ya da THRU'dur (doğrudan OUT'a yönlendirilen bir IN anlamına gelir).

USB ve BLE gibi diğer aktarımlar bağlantı noktası konseptini genişletir.

Bir MIDI aygıtında en az bir OUT bağlantı noktası, IN bağlantı noktası veya her ikisi bulunur.

MIDI cihazı, her ÇIKIŞ bağlantı noktasından kaynaklanan mesajların akışlarını sağlar ve her GİRİŞ bağlantı noktasından gelen mesaj akışlarını alır. IN ve OUT terimleri elbette tek bir bağlantı noktasına göredir; diğer port açısından bakıldığında ise tersi terim geçerlidir.

Bağlantı

MIDI 1.0 aktarımında, bir OUT bağlantı noktası, mevcut döngünün doğası gereği en fazla bir IN veya THRU bağlantı noktasına bağlanır. USB ve BLE aktarımlarında aynı durum en alt katman için de geçerlidir, ancak bir uygulama mesaj akışını birden fazla IN bağlantı noktasına yayınlanabilecek şekilde yeniden koşullandırabilir.

Kablolar

MIDI 1.0 kablosu, bir OUT bağlantı noktasını bir 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.

Çok çeşitli konektör türlerinin bulunması ve GİRİŞ / ÇIKIŞ / İÇİ kavramının yerini ana bilgisayar / çevre birimi rolünün alması dışında USB kablosu da benzerdir.

USB ana bilgisayar modunda çalışırken, ana cihaz MIDI çevre birimine güç sağlar. Küçük MIDI çevre birimlerinin çoğu bir USB birimi yükü (100 mA) veya daha azını alır. Ancak bazı daha büyük çevre birimleri veya ses çıkışı veya ışıkları olan çevre birimleri, ana cihazın sağlayabileceğinden daha fazla güce ihtiyaç duyar. Sorunla karşılaşırsanız başka bir MIDI çevre birimini veya elektrikli bir USB hub'ı deneyin.

Kanal

Her MIDI mesaj akışı 16 kanal arasında çoğullanır. Çoğu mesaj belirli bir kanala yönlendirilir ancak kanala özel olmayan mesaj türleri de vardır. Geleneksel olarak kanallar birden 16'ya kadar numaralandırılır, ancak sıfırdan 15'e kadar olan kanal değerleriyle temsil edilir.

Uygulamanın 16'dan fazla kanala veya bir mesaj akışının destekleyebileceğinden daha yüksek bir verime 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 gerçekleştirilir.

MIDI over USB aktarımında, tek bir USB uç noktası, her biri bir kablo numarasıyla [sic] tanımlanan birden fazla bağlantı noktasını destekleyebilir. USB MIDI spesifikasyonuna göre kablo numarası , uç nokta içindeki sanal bağlantı noktasını tanımlar.

Not: Bir bağlantı noktasını tanımladığı göz önüne alındığında, bağlantı noktası numarası daha doğru bir terim olurdu.

Böylece tek bir USB fiziksel kablosu birden fazla 16 kanal setini taşıyabilir.

Platform uygulaması

Girişte belirtildiği gibi, bu genel MIDI kavramları tüm uygulamalara uygulanır. Android platformundaki kavramların yorumlanması için android.media.midi için Android MIDI Kullanım Kılavuzu'na bakın.