ארכיטקטורת MIDI

מאמר זה מתאר את ארכיטקטורת ה-MIDI הגנרית, ללא תלות בכל מימוש פלטפורמה, API או תכונות ספציפיות לפלטפורמה.

מושגי מפתח

אירועים

פרוטוקול MIDI מיועד לתקשורת מבוססת אירועים. אירוע הוא אינדיקציה שמשהו קרה או יקרה בזמן מוגדר. אירועי MIDI מיוצגים על ידי הודעות , חבילות מידע אטומיות.

תַחְבּוּרָה

הודעות MIDI מקודדות ומועברות באמצעות שכבת תעבורה , תעבורה מקוצרת, ששולחת את נתוני ה-MIDI הגולמיים לנמען שלאחר מכן מפענח את הנתונים להודעות.

העברות MIDI מבוססות חומרה כוללות:

  • לולאת זרם MIDI 1.0 עם מחבר DIN 5 פינים
  • יו אס בי
  • Bluetooth Low Energy (BLE)

ייצוג מסרים

מפרט תעבורה MIDI מתאר כיצד להעביר מסרים. למרות שהאריזה של הודעות היא ספציפית לתעבורה ברמה הנמוכה ביותר, ברמה גבוהה יותר יישומים יכולים להתייחס לרצף של הודעות לפי סדר זמן כזרם בתים מתוחם. זה אפשרי מכיוון שכל הודעה מכילה מספיק מידע כדי לקבוע את האורך הכולל של ההודעה, בתנאי שההתחלה של גבול ההודעה ידועה.

רוב הודעות ה-MIDI הן קצרות (אחד עד שלושה בתים), אך ישנה אפשרות להודעות ארוכות יותר באמצעות SysEx .

חותמות זמן

חותמת זמן היא תווית אופציונלית המוצמדת להודעה במקור או עם קבלה, בהתאם להובלה. חותמת הזמן מתבטאת ביחידות זמן כגון שניות או טיקים .

בהיעדר חותמת זמן מפורשת, על המערכת להחליף את חותמת הזמן של ההודעה הקודמת מיד או את השעה הנוכחית. הדיוק של חותמות זמן אלו, בין אם מפורשות או מרומזות, הוא היבט חשוב באמינות של מערכת מבוססת MIDI.

חותמות זמן אינן חלק מפרוטוקול MIDI 1.0. לעתים קרובות הם מתווספים כחלק מ-API ספציפי לפלטפורמה. להעברת BLE יש חותמות זמן לציון התזמון של מספר ההודעות הבודדות הנשלחות בתוך חבילת BLE אחת.

מכשירים

ציוד היקפי מספק יכולת קלט/פלט (I/O) למחשב. המונחים ציוד היקפי MIDI ומכשיר MIDI מתייחסים בדרך כלל לכל מודול חומרה או תוכנה שתומך בפרוטוקול MIDI. בתוך מסמך זה, ציוד היקפי MIDI מתייחס לישות הפיזית והתקן MIDI מתאר את המודול שמיישם MIDI בפועל.

נמלים

יציאה היא נקודת ממשק בין מחשבים וציוד היקפי.

MIDI 1.0 משתמש בשקע DIN נקבה בן 5 פינים בתור היציאה. כל יציאה היא או OUT (מקור לנתוני MIDI), IN (השקע עבור נתוני MIDI), או THRU (כלומר IN אשר מנותב ישירות ל- OUT ).

תחבורה אחרים כגון USB ו-BLE מרחיבים את קונספט היציאה .

להתקן MIDI יש לפחות יציאת OUT , יציאת IN או שניהם.

התקן ה-MIDI מספק זרם(ים) של הודעות שמקורן בכל יציאת OUT , ומקבל זרם(ים) של הודעות המגיעות לכל יציאת IN . המונחים IN ו- OUT הם כמובן יחסית ליציאה אחת; מנקודת המבט של הנמל השני המונח ההפוך חל.

חיבור

בתעבורה של MIDI 1.0, יציאת OUT מתחברת ליציאת IN או THRU אחת לכל היותר עקב אופי הלולאה הנוכחית. בהעברות USB ו-BLE, הדבר נכון גם בשכבה הנמוכה ביותר, אם כי יישום עשוי לתקן מחדש את זרם ההודעות כך שניתן יהיה לשדר אותו למספר יציאות IN .

כבלים

כבל MIDI 1.0 הוא צרור החוטים הפיזי שמחבר יציאת OUT ליציאת IN או THRU . הכבל נושא נתונים בלבד.

הערה: ישנם שינויים לא סטנדרטיים ל-MIDI המספקים חשמל על שני הפינים שאינם בשימוש. זה נקרא כוח פנטום .

כבל USB דומה, אלא שיש מגוון רחב של סוגי מחברים, והמושג IN / OUT / THRU מוחלף בתפקיד המארח/היקפי.

כאשר פועלים במצב מארח USB, ההתקן המארח מספק חשמל לציוד היקפי MIDI. רוב ציוד היקפי MIDI הקטנים תופסים עומס יחידת USB אחת (100 mA) או פחות. עם זאת, כמה ציוד היקפי גדול יותר, או ציוד היקפי עם פלט אודיו או אורות, דורשים יותר כוח ממה שהמכשיר המארח יכול לספק. אם אתה נתקל בבעיות, נסה ציוד היקפי MIDI אחר או רכזת USB מופעלת.

עָרוּץ

כל זרם הודעות MIDI מוכפל בין 16 ערוצים . רוב ההודעות מופנות לערוץ מסוים, אך ישנם סוגי הודעות שאינם ספציפיים לערוץ. בדרך כלל הערוצים ממוספרים מאחד עד 16, אם כי מיוצגים על ידי ערכי ערוץ של אפס עד 15.

אם האפליקציה זקוקה ליותר מ-16 ערוצים או תפוקה גבוהה יותר ממה שזרם הודעות אחד יכול לתמוך, אז יש להשתמש במספר יציאות.

ב-MIDI 1.0, זה מושג על ידי מספר כבלים המחברים זוגות של יציאות.

בהעברת MIDI over USB, נקודת קצה USB אחת יכולה לתמוך במספר יציאות, כל אחת מזוהה על ידי מספר כבל [sic]. על פי מפרט USB MIDI, מספר הכבל מזהה את היציאה הוירטואלית בתוך נקודת הקצה.

הערה: מספר יציאה היה מונח מדויק יותר, בהתחשב בכך שהוא מזהה יציאה.

לפיכך, כבל USB פיזי יחיד יכול לשאת יותר מסט אחד של 16 ערוצים.

יישום פלטפורמה

כפי שצוין במבוא, מושגי MIDI גנריים אלה חלים על כל ההטמעות. לפרשנות של המושגים בפלטפורמת אנדרואיד, עיין במדריך למשתמש של Android MIDI עבור android.media.midi .