Κεφάλαιο 6 Τα Πρωτόκολλα Μουσικής Επικοινωνίας MIDI και Open Sound Control (OSC).

Σχετικά έγγραφα
Τμήμα Επιστήμης Υπολογιστών ΗΥ-474. Ψηφιακός ήχος. Χαρακτηριστικά σήματος ήχου Ψηφιοποίηση ήχου Συνθετικοί ήχοι MIDI

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ MIDI

ΕΙΣΑΓΩΓΗ ΣΤΟΠΡΩΤΟΚΟΛΛΟ ΠΡΩΤΟΚΟΛΛΟ: X. ΧΟΥΣΙ ΗΣ

Running Status & System Messages

Εισαγωγή στη Μουσική Τεχνολογία Ενότητα: Το MIDI Διασυνδετικό (MIDI Interface)

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Μουσική Πληροφορική. Δ. Πολίτης, Τμήμα Πληροφορικής ΑΠΘ, 2015

Βασική δοµή και Λειτουργία Υπολογιστή

ουλεύοντας µε το Finale (6η συνέχεια)

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

Περιεχόµενα. Επικοινωνίες εδοµένων: Τρόποι Μετάδοσης και Πρωτόκολλα. Εισαγωγή

Εισαγωγή στην Πληροφορική

Μάθημα 3: Αρχιτεκτονική Υπολογιστών


Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Μάθημα 2: Παράσταση της Πληροφορίας

ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ I. Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ

Λογικός Σχεδιασµός και Σχεδιασµός Η/Υ. ΗΜΥ-210: Εαρινό Εξάµηνο Σκοπός του µαθήµατος. Ψηφιακά Συστήµατα. Περίληψη. Εύρος Τάσης (Voltage(

Εργαστήριο 2. Ενεργοποιώντας τον ήχο (πατάμε στο ηχείο με το patch κλειδωμένο) ακούμε ένα ημίτονο με συχνότητα 440Hz.

Βασικές Έννοιες της Πληροφορικής

Τ.Ε.Ι. ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΗΧΟΥ & ΜΟΥΣΙΚΩΝ ΟΡΓΑΝΩΝ

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω:

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

Σημειώσεις : Χρήστος Μουρατίδης. Κάντε κλικ για έναρξη

5.1 Θεωρητική εισαγωγή

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 1 ΤO ΡΟΜΠΟΤ INTELLITEK ER-2u

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

ΕΝΑΡΞΗ ΜΕ DJCONTROL COMPACT ΚΑΙ DJUCED 18

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Εισαγωγή στην Πληροφορική ΓΕΝΙΚΟ ΤΜΗΜΑ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ TEI ΧΑΛΚΙ ΑΣ

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

ουλεύοντας µε το Finale (7η συνέχεια)

ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ

Εργαστήριο 3 Μέρος 1ο Γεννήτριες κυματομορφών στο Max

Περιληπτικό Εγχειρίδιο U-CONTROL UMX610/UMX490. The Ultimate Studio in a Box: 61/49-Key USB/MIDI Controller Keyboard with Separate USB/Audio Interface

Σελίδα.1/1

Σηµαντικές παρατηρήσεις σχετικά µε το backround:

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

Εισαγωγή στην επιστήµη των υπολογιστών. Υπολογιστές και Δεδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών

Εφαρμογές Σειριακής Επικοινωνίας

Μάθημα 4.7 Θύρες περιφερειακών

Εισαγωγή στην επιστήµη των υπολογιστών. Αναπαράσταση Αριθµών

Περιγραφή του βασικού παραθύρου του Cubase SE3. Εικόνα 1

Αφήγηση Μαρτυρία. Μουσική. Ενίσχυση μηνύματος Μουσική επένδυση Ηχητικά εφέ

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 2ο ΚΑΤΑΧΩΡΗΤΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

αντίστοιχο γεγονός. Όταν όντως το κουμπί

Τα αλφαριθμητικά αποτελούνται από γράμματα, λέξεις ή άλλους χαρακτήρες (π.χ. μήλο, Ιούλιος 2009, You win!).

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

ΜΟΥΣΙΚΗ ΜΕΣΩ ΥΠΟΛΟΓΙΣΤΗ ΠΡΩΤΟΚΟΛΛΟ ΕΠΙΚΟΙΝΩΝΙΑΣ ΔΙΑΣΥΝΔΕΤΙΚΟΥ MIDI

ΤΑ ΠΡΩΤΑ ΒΗΜΑΤΑ ΜΕ ΤΟ DJCONTROL AIR+ KAI TO DJUCED 40

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

8.1 Θεωρητική εισαγωγή

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Η συχνότητα f των παλµών 0 και 1 στην έξοδο Q n είναι. f Qn = 1/(T cl x 2 n+1 )

Αναπαραγωγή και stop/pause έτοιμων ηχητικών clips

Ενότητα 8.1. Σειριακή και παράλληλη μετάδοση δεδομένων

Τι είναι ο Multi Part Editor?

ΨΗΦΙΑΚΟΣ ΕΚΤΗΣ DVB-T MPEG-4 ReDi 100

BeoSound 9000 Οδηγ ς

Κεφάλαιο 3 Πολυπλεξία

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

[2] Υπολογιστικά συστήματα: Στρώματα. Τύποι δεδομένων. Μπιτ. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

Εισαγωγή στη Μουσική Τεχνολογία Ενότητα: Οι μορφές των ηλεκτρονικών μουσικών οργάνων

Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT)

Εισαγωγή. Περιεχόμενα της συσκευασίας. Τεχνικές Προδιαγραφές. Απαιτήσεις συστήματος. Ελληνική Έκδοση SWEEX.COM

ήχου υψηλής ποιότητας)

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης

ΕΝ ΕΙΚΤΙΚΑ ΠΑΡΑ ΕΙΓΜΑΤΑ ΚΡΙΤΗΡΙΩΝ ΑΞΙΟΛΟΓΗΣΗΣ. Κεφάλαιο 17

Εισαγωγή στην επιστήμη των υπολογιστών

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

Πανεπιστήµιο Θεσσαλίας

Αρχιτεκτονική Υπολογιστών

για τις ρυθμίσεις LabView μέσα από το κανάλι και του καλωδίου USB.

Περιληπτικό Εγχειρίδιο U-CONTROL UMX250. The Ultimate Studio in a Box: 25-Key USB/MIDI Controller Keyboard with Separate USB/Audio Interface

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Χ. Βέργος Καθηγητής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Ήχος. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 04-1

ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ ΑΡ ΕΥΣΗΣ ΜΙΑΣ ΣΤΑΣΗΣ ΜΕ ΗΛΕΚΤΡΟΒΑΝΑ ΚΑΙ ΤΡΙΑ ΑΝΕΞΑΡΤΗΤΑ ΠΡΟΓΡΑΜΜΑΤΑ.

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Ηχογραφώντας με το CUBASE

Σειριακό Τερματικό Serial Terminal (Dumb Terminal)

ΜΟΥΣΙΚΗ ΚΑΙ ΥΠΟΛΟΓΙΣΤΕΣ

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Αριθμητικά Συστήματα

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ , Ελλάδα, Τηλ Φαξ

Α5.1 Εισαγωγή στα Δίκτυα. Α Λυκείου

Πρωτόκολλα Μουσικής Επικοινωνίας. Σηµειώσεις Θεωρίας. Χ. Αλεξανδράκη Χ. Χουσίδης

SD -1 Ο ΗΓΙΕΣ ΧΡΗΣΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

Transcript:

Κεφάλαιο 6 Τα Πρωτόκολλα Μουσικής Επικοινωνίας MIDI και Open Sound Control (OSC). Σύνοψη Το Κεφάλαιο 6 εξετάζει τα πρωτόκολλα επικοινωνίας Musical Instrument Digital Interface (MIDI) και Open Sound Control (OSC) µέσω των οποίων πραγµατοποιείται η διακίνηση µηνυµάτων από και προς τον υπολογιστή. Παρουσιάζεται η αρχιτεκτονική των πρωτοκόλλων και οι τύποι των µηνυµάτων που διακινούν. Προαπαιτούµενη γνώση Απαιτείται γνώση των Κεφαλαίων 1, 2 και 5. 6.1. Tο Πρωτόκολλο Musical Instrument Digital Interface (MIDI). Εκτός από την καταγραφή του ηχητικού σήµατος υπάρχει η δυνατότητα να καταγράψουµε και να αποθηκεύσουµε πληροφορίες που σχετίζονται µε τον παραµετρικό έλεγχο και τις ποσοτικές τιµές του. Για παράδειγµα, µπορούµε να καταγράψουµε, να αποθηκεύσουµε και να τροποποιήσουµε µε ψηφιακό τρόπο πληροφορίες που θα µας επιτρέψουν να ελέγξουµε το τονικό ύψος, την ένταση και το ηχόχρωµα µιας νότας χρησιµοποιώντας το πρωτόκολλο MIDI (Musical Instrument Digital Interface). Αυτή η µέθοδος απαιτεί µικρότερο αποθηκευτικό χώρο σε σχέση µε την αποθήκευση του ήχου, γεγονός ιδιαίτερα σηµαντικό στη δεκαετία του 1980 κατά την οποία οι υπολογιστές είχαν περιορισµένο αποθηκευτικό χώρο και µνήµη. Στην αλλαγή των δεκαετιών του 1970 και 1980, τα µέλη της National Association of Music Merchants (NAMM) συναντιόνταν τακτικά για να συζητήσουν εµπορικές συµφωνίες. Το 1982, οι εκπρόσωποι εταιριών που κατασκεύαζαν συνθετητές συναντήθηκαν µετά από αίτηµα του Dave Smith, εκπροσώπου της Sequential Circuits. Σε αυτήν τη συνάντηση συµφώνησαν να συντάξουν ένα πρωτόκολλο για την ψηφιακή µεταφορά µουσικών δεδοµένων από όλους τους τύπους ηλεκτρονικών οργάνων που υπήρχαν εκείνη την εποχή. Η αρχική µορφή αυτού του πρωτοκόλλου ονοµάστηκε USI (Universal Synthesizer Interface). Βασικός σκοπός του ήταν η δηµιουργία µιας πλατφόρµας επικοινωνίας µεταξύ συνθετητών διαφορετικών εταιριών. Μετά από κάποιες παραλλαγές, η τελική ονοµασία που δόθηκε στο πρωτόκολλο ήταν Musical Instrument Digital Interface (MIDI). Το MIDI ανακοινώθηκε επίσηµα την ίδια χρονιά. Το 1983, η Roland και η Sequential Circuits µε το το Prophet 600, παρουσίασαν τα πρώτα MIDI πληκτροφόρα µε δυνατότητα επικοινωνίας µέσω του πρωτοκόλλου MIDI. Μια πολύ απλή αλλά βασική αρχή για την κατανόηση του πρωτοκόλλου είναι η εξής: το MIDI δεν παίζει ήχους. Απλά ελέγχει τους ήχους που παράγουν κάποια µηχανήµατα. Οι υπολογιστές, όπως και τα τηλέφωνα, επικοινωνούν µεταξύ τους µέσα καλωδίων (ακόµα!), αλλά µε έναν κάπως διαφορετικό τρόπο. Με όποιον τρόπο και αν δείχνει ένας υπολογιστής µια πληροφορία στην οθόνη του (λέξεις, κυµατοµορφές κ.λπ.), εσωτερικά µπορεί να καταλάβει αυτήν την πληροφορία µόνο µέσω µιας σειράς αριθµών στη µνήµη του. Για παράδειγµα, η λέξη «HELLO» στο Σχήµα 6.1 (το σύνηθες παράδειγµα που χρησιµοποιείται στη βιβλιογραφία) δεν είναι τίποτα άλλο για τον υπολογιστή από µια σειρά δυαδικών ψηφίων τα οποία αντιστοιχούν στα γράµµατα της λέξης. Κάθε γράµµα αντιπροσωπεύεται επίσης από έναν κωδικό αριθµό ASCII. 185

Σχήµα 6.1 Μετατροπή της λέξης «HELLO» σε κωδικό ASCII και σε δυαδικά ψηφία. 6.1.1. Πώς µια Μηχανή Αποθηκεύει Έναν Αριθµό; Ο υπολογιστής χρησιµοποιεί πολύ µικρές ποσότητες ηλεκτρικού ρεύµατος για να αποθηκεύσει τις τιµές οι οποίες αντιστοιχούν σε κάποια πληροφορία. Αυτές οι µικρές ποσότητες ηλεκτρικού ρεύµατος, οι οποίες διακινούνται µέσω των ηλεκτρονικών κυκλωµάτων του υπολογιστή, ονοµάζονται bits (δυαδικά ψηφία ή δυφία). Τα bits αναπαρίστανται στο δυαδικό σύστηµα από τους αριθµούς 0 και 1. Αυτός ο τρόπος αναπαράστασης έχει τις ρίζες του στους πρώτους υπολογιστές που χρησιµοποιούσαν διακόπτες οι οποίοι αντιπροσώπευαν αριθµητικές τιµές (Εικόνα 1.7). Ένας διακόπτης βρίσκεται σε δύο µόνο καταστάσεις: ανοικτός ή κλειστός (on-off). Το ίδιο ισχύει και για το bit: 1=on ή 0=off). Τα bits οργανώνονται σε οµάδες ή λέξεις (bytes) ώστε να αναπαριστούν µεγαλύτερες αξίες. Κάθε µια τέτοια οµάδα, ή byte, αποτελείται από 8 bits 68. Ένα τυπικό µήνυµα MIDI, όπως το µήνυµα noteon που εξετάζεται πιο κάτω, αποτελείται από: Ένα αρχικό byte το οποίο ονοµάζεται status byte και έχει σαν πρώτο bit το 1. Δύο data bytes που ακολουθούν και έχουν σαν πρώτο bit το 0. Το status byte περιέχει πληροφορίες για το είδος του µηνύµατος ενώ τα data bytes παρέχουν ποσοτικές πληροφορίες για το µήνυµα. Ένας υπολογιστής λοιπόν, µπορεί να επικοινωνήσει µε έναν άλλο υπολογιστή στέλνοντας bits µέσω καλωδίων. Ο υπολογιστής-δέκτης θα αποθηκεύσει τα bits στη µνήµη του. Αυτό όµως αποτελεί ένα µόνο τµήµα της διαδικασίας επικοινωνίας. Για να καταλάβει ο υπολογιστής-δέκτης τα µηνύµατα που λαµβάνει θα πρέπει να «µιλάει» την ίδια γλώσσα µε τον υπολογιστή που τα έστειλε. Όπως και οι διαφορετικές συσκευές τηλεφώνων χρησιµοποιούν κοινούς τύπους καλωδίων µικροφώνων, ηχείων και κλήσεων, έτσι και οι υπολογιστές επικοινωνούν µεταξύ τους µέσα από ένα κοινό σύστηµα ανταλλαγής δεδοµένων και πληροφοριών. Σύµφωνα µε τις προδιαγραφές του, ένα όργανο MIDI µπορεί να διακινήσει µέχρι 31.250 bits ανά δευτερόλεπτο (bits per second ή bps). 6.1.2. Λίγα Λόγια για την Κατανόηση του Δυαδικού Συστήµατος. Το δεκαδικό σύστηµα µέτρησης αποτελείται από δέκα ψηφία (0-9), ενώ κάθε αριθµός (στήλη) που προστίθεται στα αριστερά ενός αριθµού που ήδη υπάρχει, έχει αξία δέκα φορές µεγαλύτερη. Για παράδειγµα, ο αριθµός 8.582: 8 5 8 2 Χιλιάδα (1000) Εκατοντάδα (100) Δεκάδα (10) Μονάδα (1) 186

Το δυαδικό σύστηµα που χρησιµοποιούν οι υπολογιστές έχει µόνο δύο ψηφία (0 και 1), ενώ κάθε αριθµός (στήλη) που προστίθεται στα αριστερά ενός αριθµού που ήδη υπάρχει έχει αξία δύο φορές µεγαλύτερη. 6.1.3. Παράλληλος και Σειραϊκός Τρόπος Μετάδοσης (Parallel-Serial Transmition). Όπως φαίνεται στο παράδειγµα του Σχήµατος 6.1 χρειάζονται αρκετά bits για να µεταδοθεί µια απλή πληροφορία. Οι δύο τρόποι που χρησιµοποιούν οι υπολογιστές για να ανταλλάξουν πληροφορίες είναι ο παράλληλος και ο σειραϊκός. 6.1.3.1. Παράλληλη Μεταφορά Δεδοµένων. Στην παράλληλη µεταφορά δεδοµένων πολλά bits µετατοπίζονται µέσω µιας σειράς πολλαπλών καλωδίων, όπως φαίνεται στο Σχήµα 6.2. Σχήµα 6.2 Παράλληλη µεταφορά δεδοµένων. 6.1.3.2. Σειραϊκή Μεταφορά Δεδοµένων. Σε αυτήν την περίπτωση, τα bits στέλνονται από τον υπολογιστή σε µια µόνο σειρά µέσω ενός καλωδίου (Σχήµα 6.3). Σχήµα 6.3 Σειραϊκή µεταφορά δεδοµένων. Υπάρχουν σηµαντικές διαφορές µεταξύ των δύο τρόπων µεταφοράς δεδοµένων. Με την παράλληλη µεταφορά οι πληροφορίες διακινούνται πιο γρήγορα αλλά το κόστος των περιφερειακών µηχανηµάτων και των καλωδίων ήταν αρχικά υψηλό. Επίσης, τα καλώδια παράλληλης µεταφοράς δεν πρέπει να έχουν µεγάλο µήκος και συχνά λειτουργούν ως αντένες που µεταδίδουν παρεµβολές. Από την άλλη, ο σειραϊκός τρόπος µεταφοράς είναι πιο αργός αλλά µε χαµηλότερο κόστος, ενώ το µήκος των καλωδίων δεν επηρεάζει αρνητικά τη µεταφορά των δεδοµένων. Τελικά, οι κατασκευαστές υπολογιστών, αφού εξέτασαν το συνολικό κόστος και τα θετικά και αρνητικά στοιχεία των δύο τρόπων µεταφοράς δεδοµένων, επέλεξαν τον σειραϊκό τρόπο. 187

6.1.4. Πώς Μεταφέρονται τα Δεδοµένα MIDI; Το MIDI χρησιµοποιεί τον σειραϊκό τρόπο µετάδοσης πληροφοριών και bytes των 8 bits (χωρίς να υπολογίσουµε τα bits έναρξης και λήξης). Οι κατασκευαστές MIDI περιφερειακών, για να κρατήσουν το κόστος παραγωγής και πώλησης χαµηλό, υιοθέτησαν ένα βύσµα πέντε ακροδεκτών (DIN plug) το οποίο συνδέει µεταξύ τους τα περιφερειακά. Αυτό το βύσµα χρησιµοποιείτο ήδη σε διάφορες εφαρµογές ήχου και video. Όµως, όπως έχουµε ήδη επισηµάνει, ο σειραϊκός τρόπος µεταφοράς δεδοµένων χρειάζεται ένα µόνο καλώδιο. Οι υπόλοιποι τέσσερις ακροδέκτες έχουν άλλες λειτουργίες ή µένουν αχρησιµοποίητοι (Εικόνα 6.1). Εικόνα 6.1 Καλώδια και ακροδέκτες καλωδίου MIDI. Η λειτουργία των 5 ακροδεκτών σε ένα MIDI output καλώδιο είναι η εξής: Ακροδέκτης 5: αποστολέας των MIDI µηνυµάτων. Ακροδέκτης 2: αποτρέπει την αποστολή και λήψη παρεµβολών που µπορούν να επηρεάσουν τις πληροφορίες που διακινούνται σε ένα καλώδιο (shield). Ακροδέκτης 4: λούπα 5 Volts που εγγυάται τη συνεχόµενη ροή του ηλεκτρισµού προς τη σωστή κατεύθυνση. Ακροδέκτες 1 και 3: αχρησιµοποίητοι. 6.1.5. MIDI Θύρες: In-Out-Thru. Τα δεδοµένα MIDI που αποστέλλονται µεταξύ των ηλεκτρονικών οργάνων αποκωδικοποιούνται από µια ηλεκτρονική συσκευή αποκωδικοποίησης η οποία ονοµάζεται διασυνδετής MIDI (MIDI Interface). Από τη στιγµή που τα δεδοµένα διακινούνται µέσω ενός µόνο καλωδίου, αυτές ταξιδεύουν προς µια µόνο κατεύθυνση. Το σύστηµα MIDI όµως, πρέπει να επιτρέπει την ταυτόχρονη επικοινωνία από και προς άλλα µηχανήµατα ή όργανα. Αν, για παράδειγµα, κάποιος µουσικός έχει περισσότερα από ένα περιφερειακά όργανα (συνθετητές, δειγµατολήπτες κ.ά), αυτά θα πρέπει να επικοινωνούν µεταξύ τους µε κάποιον τρόπο. Για να επιτευχθεί αυτό, υιοθετήθηκαν τρεις διαφορετικοί υποδοχείς βυσµάτων σε κάθε όργανο ή διασυνδετή MIDI: ένας για να στέλνει (data out), ένας για να δέχεται (data in) και ένας για να µεταβιβάζει (data thru) εισερχόµενα δεδοµένα σε ένα επόµενο όργανο (Σχήµα 6.4). Τα περισσότερα MIDI όργανα έχουν και τους τρεις υποδοχείς. Eξαιρέσεις αποτελούν κάποιοι ελεγκτές MIDI οι οποίοι στέλνουν µόνο data out. 188

Σχήµα 6.4 Συνδέσεις µέσω των θυρών In, Out και Thru (daisy chain). 6.1.5.1. MIDI Out. Όπως είδαµε, το πρωτόκολλο MIDI δεν διακινεί ήχους µέσω των καλωδίων. Στέλνει ψηφιακούς κώδικες οι οποίοι αντιπροσωπεύουν τη νότα που παίχθηκε, ή µια κίνηση που εκτελέστηκε σε κάποιο όργανο. Τη στιγµή που εκτελούνται κάποιες νότες σε έναν συνθετητή, ένας επεξεργαστής µέσα στο συνθετητή αποκωδικοποιεί τις παραµέτρους της εκτέλεσης. Οτιδήποτε συµβαίνει πάνω στο πλήκτρο ή/και στα κουµπιά του συνθετητή, µετατρέπεται σε κώδικα MIDI, ο οποίος στη συνέχεια εξέρχεται από τη θύρα MIDI OUT. 6.1.5.2. MIDI In. Η πληροφορία από τη θύρα MIDI Out ενός οργάνου, φτάνει στη θύρα MIDI In ενός άλλου οργάνου, το οποίο τη διαχειρίζεται στη συνέχεια. Πολυφωνικοί συνθετητές, δειγµατολήπτες (samplers), drum machines και άλλα περιφερειακά όργανα επικοινωνούν µε µικροεπεξεργαστές οι οποίοι βρίσκονται στο εσωτερικό τους εκτελώντας διάφορες λειτουργίες. Για παράδειγµα, σε πληκτροφόρους συνθετητές υπάρχει ένα µικροκύκλωµα το οποίο παρατηρεί συνεχώς τη σειρά των πλήκτρων και ενεργοποιείται κάθε φορά που ένα πλήκτρο πατιέται ή αφήνεται. Στη συνέχεια, στέλνει αυτήν την πληροφορία στα υπόλοιπα µικροκυκλώµατα του συνθετητή για να παραχθεί ο ήχος. Οµοίως, ένας µικροεπεξεργαστής µέσα στο συνθετητή, επιβλέπει τη θύρα MIDI In και στέλνει τις κατάλληλες εντολές στις γεννήτριες ήχου για να παραχθεί η νότα. 6.1.5.3. MIDI Thru. Για να σταλούν δεδοµένα από ένα MIDI όργανο σε άλλα MIDI όργανα, η θύρα Thru επαναλαµβάνει οτιδήποτε εισέρχεται στη θύρα MIDI In. Πρέπει όµως να επισηµανθεί ότι οποιεσδήποτε εκτελέσεις γίνονται σε ένα συγκεκριµένο όργανο, εξέρχονται µέσω της θύρας Out και όχι µέσω της θύρας Thru. Η τελευταία, µεταβιβάζει µόνο όσα δεδοµένα εισέρχονται µέσω της θύρας In. Έτσι, όπως φαίνεται στο Σχήµα 6.4, οι νότες που εξέρχονται από το πρώτο όργανο (master) µέσω της θύρας Out, εισέρχονται στη θύρα In του δεύτερου οργάνου (slave 1) και από εκεί µεταβιβάζονται στο τρίτο όργανο (slave 2) µέσω της θύρας Thru. Σήµερα, µεγάλος αριθµός MIDI οργάνων είναι εφοδιασµένα µε θύρες Universal Serial Bus (USB) µέσω των οποίων γίνεται η διακίνηση των MIDI δεδοµένων και, κατά συνέπεια, οι θύρες και τα καλώδια MIDI τείνουν να εκλείψουν. 6.1.6. Διακίνηση Μέσω MIDI. Όπως έχουµε ήδη αναφέρει, σε κάθε πληκτροφόρο MIDI όργανο υπάρχουν µικροεπεξεργαστές οι οποίοι µετατρέπουν σε MIDI πληροφορίες τις παραµέτρους και τις δράσεις µιας εκτέλεσης (π.χ. το πάτηµα ενός πλήκτρου). Μόλις πατηθεί ένα πλήκτρο σε ένα πληκτροφόρο MIDI όργανο, ο υπολογιστής στέλνει ένα µήνυµα note on το οποίο περιλαµβάνει τρία είδη πληροφοριών: το ότι κάποιο πλήκτρο πατήθηκε, τη νότα ή key number, και το πόσο γρήγορα πατήθηκε το πλήκτρο (velocity). Η τελευταία πληροφορία, στην ουσία, 189

ενηµερώνει τα άλλα όργανα που δέχονται το µήνυµα για τη δυναµική της νότας που εκτελέστηκε 69. Πρέπει εδώ να επισηµανθεί ότι το MIDI αντιλαµβάνεται το πάτηµα και την αποδέσµευση ενός πλήκτρου σαν δύο διαφορετικές πληροφορίες. Αυτό σηµαίνει ότι µόλις ένα πλήκτρο πατηθεί, στέλνεται ένας κώδικας που δηλώνει αυτή την πράξη, ενώ µόλις το πλήκτρο αποδεσµευτεί, στέλνεται ένας δεύτερος κώδικας. Πολλά MIDI πληκτροφόρα όργανα µπορούν να διαχειριστούν πληροφορίες που αφορούν στο πόση πίεση ασκείται από το δάχτυλο πάνω σε ένα πλήκτρο που έχει ήδη πατηθεί. Αυτή η ενέργεια ονοµάζεται aftertouch ή pressure sensitivity και χρησιµοποιείται σαν ένα εκφραστικό µέσο για την παραγωγή vibrato. Πρόκειται δηλαδή για τη διαµόρφωση της κυµατοµορφής που παράγει τη νότα, η οποία εξαρτάται από τον βαθµό πίεσης που ασκείται στο πλήκτρο του συνθετητή. Υπάρχουν δύο είδη aftertouch: α) το channel aftertouch ή channel pressure, που ασκεί τη διαµόρφωση ανάλογα µε τον µέσο όρο πίεσης σε όλα τα πλήκτρα, ανεξάρτητα από το ποιο ή πόσα πλήκτρα έχουν πατηθεί και, β) το polyphonic aftertouch ή key pressure που ασκεί τη διαµόρφωση ξεχωριστά για κάθε πλήκτρο, ανάλογα µε την πίεση που ασκείται σε αυτό. 6.1.7. Ελεγκτές Συνεχούς Ροής (Continuous Controllers). Οι Continuous Controllers είναι κουµπιά, µοχλοί, τροχοί, πεντάλ κ.ά. που ελέγχουν διάφορες εκφραστικές παραµέτρους όπως το modulation και το pitch bending. Καθένας από αυτούς τους ελεγκτές (controllers) έχει τον δικό του κώδικα για να στείλει το µήνυµά του. Για παράδειγµα, όταν ο τροχός του Pitch Bend κινείται, παράγει έναν κώδικα, ο οποίος δε δίνει πληροφορίες για το τονικό ύψος αλλά για τη θέση του τροχού. Περισσότερες πληροφορίες για τους Ελεγκτές Συνεχούς Ροής δίνονται στο Κεφάλαιο 7. 6.1.8. Bits και Bytes. Είδαµε ότι ένα bit µπορεί να έχει δύο µόνο τιµές: την τιµή 1 ή την τιµή 0. Για να επιλυθεί το πρόβληµα απόδοσης µεγαλύτερων τιµών, τα bits συνδυάζονται σε οµάδες που ονοµάζονται bytes. Ένα «8-µπιτο» byte αποτελεί µια οµάδα των 8 bits. Στην ουσία, µπορούµε να σκεφτούµε τα bits σαν τα γράµµατα µιας γλώσσας και τα bytes σαν τις λέξεις. Αυτά τα δύο είναι τα βασικά στοιχεία της επικοινωνίας µέσω του πρωτοκόλλου MIDI. Στο δεκαδικό σύστηµα, µε τα δέκα διαφορετικά ψηφία (0-9), κάθε αριθµητική στήλη είναι 10 φορές µεγαλύτερη από την προηγούµενη, όπως φαίνεται στο παράδειγµα του 6.1.2, ενώ στο δυαδικό σύστηµα που χρησιµοποιούν οι υπολογιστές, κάθε στήλη είναι 2 φορές µεγαλύτερη από την προηγούµενη. Δηλαδή: Byte x x x x x x x x 128 64 32 16 8 4 2 1 Μια οµάδα των 8 bits µπορεί να αντιπροσωπεύσει τιµές από 0 έως 255 στο δεκαδικό σύστηµα. Ένας τρόπος µετατροπής ενός byte σε δεκαδικό αριθµό είναι η άθροιση όλων των στηλών του (1+2+4+8+16+32+64+128=255), ή: x*2 0 = x*1 x*2 1 = x*2 x*2 2 = x*4 x*2 3 = x*8 x*2 4 = x*16 x*2 5 = x*32 x*2 6 = x*64 x*2 7 = x*128 190

Ας πάρουµε για παράδειγµα το byte: 10010110 0*2 0 = 0*1 = 0 1*2 1 = 1*2 = 2 1*2 2 = 1*4 = 4 0*2 3 = 0*8 = 0 1*2 4 = 1*16 = 16 0*2 5 = 0*32 = 0 0*2 6 = 0*64 = 0 1*2 7 = 1*128 = 128 Δηλαδή: 0+2+4+0+16+0+0+128 = 150 Αν και ένα byte δεν είναι τίποτε άλλο από µια διαδοχή ψηφίων 0 και 1, ο υπολογιστής µετατρέπει αυτήν τη διαδοχή σε πληροφορίες κάθε είδους, όπως γραφικά, λέξεις, ήχους κ.λπ. 6.1.9. Status Bytes και Data Bytes. Τα MIDI bytes χωρίζονται σε δύο κατηγορίες: τα status bytes και τα data bytes. Το status byte περιγράφει το είδος της πληροφορίας που διακινείται µέσω ενός καλωδίου MIDI. Τέτοιου είδους πληροφορία είναι το πάτηµα ενός πλήκτρου, η µετακίνηση ενός τροχού ή ενός ποτενσιόµετρου κ.ά. Το status byte είναι το πρώτο byte που διακινείται από ένα MIDI όργανο. Τα data bytes ακολουθούν το status byte και περιέχουν τις τιµές για την πληροφορία που διακινεί το status byte. Για παράδειγµα, αν ένα status byte περιέχει την πληροφορία ότι πατήθηκε ένα πλήκτρο (note on), τότε τα data bytes που ακολουθούν περιέχουν πληροφορίες για το ποιο πλήκτρο πατήθηκε και µε ποια ένταση (velocity). Ένα status byte µπορεί να ακολουθείται από ένα ή δύο data bytes. Τα status και data bytes ξεχωρίζουν από την τιµή του πρώτου ψηφίου τους (1 για τα status και 0 για τα data bytes): Status Byte 1 0110110 Data Byte 0 1110010 Έχουµε δει ότι το πρώτο bit σε ένα byte χρησιµοποιείται για να δηλώσει το είδος του. Κατά συνέπεια, αποµένουν 7 bits για τη διακίνηση της όποιας τιµής διακινεί το συγκεκριµένο byte. Έτσι προκύπτει το εύρος τιµών MIDI από 0 έως 127 (128 τιµές): 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 0101 5 0000 0110 6...... 0 1111111 127 191

6.1.10. Κανάλια MIDI (MIDI Channels). Το MIDI χρησιµοποιεί 16 κανάλια για να κατευθύνει κάθε όργανο ξεχωριστά όταν επικοινωνεί µε έναν συνθετητή, µε µια κάρτα ήχου ή µε µια µονάδα παραγωγής ήχου. Η λειτουργία των καναλιών είναι γνωστή και κατανοητή από την τηλεόραση. Αντί όµως να χρησιµοποιηθούν συχνότητες, όπως στην τηλεόραση, το MIDI χρησιµοποιεί το δεύτερο µισό ενός status byte (τα τέσσερα δηλαδή τελευταία ψηφία του) για να γνωστοποιήσει το κανάλι από το οποίο θα διακινηθούν οι πληροφορίες (data bytes) που το ακολουθούν. Status Byte Data Byte(s) 1001 0010 (κανάλι MIDI) 0xxx xxxx Τα τέσσερα bits του status byte που περιέχουν την πληροφορία για τον αριθµό του καναλιού, έχουν δεκαέξι πιθανές τιµές (0-15) και άρα το σύνολο των καναλιών είναι 16 (Πίνακας 6.1): Δυαδικό Δεκαδικό Κανάλι MIDI 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 10 11 1011 11 12 1100 12 13 1101 13 14 1110 14 15 1111 15 16 Πίνακας 6.1 Τα 16 κανάλια MIDI. Σε όλα τα MIDI όργανα υπάρχει η δυνατότητα να προσδιοριστεί ο αριθµός του καναλιού από το οποίο θα στείλουν (transmit channel) και στο οποίο θα δεχτούν πληροφορίες (receive channel). Για παράδειγµα, το µήνυµα note on µπορεί να πάρει την εξής µορφή (Πίνακας 6.2): 1 001 0000 0 011 1100 0 100 0001 Το πρώτο bit (0) δηλώνει ότι πρόκειται για data byte. Το πρώτο data byte δηλώνει τον αριθµό του πλήκτρου που έχει πατηθεί (pitch). Στη συγκεκριµένη περίπτωση, πρόκειται για το MIDI note number 60 (στο δεκαδικό σύστηµα) που αντιστοιχεί στη νότα Ντο (C3). Η νότα θα παιχτεί από το κανάλι 12. Το πρώτο bit (1) δηλώνει ότι πρόκειται για status byte. Τα bits που ακολουθούν (001) δηλώνουν το είδος του µηνύµατος και τη λειτουργία του (note on). Τα τέσσερα bits που έπονται (0000) καθορίζουν το MIDI κανάλι από το οποίο στέλνεται το µήνυµα (transmit channel), σε αυτήν την περίπτωση το κανάλι 1. Το πρώτο bit (0) δηλώνει ότι πρόκειται για data byte. Το δεύτερο data byte προσδιορίζει το velocity ή την ένταση της νότας. Στη συγκεκριµένη περίπτωση έχουµε velocity 65. Πίνακας 6.2 Παράδειγµα ενός µηνύµατος note on. 192

Τα κανάλια είναι αυτά που προσφέρουν ευελιξία και ευκολία χρήσης στο σύστηµα MIDI. Χωρίς τη δυνατότητα της προεπιλογής για το ποιο όργανο θα παίξει και σε ποιο κανάλι, τα όργανα θα έπαιζαν όλα µαζί καθιστώντας τη δηµιουργία της µουσικής µέσω ηλεκτρονικών οργάνων αδύνατη. 6.1.11. Δεκαεξαδικό Σύστηµα. Το δεκαεξαδικό σύστηµα απαντάται συχνά τόσο στη λειτουργία των υπολογιστών όσο και στο MIDI. Όπως υπάρχουν δέκα ψηφία στο δεκαδικό σύστηµα και δύο στο δυαδικό, έτσι υπάρχουν δεκαέξι στο δεκαεξαδικό (από το 0 ως το 9 χρησιµοποιούνται οι αριθµοί του δεκαδικού και από το 10 ως το 15 τα γράµµατα Α ως F) (Πίνακας 6.3): Δεκαδικό Δεκαεξαδικό 0 00 1 01 2 02 3 03 4 04 5 05 6 06 7 07 8 08 9 09 10 0A 11 0B 12 0C 13 0D 14 0E 15 0F Πίνακας 6.3 Τιµές στο δεκαδικό και στο δεκαεξαδικό σύστηµα. Αν και δεν είναι απαραίτητο, συχνά τοποθετείται το ψηφίο 0 µπροστά από τον δεκαεξαδικό αριθµό. Συχνά επίσης, συναντούµε το γράµµα H στο τέλος ενός δεκαεξαδικού αριθµού, το οποίο δηλώνει ακριβώς το δεκαεξαδικό σύστηµα (Hexadecimal). Για παράδειγµα, ο αριθµός 127 στο δεκαδικό σύστηµα, µετατρέπεται σε 7F H στο δεκαεξαδικό (7x16 + 15x1=112+15 = 127). Μερικές λειτουργίες των MIDI µηνυµάτων αποδίδονται ευκολότερα από το δεκαεξαδικό σύστηµα. Μια τέτοια λειτουργία είναι η απόδοση του αριθµού των καναλιών. Με έναν και µόνο δεκαεξαδικό αριθµό µπορούµε να αποδώσουµε το κανάλι MIDI, καθώς το δεκαεξαδικό σύστηµα έχει 16 πιθανές τιµές (Πίνακας 6.4). Δεκαεξαδικό Κανάλι MIDI 00 1 01 2 02 3 03 4 04 5 05 6 06 7 07 8 08 9 09 10 0A 11 193

0B 12 0C 13 0D 14 0E 15 0F 16 Πίνακας 6.4 Απόδοση αριθµού καναλιών στο δεκαεξαδικό σύστηµα. Όταν αποδίδουµε ένα µήνυµα note on σε δεκαεξαδική τιµή, µπορούµε να βρούµε τον αριθµό καναλιού κοιτώντας το τελευταίο ψηφίο. Στο παρακάτω παράδειγµα, ο δεκαεξαδικός 90 H αναλύεται ως εξής: 9 = note on (1001), 0 = κανάλι 1. 90 H note on στο MIDI κανάλι 1 (1001 0000) 91 H note on στο MIDI κανάλι 2 (1001 0001) 92 H note on στο MIDI κανάλι 3 (1001 0010)...... Συνεπώς, ένα MIDI status byte στο δεκαεξαδικό σύστηµα, µπορεί να χωριστεί σε δύο µέρη: στον τύπο του µηνύµατος ο οποίος αποδίδεται από το πρώτο ψηφίο και στον αριθµό καναλιού που αποδίδεται από το δεύτερο ψηφίο. Συχνά, όταν δεν είναι απαραίτητο να αναφέρουµε τον αριθµό καναλιού, συναντούµε το γράµµα n (number) στη θέση του. Για παράδειγµα, στο 9n, το n είναι ένας οποιοσδήποτε αριθµός και άρα, το 9n αποδίδει την εντολή «Note On on any MIDI channel». 6.1.12. MIDI Μηνύµατα. Ας εξετάσουµε συνοπτικά κάποιους πίνακες µε τους διάφορους τύπους των MIDI µηνυµάτων, µε την υπενθύµιση ότι το πρωτόκολλο MIDI χρησιµοποιείται όχι µόνο για να περιγράψει το είδος της πληροφορίας που αποστέλλεται από µηχανή σε µηχανή, αλλά και τον τρόπο µε τον οποίο αυτή η πληροφορία ταξιδεύει. Κάθε παράµετρος µιας µουσικής πράξης αντιπροσωπεύεται και αποδίδεται από τους δικούς της κώδικες (οι οποίοι βέβαια είναι προαποφασισµένοι από τη βιοµηχανία µουσικών οργάνων). Στον παρακάτω πίνακα παρατίθενται οι ορισµοί και οι τύποι των MIDI µηνυµάτων. Τα status και data bytes δίνονται σε δυαδική µορφή. 6.1.12.1. Channel Voice Messages. Τα Channel Voice Messages αποτελούν τη ραχοκοκαλιά του πρωτοκόλλου MIDI και στέλνουν, από ένα όργανο σε άλλο, όλα τα συµβάντα που σχετίζονται µε την εκτέλεση µιας µουσικής πράξης, χρησιµοποιώντας οποιοδήποτε από τα 16 υπάρχοντα κανάλια. Μεταδίδουν τον αριθµό του καναλιού (MIDI channel) χρησιµοποιώντας το δεύτερο µισό του status byte, καθώς και πληροφορίες που αφορούν στα µουσικά συµβάντα. Στον Πίνακα 6.5, παρατίθενται οι ορισµοί και οι τύποι τέτοιων µηνυµάτων. Τα status και data bytes δίνονται σε δυαδική µορφή. Όπου n = channel number (1-16), k = key number (0-127), v = velocity (0-127), p = pressure (0-127), x = controller value (0-127), y = preset number (0-127), z = coarse, f = fine. 194

Status Byte Data Byte 1 Data Byte 2 Περιγραφή 1000 nnnn 0kkkkkkk 0vvvvvvv Note Off 1001 nnnn 0kkkkkkk 0vvvvvvv Note On 1010 nnnn 0kkkkkkk 0ppppppp Polyphonic Key Pressure (Aftertouch) 1011 nnnn 0ccccccc 0xxxxxxx Control Change 1100 nnnn 0yyyyyyy - Program Change 1101 nnnn 0ppppppp - Channel Pressure (Aftertouch) 1110 nnnn 0zzzzzzz 0fffffff Pitch Bend Πίνακας 6.5 MIDI Channel Voice Messages. Παρακάτω δίνεται ένα παράδειγµα ενός µηνύµατος Channel Voice : 10010000 00111100 01000001 Η ανάλυσή του: Status byte (10010000). Το πρώτο bit (1) δηλώνει ότι πρόκειται για status byte και τα επόµενα τρία (001) ότι είναι µια εντολή note on. Τα τελευταία τέσσερα bits καθορίζουν το MIDI κανάλι (0000 = κανάλι 1). Data byte 1 (00111100). Το πρώτο data byte πληροφορεί για το ποιο πλήκτρο πατήθηκε (key number: 60 = C3). Data byte 2 (01000001). Το δεύτερο data byte καθορίζει το velocity (ένταση = 65). Ας δούµε τα Channel Voice Messages αναλυτικά. 6.1.12.1.1. Note On. Κάθε φορά που πατούµε ένα πλήκτρο σε ένα MIDI πληκτροφόρο όργανο, αποστέλλεται ένα µήνυµα note on. Το MIDI χρησιµοποιεί δύο ξεχωριστά µηνύµατα όταν παίζουµε µια νότα: το note on και το note off. Αυτό σηµαίνει ότι ένα MIDI όργανο θα στείλει τα µηνύµατα note on και note off σε ένα άλλο όργανο ή σε έναν ψηφιακό συνθετητή ο οποίος θα παίξει τη νότα. Αυτά τα µηνύµατα στέλνονται σε ένα από τα 16 κανάλια. Άρα, τα Note Messages ανήκουν στην κατηγορία των Channel Messages. Οποιοδήποτε όργανο βρίσκεται στο ίδιο κανάλι µε αυτό του οργάνου-αποστολέα, θα παίξει τις ίδιες νότες. Όπως είδαµε, ένα µήνυµα note on αποτελείται από ένα status byte και δύο data bytes. Το status byte χρησιµοποιεί τρία bits για να δηλώσει ότι πρόκειται για µήνυµα note on (1 001) και τα τέσσερα τελευταία bits για να ορίσει τον αριθµό καναλιού. Το πρώτο data byte δηλώνει το key number και το δεύτερο το velocity. Και τα δύο µπορούν να πάρουν τιµές από το 0 ως το 127. Θυµίζουµε ότι το πρώτο ψηφίο του status (1) και των data bytes (0) χρησιµοποιούνται για να δηλώσουν το είδος τους και άρα τα διαθέσιµα ψηφία για τη µεταφορά των πληροφοριών είναι επτά. Key Number. Το πρωτόκολλο MIDI αντιστοιχεί σε κάθε πλήκτρο (νότα) ενός πληκτροφόρου οργάνου ένα ξεχωριστό key number. Σε κάθε MIDI όργανο υπάρχουν 128 πιθανές τιµές, υπεραρκετές αν αναλογιστούµε ότι ένα συνηθισµένο πληκτροφόρο όργανο δεν έχει περισσότερα από 88 πλήκτρα. Το χαµηλότερο key number είναι το 0 που αντιστοιχεί στη νότα Ντο, πέντε οκτάβες χαµηλότερα του µεσαίου Ντο (οκτάβα -2). Η χαµηλότερη νότα του πιάνου βρίσκεται 2 οκτάβες ψηλότερα (key number 24 στην οκτάβα 0). Μετά το key number 0, ακολουθεί το key number 1 (Ντο#), το key number 2 (Ρε) κ.λπ. Το ψηλότερο key number είναι το 127 και αντιστοιχεί στο Σολ, πέντε οκτάβες ψηλότερα του µεσαίου Ντο (οκτάβα 8). Στο σηµείο αυτό είναι σηµαντικό να υπενθυµίσουµε ότι το MIDI δε στέλνει ούτε δέχεται τονικά ύψη (νότες), αλλά key numbers. Ανάλογα µε το πώς είναι διαµορφωµένος ο συνθετητής, το key number θα διερµηνευθεί σε νότα, effect ή κάτι άλλο. 195

Στον Πίνακα 6.6 παρουσιάζονται τα τονικά ύψη ή MIDI note numbers (0-127) που ορίζονται από το πρώτο data byte ενός µηνύµατος note on. Στη µέση περίπου του εύρους βρίσκεται το µεσαίο ντο (C3) το οποίο αντιστοιχεί στο MIDI note number 60. Πίνακας Αντιστοιχιών Νοτών σε MIDI Note Numbers. MIDI Note Numbers (δεκαδικό σύστηµα) 8va C C# D D# E F F# G G# A A# B -2 0 1 2 3 4 5 6 7 8 9 10 11-1 12 13 14 15 16 17 18 19 20 21 22 23 0 24 25 26 27 28 29 30 31 32 33 34 35 1 36 37 38 39 40 41 42 43 44 45 46 47 2 48 49 50 51 52 53 54 55 56 57 58 59 3 60 61 62 63 64 65 66 67 68 69 70 71 4 72 73 74 75 76 77 78 79 80 81 82 83 5 84 85 86 87 88 89 90 91 92 93 94 95 6 96 97 98 99 100 101 102 103 104 105 106 107 7 108 109 110 111 112 113 114 115 116 117 118 119 8 120 121 122 123 124 125 126 127 Πίνακας 6.6 MIDI note numbers. Πίνακας Αντιστοίχησης των MIDI Note Numbers σε Hertz. Στον Πίνακα 6.7 αντιστοιχίζονται τα MIDI note numbers σε συχνότητες (Hertz). Note MIDI note Hertz MIDI note Hertz MIDI note Hertz C 0 8.175 12 16.351 24 32.703 C# 1 8.661 13 17.323 25 34.647 D 2 9.177 14 18.354 26 36.708 D# 3 9.722 15 19.445 27 38.890 E 4 10.300 16 20.601 28 41.203 F 5 10.913 17 21.826 29 43.653 F# 6 11.562 18 23.124 30 46.249 G 7 12.249 19 24.499 31 48.999 G# 8 12.978 20 25.956 32 51.913 A 9 13.750 21 27.500 33 55.000 A# 10 14.567 22 29.135 34 58.270 B 11 15.433 23 30.867 35 61.735 C 36 65.406 48 130.812 60 261.625 C# 37 69.295 49 138.591 61 277.182 D 38 73.416 50 146.832 62 293.664 D# 39 77.781 51 155.563 63 311.126 E 40 82.406 52 164.813 64 329.627 F 41 87.307 53 174.614 65 349.228 F# 42 92.498 54 184.997 66 369.994 G 43 97.998 55 195.997 67 391.995 196

G# 44 103.826 56 207.652 68 415.304 A 45 110.000 57 220.000 69 440.000 A# 46 116.540 58 233.081 70 466.163 B 47 123.470 59 246.941 71 493.883 C 72 523.251 84 1046.502 96 2093.004 C# 73 554.365 85 1108.730 97 2217.461 D 74 587.329 86 1174.659 98 2349.318 D# 75 622.253 87 1244.507 99 2489.015 E 76 659.255 88 1317.510 100 2637.020 F 77 698.456 89 1396.912 101 2793.826 F# 78 739.988 90 1479.977 102 2959.955 G 79 783.990 91 1567.981 103 3135.963 G# 80 830.609 92 1661.218 104 3322.4375 A 81 880.000 93 1760.000 105 3520.000 A# 82 932.327 94 1864.655 106 3729.310 B 83 987.766 95 1975.533 107 3951.066 C 108 4186.009 120 8372.018 C# 109 4434.922 121 8869.844 D 110 4698.636 122 9397.272 D# 111 4978.031 123 9956.063 E 112 5274.041 124 10548.082 F 113 5587.651 125 11175.303 F# 114 5919.910 126 11839.821 G 115 6271.926 127 12543.853 G# 116 6644.875 A 117 7040.000 A# 118 7458.620 B 119 7902.132 Πίνακας 6.7 MIDI note numbers σε Hertz. 6.1.12.1.2. Note Off. Μόλις απελευθερώσουµε το πλήκτρο σε ένα MIDI πληκτροφόρο όργανο, ακολουθεί το µήνυµα note off ώστε να σταµατήσει η παραγόµενη νότα. Ένα µήνυµα note off αποτελείται από ένα status byte και δύο data bytes. Το status byte χρησιµοποιεί τα πρώτα τέσσερα bits για να δηλώσει ότι πρόκειται για µήνυµα note on (1 001) και τα τέσσερα τελευταία για να ορίσει τον αριθµό καναλιού (nnnn). Το πρώτο data byte δηλώνει το key number και το δεύτερο το velocity. Και τα δύο µπορούν να πάρουν τιµές από το 0 ως το 127. Αν και το πρωτόκολλο MIDI προβλέπει ξεχωριστή εντολή για το µήνυµα note off, αυτό σπάνια χρησιµοποιείται. Αντί αυτού, τη στιγµή που απελευθερώνουµε το πλήκτρο ή τη νότα, στέλνεται συνήθως ένα δεύτερο µήνυµα note on µε το ίδιο key number (τονικό ύψος) αλλά µε velocity 0 (µηδενική ένταση). Το µήνυµα note off στέλνεται σε συνθετητές που µπορούν να προσδιορίσουν το release velocity, πόσο γρήγορα δηλαδή απελευθερώνεται ένα πλήκτρο, υπολογίζοντας την ταχύτητα της περιβάλλουσας απελευθέρωσης του πλήκτρου (release envelope). Velocity. Αφού το µήνυµα note on στείλει το key number µε το πρώτο data byte, ακολουθεί ένα δεύτερο data byte που δηλώνει πόσο γρήγορα (velocity) πατήθηκε το συγκεκριµένο πλήκτρο. Το velocity αντιστοιχεί στην ένταση µε την οποία ακούµε τη συγκεκριµένη νότα που παίχτηκε. Η µικρότερη πιθανή τιµή του velocity είναι το 1 (που ίσως αντιστοιχεί σε pppp) και η µεγαλύτερη το 127 (ffff). Η τιµή 0 στο velocity αντιστοιχεί στην απελευθέρωση του πλήκτρου. 197

vel. 1 vel. 127 pppp ppp pp p mp mf f ff fff ffff Σε συνθετητές που χρησιµοποιούν τεχνικές σύνθεσης ήχου, το velocity χρησιµοποιείται συχνά για να ελέγξει και άλλες παραµέτρους εκτός της έντασης, όπως η µετατροπή του τονικού ύψους, η φασµατική πυκνότητα κ.ά. Αυτός είναι ένας από τους λόγους για τους οποίους αναφέρεται σαν velocity και όχι σαν ένταση (volume). To velocity δεν αποτελεί ξεχωριστή εντολή του MIDI. Είναι πάντα συνδεδεµένο µε τα µηνύµατα note on και note off. 6.1.12.1.3. Polyphonic Key Pressure (Aftertouch). Κάποιοι συνθετητές είναι εφοδιασµένοι µε έναν αισθητήρα κάτω από κάθε πλήκτρο τους έτσι ώστε να µπορούν να αντιλαµβάνονται τις αλλαγές πίεσης του δαχτύλου σε κάθε ένα από αυτά. Για αυτόν τον λόγο η συγκεκριµένη εντολή ονοµάζεται polyphonic key pressure ή keys aftertouch. To keys aftertouch χρησιµοποιείται συχνά για την παραγωγή vibrato και συνεπώς παίζει σηµαντικό ρόλο στην εκφραστικότητα της εκτέλεσης. Η εντολή keys aftertouch χρησιµοποιεί ένα status byte και δύο data bytes µε την εξής µορφή: 1010nnnn 0kkkkkkk 0ppppppp Το status byte δηλώνει ότι πρόκειται για keys aftertouch (1 010) στο κανάλι nnnn. Το πρώτο data byte (kkkkkkk = 0-127) δηλώνει το key number (πλήκτρο) ενώ το δεύτερο (ppppppp = 0-127) ορίζει τις συνεχείς αλλαγές πίεσης (pressure) που εφαρµόζουµε στο συγκεκριµένο πλήκτρο. 6.1.12.1.4. Control Change. Αυτά τα µηνύµατα ελέγχουν διάφορες παραµέτρους του ήχου (ανάλογα µε τον αριθµό του ελεγκτή που χρησιµοποιείται κάθε φορά) σε πραγµατικό χρόνο. Ένα µήνυµα control change αποστέλλεται κάθε φορά που αλλάζει µια τιµή του ελεγκτή, όπως για παράδειγµα όταν πατηθεί το sustain pedal ή όταν µετακινηθεί ο τροχός modulation. Χρησιµοποιεί ένα status byte και δύο data bytes µε την εξής µορφή: 1011nnnn 0ccccccc 0xxxxxxx Το status byte δηλώνει ότι πρόκειται για την εντολή control change (1 011) στο κανάλι nnnn. Το πρώτο data byte (ccccccc = 0-119) δηλώνει τον αριθµό του ελεγκτή (controller number ή cc#) ενώ το δεύτερο (xxxxxxx = 0-127) ορίζει τις τιµές που παίρνει ο ελεγκτής (controller value). Οι ελεγκτές cc# 120-127 ανήκουν στα µηνύµατα Channel Mode και ελέγχουν τον τρόπο µε τον οποίο τα όργανα λαµβάνουν και χειρίζονται τα µηνύµατα Channel Voice. Πίνακας των Μηνυµάτων Control Change (cc#). MIDI CC Λειτουργία number 0 bank select 1 modulation wheel 2 breath controller 3 µη προκαθορισµένο 4 foot controller 5 portamento time 6 data entry MSB (Most Significant Bit) 7 main volume 8 balance 198

9 µη προκαθορισµένο 10 pan 11 expression 12 effect control 1 13 effect control 2 14 µη προκαθορισµένο 15 µη προκαθορισµένο 16-19 γενικής χρήσης 1-4 20-31 µη προκαθορισµένο 32-63 Least Significant Beat (LSB) για τους cc# 0-31 64 damper/sustain pedal 65 portamento 66 sostenuto 67 soft pedal 68 legato footswitch 69 hold 2 70 sound variation/exciter 71 harmonic content/compressor 72 release time/distortion 73 attack time/equalizer 74 brightness VCFs cutoff frequency/expander-gate 75 µη προκαθορισµένο/reverb 76 µη προκαθορισµένο/delay 77 µη προκαθορισµένο/pitch transpose 78 µη προκαθορισµένο/flange-chorus 79 µη προκαθορισµένο/special effect 80-83 γενικής χρήσης 5-8 84 portamento control 85-90 µη προκαθορισµένο 91 reverb depth (effect 1) 92 tremolo depth (effect 2) 93 chorus depth (effect 3) 94 detune depth (effect 4) 95 phaser depth (effect 5) 96 data increment 97 data decrement 98 non-registered parameter number LSB 99 non-registered parameter number MSB 100 registered parameter number LSB 101 registered parameter number MSB 102-119 µη προκαθορισµένο 120 all sound off 121 reset all controllers 122 local on/off control 123 all notes off 124 omni mode off 125 omni mode on 126 mono mode on 127 poly mode on Πίνακας 6.8 Λίστα MIDI cc#. 199

6.1.12.1.5. Program και Program Change. Όλα τα µηχανήµατα MIDI είναι εφοδιασµένα µε θέσεις µνήµης (patch memories) στις οποίες αποθηκεύουν µε τη µορφή πληροφοριών οµάδες ήχων, παραµέτρων, ρυθµικών µοτίβων κ.λπ. Αυτές οι οµάδες πληροφοριών λέγονται programs. Για παράδειγµα, οι παράµετροι που ελέγχουν τη γεννήτρια ήχου που παράγει το ηχόχρωµα του πιάνου είναι ένα program. Υπάρχουν συνεπώς programs που ονοµάζονται electric piano, celesta, όργανο Hammond, strings, synth pad1 κ.ά. Ένας κωδικός που ονοµάζεται program change δίνει την εντολή σε ένα όργανο να αλλάξει πρόγραµµα. Κάθε program αντιστοιχεί σε έναν συγκεκριµένο αριθµό από το 1 ως το 127. Όταν πατούµε το κουµπί patch πάνω σε ένα όργανο συµβαίνουν δύο πράγµατα: α) το όργανο επιλέγει τον ήχο που ζητήσαµε και ετοιµάζεται να τον παίξει, και β) αποστέλλει µέσω MIDI τον αριθµό του επιλεγµένου patch στα άλλα όργανα που βρίσκονται στο ίδιο κανάλι, ώστε αυτά να συντονιστούν. Πρέπει βέβαια να σηµειώσουµε ότι αυτό που αποστέλλεται είναι µόνο ο αριθµός του patch και όχι οι παράµετροι του ήχου. Τα programs, εκτός από τις παραµέτρους για την παραγωγή ήχου, µπορούν να περιέχουν ρυθµίσεις και για την επεξεργασία του µέσω ενός effect (filter, delay, reverb κ.ά.) Η εντολή program change αποτελείται από ένα status byte και ένα data byte µε τη µορφή: 1100nnnn 0yyyyyyy Το status byte δηλώνει ότι πρόκειται για την εντολή program change (1 100) στο κανάλι nnnn ενώ το data byte (yyyyyyy = 0-127) ορίζει το program που επιλέγουµε. 6.1.12.1.6. Channel Pressure (Aftertouch). Πολλοί συνθετητές είναι εφοδιασµένοι µε έναν αισθητήρα κάτω από τα πλήκτρα, ο οποίος αντιλαµβάνεται τις αλλαγές πίεσης του δαχτύλου πάνω σε αυτά. Θα πρέπει να σηµειωθεί ότι ο αισθητήρας των οργάνων που είναι εφοδιασµένα µε channel pressure, αντιλαµβάνεται τις τροποποιήσεις στην πίεση µε τον ίδιο τρόπο για όλα τα πλήκτρα του πληκτρολογίου και όχι για το καθένα ξεχωριστά. Πρόκειται για µια δεύτερη περίπτωση aftertouch η οποία διαφοροποιείται από το Polyphonic Key Pressure. Μια άλλη ονοµασία της είναι Channel Key Pressure ή Overall Key Pressure. To aftertouch χρησιµοποιείται συχνά για την παραγωγή vibrato και συνεπώς, παίζει σηµαντικό ρόλο στην εκφραστικότητα της εκτέλεσης. Η εντολή channel aftertouch χρησιµοποιεί ένα status byte και ένα data byte µε την εξής µορφή: 1101nnnn 0ppppppp Το status byte δηλώνει ότι πρόκειται για channel aftertouch (1 101) στο κανάλι nnnn ενώ το data byte (ppppppp = 0-127) περιγράφει τις συνεχείς αλλαγές πίεσης (pressure value) που εφαρµόζουµε στα πλήκτρα. 6.1.12.1.7. Pitch Bend. Κάθε φορά που µετακινείται ο τροχός pitch bend (Εικόνα 6.2), αποστέλλεται µια εντολή η οποία µεταβάλλει δυναµικά το τονικό ύψος της νότας. Το εύρος αυτής της µεταβολής ταυτίζεται µε το εύρος κίνησης του τροχού pitch bend (bend range) ο οποίος βρίσκεται σχεδόν σε όλα τα MIDI όργανα. Μπορούµε να ορίσουµε ότι ο τροχός pitch bend θα έχει εύρος από ένα ηµιτόνιο έως και αρκετές οκτάβες. 200

Εικόνα 6.2 Οι τροχοί pitch bend και modulation σε ένα MIDI όργανο. Η εντολή pitch bend χρησιµοποιεί ένα status byte και δύο data bytes µε την εξής µορφή: 1110nnnn 0zzzzzzz 0fffffff Το status byte δηλώνει ότι πρόκειται για εντολή pitch bend (1 110) στο κανάλι nnnn. Τα δύο data bytes χρησιµοποιούνται για να δώσουν περισσότερες από 128 τιµές στην κίνηση του τροχού pitch bend. Έτσι, τα 14 ψηφία των δύο data bytes µπορούν να προσφέρουν έως και 16.384 τιµές που αντιστοιχούν σε θέσεις του τροχού. MSB (Most Significant Byte)-LSB (Least Significant Byte). Μερικές φορές χρειαζόµαστε περισσότερες από τις 128 τιµές ενός byte για να περιγράψουµε τις διαβαθµίσεις µιας παραµέτρου, όπως αυτής του pitch bend. Αυτό θα µας επιτρέψει να αποδώσουµε την κίνηση του τροχού µε µεγαλύτερη ανάλυση έτσι ώστε να αντιληφθούµε την αλλαγή του τονικού ύψους της νότας συνεχόµενα και όχι µε διακριτά βήµατα. Για αυτόν τον σκοπό χρησιµοποιούµε δύο bytes (14 bits) και άρα 16.384 (2 14 ) τιµές. Σε αυτήν την περίπτωση, το πρώτο data byte ονοµάζεται Most Significant Byte-MSB (cc#0-31) και το δεύτερο ονοµάζεται Least Significant Byte-LSB (cc#32-63). 6.1.12.2. Channel Mode Messages. Τα µηνύµατα αυτού του τύπου χρησιµοποιούν τους ελεγκτές cc#120 έως cc#127 και ορίζουν τον τρόπο µε τον οποίο ένα όργανο θα δεχθεί τις πληροφορίες των µηνυµάτων Channel Voice. Για παράδειγµα, µηνύµατα Channel Mode µπορούν να δώσουν εντολή σε έναν συνθετητή να στείλει ή να λάβει πληροφορίες µε έναν συγκεκριµένο τρόπο (mode). Όλα χρησιµοποιούν το Control Change status byte (1 011). Το πρώτο data byte προσδιορίζει τον συγκεκριµένο τρόπο. Υπάρχουν οι εξής τύποι µηνυµάτων Channel Mode: all sound off, reset all controllers, local control, all notes off, omni off, omni on, mono on και poly on (cc#120-cc#127). 6.1.12.2.1. All Sound Off (cc# 120). Όταν ληφθεί αυτή η εντολή, θα διακοπεί η λειτουργία όλων των ενεργών ταλαντωτών που παράγουν τη νότα σε ένα όργανο στο κανάλι MIDI που δηλώνεται από το status byte της εντολής. Για να συµβεί αυτό, το δεύτερο data byte θα πρέπει να ισούται µε 0. 201

6.1.12.2.2. Reset All Controllers (cc# 121). Όταν ληφθεί αυτή η εντολή, όλες οι τιµές των ελεγκτών επανέρχονται στις αρχικές ρυθµίσεις τους. Για να συµβεί αυτό, το δεύτερο data byte θα πρέπει να ισούται µε 0. 6.1.12.2.3. Local Control (cc# 122). Διαχωρίζει τις λειτουργίες των χειριστηρίων και των ελεγκτών ενός συνθετητή από τις ηλεκτρονικές του µονάδες παραγωγής ήχου. Για παράδειγµα το local control (cc# 122: on = 127 / off = 0) ενεργοποιεί ή διακόπτει την επικοινωνία από το πληκτρολόγιο ενός συνθετητή προς την ηλεκτρονική µονάδα του συνθετητή που θα παράξει τον ήχο. Έτσι, αν σε έναν συνθετητή, θέλουµε ο ήχος να παράγεται από τις εντολές που έρχονται από τον υπολογιστή και όχι από τα πλήκτρα του, θα πρέπει να χρησιµοποιήσουµε αυτήν την εντολή για να απενεργοποιήσουµε τον τοπικό έλεγχο του συνθετητή. Με αυτόν τον τρόπο αποφεύγουµε να ακουστεί η ίδια νότα δύο φορές. Ανεξάρτητα από το αν ένα όργανο βρίσκεται σε local control on ή local control off, οι νότες και άλλες MIDI πληροφορίες εξακολουθούν να κατευθύνονται προς την έξοδο MIDI Out του οργάνου. 6.1.12.2.4. All Notes Off (cc# 123). Συχνά, µετά την αποστολή µηνυµάτων note on, κάποια από τα αντίστοιχα µηνύµατα note off που πρέπει να ακολουθήσουν χάνονται, µε αποτέλεσµα οι νότες στις οποίες απευθύνονταν να συνεχίσουν να ηχούν ακατάπαυστα. Το µήνυµα all notes off στέλνει µια εντολή παύσης αυτών των νοτών χρησιµοποιώντας το δεύτερο data byte που ισούται µε 0. 6.1.12.2.5. Omni Off (cc# 124). Το όργανο που δέχεται αυτήν την εντολή, ανταποκρίνεται µόνο στα µηνύµατα που το κανάλι αποστολής τους (send channel) είναι το ίδιο µε το κανάλι υποδοχής του οργάνου (receive channel). Στην ουσία, η εντολή Omni Off (µε δεύτερο data byte που ισούται µε 0) έχει την ίδια επίδραση µε την εντολή All Notes Off. 6.1.12.2.6. Omni On (cc# 125). Το όργανο που δέχεται την εντολή Omni On (cc#125) ανταποκρίνεται σε όλα τα µηνύµατα Channel Voice ανεξάρτητα από το κανάλι από το οποίο αυτά στέλνονται. 6.1.12.2.7. Mono On (cc# 126). Το όργανο που δέχεται την εντολή Mono On (cc#126) µετατρέπεται σε µονοφωνικό. Σε αυτήν την περίπτωση και ανάλογα µε τις ρυθµίσεις του, όταν το όργανο στείλει ένα πολυφωνικό µήνυµα (περισσότερα του ενός note on µηνύµατα), θέτει συγκεκριµένες προτεραιότητες για το ποια νότα θα παιχτεί πρώτη. Αυτές οι προτεραιότητες είναι: First Note Priority: όταν παίζονται πολλές νότες µαζί (συνήχηση), δίνεται προτεραιότητα στη νότα που προηγείται χρονικά έστω και κατ ελάχιστο. Last Note Priority: όταν παίζονται πολλές νότες µαζί, δίνεται προτεραιότητα στη νότα που έπεται χρονικά. Hi Priority: όταν παίζονται πολλές νότες µαζί, δίνεται προτεραιότητα στη νότα µε τον υψηλότερο τόνο (high note number). Low Priority: όταν παίζονται πολλές νότες µαζί, δίνεται προτεραιότητα στη νότα µε τον χαµηλότερο τόνο (low note number). 202

6.1.12.2.8. Poly On (cc# 127). Το όργανο που δέχεται το µήνυµα Poly On (cc#127) µετατρέπεται σε πολυφωνικό, µπορεί να παίξει δηλαδή περισσότερες από µια νότες σε κάθε κανάλι. Ο αριθµός των νοτών οι οποίες µπορούν να παιχτούν ταυτόχρονα εξαρτάται από το ίδιο το όργανο. Για παράδειγµα, ένα όργανο µε πολυφωνία 128 νοτών µπορεί να αναπαράξει ταυτόχρονα 128 νότες ή να θέσει σε λειτουργία 128 ταλαντωτές (oscillators). Σε περίπτωση που ο αριθµός των νοτών υπερβαίνει τη διαθέσιµη πολυφωνία, οι υπεράριθµες νότες αντιµετωπίζονται σύµφωνα µε τις προτεραιότητες που είδαµε στην περίπτωση Mono On. Υπάρχουν τέσσερις τρόποι (modes) συνδυασµού Omni και Mono/Poly, όπως φαίνεται στον Πίνακα 6.9: mode 1 omni on και poly on Το όργανο δέχεται MIDI µηνύµατα από όλα τα κανάλια και λειτουργεί πολυφωνικά. mode 2 omni on και mono on Το όργανο δέχεται MIDI µηνύµατα από όλα τα κανάλια και λειτουργεί µονοφωνικά. mode 3 omni off και poly on Το όργανο δέχεται MIDI µηνύµατα από ένα προκαθορισµένο κανάλι και λειτουργεί πολυφωνικά. mode 4 omni off και mono on Το όργανο δέχεται MIDI µηνύµατα από ένα προκαθορισµένο κανάλι, τα οποία µοιράζονται σε προκαθορισµένο αριθµό φωνών. Πίνακας 6.9 Συνδυασµοί Omni-Mono/Poly. Ένα µήνυµα Channel Mode έχει την εξής µορφή: 1011nnnn 0ccccccc 0fffffff όπου n = κανάλι MIDI, c = controller number (cc#120-127) και f = λειτουργία (mode s function). Στον Πίνακα 6.10 δίνονται τα µηνύµατα Channel Mode. Status Byte Data Byte 1 Data Byte 2 Data Byte 3 Περιγραφή 1011nnnn 01111010 (cc#122) 00000000 [0 = off] 01111111 [127 = on] Local Control 1011nnnn 01111011 (cc#123) 00000000 [0] All Notes Off 1011nnnn 01111100 (cc#124) 00000000 [0] Omni Off 1011nnnn 01111101 (cc#125) 00000000 [0] Omni On 1011nnnn 01111110 (cc#126) 0mmmmmmm (m = Mono On αριθµός καναλιών) 1011nnnn 01111111 (cc#127) 00000000 [0] Poly Off Πίνακας 6.10 Μηνύµατα Channel Mode. 6.1.12.3. System Messages. Τα µηνύµατα τύπου System δεν περιέχουν αριθµό MIDI καναλιού στο δεύτερο µισό του status byte και απευθύνονται σε όλα τα όργανα ενός δικτύου MIDI. To status byte ενός µηνύµατος τύπου System έχει τη µορφή 1111xxxx, όπου το πρώτο ψηφίο (1) δηλώνει ότι πρόκειται για status byte, τα επόµενα τρία ψηφία (111) ότι πρόκειται για System Message ενώ τα τέσσερα τελευταία (xxxx) αναφέρονται στη λειτουργία του µηνύµατος. 203

6.1.12.4. System Real Time Messages. Τα MIDI όργανα είναι εφοδιασµένα µε εσωτερικούς ωρολογιακούς µηχανισµούς (MIDI clocks) µε τους οποίους ελέγχουν διάφορες χρονικές λειτουργίες όπως το tempo ενός sequencer, η ταχύτητα ανάγνωσης ενός αρχείου κ.ά. Όταν αυτά τα όργανα πρέπει να συνδεθούν και να επικοινωνήσουν µεταξύ τους στο ίδιο MIDI δίκτυο τότε απαιτείται οι λειτουργίες τους να είναι συγχρονισµένες. Για αυτόν τον σκοπό ένα από τα όργανα του δικτύου ρυθµίζεται ώστε να ελέγχει όλα τα υπόλοιπα. Σε αυτήν την περίπτωση, όταν δηλαδή ένα όργανο ελέγχει τα υπόλοιπα µε το δικό του εσωτερικό ρολόι, βρίσκεται σε λειτουργία master mode ή internal sync. Τα άλλα όργανα που δέχονται τον χρονικό έλεγχο είναι ρυθµισµένα σε slave mode ή external sync. Ο συγχρονισµός που προσφέρει το MIDI clock είναι σχετικός γιατί εξαρτάται από τις ρυθµίσεις του tempo. Τα System Real Time Messages αποτελούνται µόνο από status bytes, χρησιµοποιούνται για να συγχρονίσουν τα µέρη ενός MIDI συστήµατος και δεν περιέχουν αριθµό καναλιού. Περιφερειακά µηχανήµατα, αλλά και προγράµµατα σε µορφή λογισµικού µπορούν να επικοινωνήσουν και να συγχρονιστούν µεταξύ τους µέσω του συστήµατος που ονοµάζεται System Real Time. Μηνύµατα Real Time επιτρέπουν σε ένα όργανο να επικοινωνήσει µε κάποιο άλλο και να στείλει εντολές για το πότε να ξεκινήσει (start) και να σταµατήσει (stop) µια νότα, πόσο γρήγορα να παιχτεί, πότε να αλλαχτεί το tempo, ποια θα είναι η συχνότητα ενός LFO (Low Frequency Oscillator) κ.λπ. Για τέτοιες ανάγκες συγχρονισµού, πολλά MIDI όργανα είναι εφοδιασµένα µε ένα εσωτερικό ρολόι το οποίο στέλνει 24 παλµούς ανά νότα αξίας ενός τετάρτου (24 PPQN-Pulses Per Quartet Note). 6.1.12.5. System Common Messages. Τα µηνύµατα System Common και System Real Time ανήκουν στην κατηγορία System Messages. Τα µηνύµατα System Common επαυξάνουν τις λειτουργίες κάποιων MIDI εντολών. Επειδή είναι «κοινά» (common) δεν έχουν συγκεκριµένο αριθµό καναλιού. Τα System Common Messages αποτελούνται από ένα αρχικό status byte µε τη µορφή 1111xxxx και ένα ή περισσότερα data bytes. Στον Πίνακα 6.11 παρουσιάζονται κάποια µηνύµατα System Common. MIDI Time Code. Όπως είδαµε πιο πάνω, το MIDI clock προσφέρει σχετικό συγχρονισµό, καθώς εξαρτάται από τις ρυθµίσεις του tempo του κοµµατιού. Για τη χρονική λειτουργία όµως του MIDI µε την εικόνα (video, κινηµατογράφος, τηλεόραση) απαιτείται απόλυτος συγχρονισµός. Για αυτόν το σκοπό δηµιουργήθηκε το MIDI Time Code (MTC). Πρόκειται για ένα πρωτόκολλο µέσα στο πρωτόκολλο MIDI το οποίο συγχρονίζει MIDI µηχανήµατα που λειτουργούν µε βάση τον χρόνο. Χρησιµοποιείται για τον συγχρονισµό MIDI µηνυµάτων στην παραγωγή video, ταινιών και τηλεοπτικών προγραµµάτων. Επειδή η βιοµηχανία κινηµατογράφου είχε ήδη αναπτύξει τον δικό της κώδικα συγχρονισµού µε την ονοµασία (SMPTE-Society of Motion Picture and Television Engineers), το MTC λειτουργεί ως ένας ενδιάµεσος κώδικας επικοινωνίας µεταξύ του MIDI και του SMPTE. Έτσι, διαφορετικά ηλεκτρονικά όργανα µπορούν να συγχρονιστούν µεταξύ τους καθοδηγούµενα από το MTC και το SMPTE. Για παράδειγµα, ένα DAW µπορεί να συγχρονιστεί µε ένα video για την παραγωγή µουσικής για την εικόνα. Στο παράθυρο του DAW θα εµφανιστεί ένα άλλο παράθυρο µε την ακριβή ένδειξη του χρόνου και τις υποδιαιρέσεις ώρας, λεπτών, δευτερολέπτων και frames (Εικόνα 6.3). Η ακριβής χρονική θέση ορίζεται από ένα µήνυµα τύπου System Common το οποίο ονοµάζεται MIDI Time Code Quarter Frame (11110001). Εικόνα 6.3 Εµφάνιση MIDI Time Code σε περιβάλλον DAW. 204

Τα frames ή καρέ αποτελούν χρονικές υποδιαιρέσεις του δευτερολέπτου. Ο αριθµός τους ανά δευτερόλεπτο (Frames Per Second-FPS) ονοµάζεται frame rate ή frame frequency και δηλώνει τον αριθµό των συνεχόµενων εικόνων που εµφανίζονται σε ένα δευτερόλεπτο σε µια κινηµατογραφική ταινία, σε ένα video, σε γραφικά υπολογιστών κ.λπ. Η βιοµηχανία κινηµατογράφου χρησιµοποιεί τη συχνότητα των 24 FPR ενώ στην τηλεόραση και στο ψηφιακό βίντεο χρησιµοποιούνται τα 24, 25 και 30 FPS. Η παλαιότερη ταινία φιλµ Super 8 χρησιµοποιούσε συχνότητα 18 FPS. Ο Πίνακας 6.11 περιγράφει τα µηνύµατα System Real Time και System Common. Το δεύτερο µισό των status bytes ορίζει τη λειτουργία του µηνύµατος. Status Byte Περιγραφή 11110000 System Exclusive 11110001 MIDI Time Code Quarter Frame 11110010 Song Position Pointer 11110011 Song Select 11110110 Tune Request 11110111 End of System Exclusive 11111000 Timing Clock 11111010 Start (song) 11111011 Continue 11111100 Stop 11111110 Active Sensing 11111111 System Reset Πίνακας 6.11 Περιγραφή µηνυµάτων System Real Time και System Common. 6.1.12.6. System Exclusive Messages (SysEx). Κάθε εταιρία παραγωγής ηλεκτρονικών µουσικών οργάνων παράγει και εφαρµόζει τη δική της τεχνολογία για τα όργανά της. Για παράδειγµα, τα programs τα οποία καθορίζουν τον τρόπο παραγωγής ενός ήχου διαφέρουν από εταιρία σε εταιρία αλλά και από όργανο σε όργανο της ίδιας εταιρίας. Τα µηνύµατα System Exclusive µεταφέρουν τις πληροφορίες που αφορούν στις ιδιαιτερότητες των διαφορετικών οργάνων. Μεταφέρουν για παράδειγµα τη µνήµη ενός συνθετητή που σχετίζεται µε τα ηχοχρώµατα που παράγει σε ένα άλλο συµβατό όργανο. Αυτή η διαδικασία ονοµάζεται dump. Κάθε όργανο διαθέτει τον δικό του ιδιαίτερο αριθµό (exclusive number ή SysEx ID) ο οποίος του επιτρέπει να επικοινωνεί µε όργανα άλλων εταιριών και να µεταφέρει σε αυτά πληροφορίες σχετικές µε τα programs που διαθέτει. Ένα µήνυµα System Exclusive ξεκινά µε ένα status byte 11110000 (όπου το πρώτο ψηφίο 1 δηλώνει ότι πρόκειται για status byte, τα επόµενα τρία ψηφία 111 ότι είναι µια εντολή τύπου system και τα τέσσερα τελευταία ψηφία ότι το µήνυµα είναι System Exclusive). Μετά το status byte ακολουθεί µια σειρά από data bytes που ενηµερώνουν για την ταυτότητα της κατασκευάστριας εταιρίας και του συγκεκριµένου οργάνου (manufacturer ID#, instrument model ID#, device ID#). Στη συνέχεια, ακολουθεί µια δεύτερη οµάδα από data bytes τα οποία µεταφέρουν πληροφορίες για τα programs και το όργανο. Τελευταίο τµήµα της εντολής είναι το status byte 11110111 το οποίο δηλώνει το τέλος του µηνύµατος System Exclusive (End of SysEx). 6.1.13. General MIDI (GM). Το πρωτόκολλο MIDI προσέφερε τη δυνατότητα σε µουσικούς που χρησιµοποιούν ηλεκτρονικά όργανα και υπολογιστές να δηµιουργούν και να µοιράζονται κοινά αρχεία µε τις παραµέτρους της µουσική τους (Standard MIDI files). Τα διάφορα όργανα όµως που διάβαζαν αυτά τα αρχεία δεν τα έπαιζαν πάντα µε τους ίδιους ήχους. Διαφορετικά όργανα χρησιµοποιούσαν συχνά διαφορετικά ηχοχρώµατα για να αναπαράξουν το ίδιο αρχείο, ανάλογα µε τις ρυθµίσεις που είχε το καθένα. Το 1991, οι εκπρόσωποι των MIDI Manufacturers Association και Japan MIDI Standards Committee κλήθηκαν να λύσουν αυτό το ζήτηµα ασυµβατότητας. 205

Δηµιούργησαν ένα νέο πρωτόκολλο µε την ονοµασία General MIDI System Level 1, το οποίο έγινε γνωστό ως General MIDI ή GM. Το 1999 η MIDI Manufacturers Association προχώρησε σε µια σηµαντική επέκταση εισάγοντας το General MIDI Level 2 ή GM2 για να συµπεριλάβει περισσότερους ελεγκτές, programs κ.ά. Το General MIDI ορίζει τις παρακάτω προδιαγραφές συµβατότητας που πρέπει να διαθέτει ένα όργανο MIDI (πληκτροφόρα όργανα, κάρτες ήχου, plugins κ.λπ.). 16 κανάλια τα οποία µπορούν να παίζουν ταυτόχρονα διαφορετικές νότες και ηχοχρώµατα. Στο κανάλι 10 ανατίθενται τα ηχοχρώµατα των κρουστών οργάνων (drum set). Ένα GM MIDI όργανο πρέπει να είναι multitimbral, να µπορεί δηλαδή να αναπαράξει ταυτόχρονα περισσότερα του ενός όργανα. Πολυφωνία τουλάχιστον 24 νοτών. Μνήµη µε τουλάχιστον 128 διαφορετικά programs (Πίνακας 6.12). Υποστήριξη και υποδοχή µηνυµάτων από τους ελεγκτές cc# 1, 7, 10, 64, 121 και 123. Υποστήριξη των µηνυµάτων velocity, pitch bend και channel pressure (aftertouch). Αναπαραγωγή όλων των κρουστών ηχοχρωµάτων από ξεχωριστά πλήκτρα των πληκτροφόρων οργάνων (percussion mapping) (Πίνακας 6.13). Ένα General MIDI όργανο διαθέτει 16 αποθηκευτικές µονάδες (banks) οι οποίες περιέχουν τουλάχιστον 8 ηχοχρώµατα (programs) η καθεµία. Στον Πίνακα 6.12 δίνεται η χαρτογράφηση των οργάνων (programs) σε µια τυπική GM MIDI συσκευή. PIANO CHROMATIC ORGAN GUITAR PERCUSSION 1. Acoustic grand 9. Celesta 17. Hammond organ 25. Guitar (nylon (Drawbar) strings) 2. Bright acoustic 10. Glockenspiel 18. Percussive organ 26. Guitar (steel strings) 3. Electric grand 11. Music box 19. Rock organ 27. Electric jazz guitar 4. Honky-tonk 12. Vibraphone 20. Church organ 28. Electric clean guitar 5. Electric piano 1 13. Marimba 21. Reed organ 29. Electric muted guitar 6. Electric piano 2 14. Xylophone 22. Accordion 30. Overdriven guitar 7. Harpsichord 15. Tubular bell 23. Harmonica 31. Distortion guitar 8. Clavinet 16. Dulcimer 24. Tango accordion 32. Guitar harmonics BASS SOLO STRINGS ENSEMBLE BRASS 33. Acoustic bass 41. Violin 49. String ensemble 1 57. Trumpet 34. Electric bass (finger) 42. Viola 50. String ensemble 2 58. Trombone 35. Electric bass (pick) 43. Cello 51. Synthstrings 1 59. Tuba 36. Fretless bass 44. Contrabass 52. Synthstrings 2 60. Muted trumpet 37. Slap bass 1 45. Tremolo strings 53. Choir Aahs 61. French Horn 38. Slap bass 2 46. Pizzicato strings 54. Voice Oohs 62. Brass section 39. Synth bass 1 47. Orchestral strings 55. Synth voice 63. Synthbrass 1 40. Synth bass 2 48. Timpani 56. Orchestra hit 64. Synthbrass 2 REED PIPE SYNTH LEAD SYNTH PAD 65. Soprano sax 73. Piccolo 81. Lead 1 (square) 89. Pad 1 (new age) 66. Alto sax 74. Flute 82. Lead 2 (sawtooth) 90. Pad 2 (warm) 67. Tenor sax 75. Recorder 83. Lead 3 (calliope) 91. Pad 3 (polysynth) 68. Baritone sax 76. Pan flute 84. Lead 4 (chiff) 92. Pad 4 (choir) 69. Oboe 77. Blown bottle 85. Lead 5 (charang) 93. Pad 5 (bowed) 70. English horn 78. Shakuhachi 86. Lead 6 (voice) 94. Pad 6 (metallic) 71. Bassoon 79. Whistle 87. Lead 7 (fifths) 95. Pad 7 (halo) 72. Clarinet 80. Ocarina 88. Lead 8 (bass+lead) 96. Pad 8 (sweep) SYNTH EFFECTS ETHNIC PERCUSSIVE SOUND EFFECTS 97. FX 1 (rain) 105. Sitar 113. Tinkle bell 121. Guitar fret noise 206