MIDI

Allikas: Vikipeedia
Noodi nimed ja MIDI noodi numbrid.
C erinevates oktaavides MIDI süsteemis

MIDI (akronüüm ingliskeelsest fraasist Musical Instrument Digital Interface; ka MIDI-liides) on 1980-ndate alguses loodud ja 1982 määratletud andmevahetuse (-edastuse) protokoll (keel), mis võimaldab elektroonilistel instrumentidel, arvutitel ja teistel seadmetel (näiteks MIDI-t toetavad valgustusseadmed teatrites) omavahel suhelda, üksteist juhtida ja sünkroniseerida. Eelduseks on, et seadmed toetavad MIDI standardit ja nende vahel on MIDI-ühendus (standardne MIDI-kaabel või näiteks USB-MIDI kasutajaliides) või WIDI-ühendus ("traadita" MIDI ehk Wireless MIDI). MIDIks nimetatakse ka kaabli või WIDI kaudu edastatavat MIDI teavet.

MIDI standard ei edasta heli- või näit valgussignaali, vaid edastab digitaalsed käsklusi – sündmussõnumeid. Muusikariistades edastatav info hõlmab endas teavet näit tempo, helikõrguse, oktaavi, helitugevuse, modulatsiooni, helipanoraamis paiknemise jne kohta.

MIDI on alates oma ilmumisest 1983. aastast saanud levinud standardiks muusikariistade (näit elektroonilised klahvpillid, kitarriprotsessorid, trummimasinad, sekventserid jne) juhtimisel ja sünkroniseerimisel.

MIDI lühiajalugu[muuda | redigeeri lähteteksti]

Elektrooniliste muusikainstrumentide algusaastatel olid süntesaatorid tavaliselt monotoonsed seadmed. Piirangust, taasesitada üht nooti korraga, läksid elektrooniliste muusikainstrumentide tootjad mööda tehnoloogiaga, mis võimaldas luua elektrilise ühenduse erinevate süntesaatorite vahel. Üks süntesaator määrati ülemaks ning sellega võimaldati juhtida alluvate helimoodulite taasesitusparameetreid. Nimetatud ülem-alluv-süsteemi juhtimiseks töötati välja algeline juhtsignaal. Süsteem põhines varajaste süntesaatorite omadusel, kus nende mängimisel tekkiva alalispingega oli võimalik juhtida teise instrumendi pingega juhitud võnkumisi ning pingega juhitud võimendeid. Kuna mitmed sel ajal kasutusel olnud süntesaatorid genereerisid alalissignaali, mille pinge suurenes ühe voldi võrra okaatvi kohta, siis oli võimalik kasutada seda juhtpinget normpingena. See võimaldas edastada helikõrgust sisaldavat informatsiooni teistele süntesaatoritele. Nootide algushetke ja kestuse sünkroniseerimiseks kasutati väravsignaali, kuid kuna tootjad kasutasid oma elektroonilistes instrumentides erinevaid sünkroniseerimisimpulsside taktsagedusi, siis oli mitteühilduvate seadmete sünkroniseerimine keerukas ning nõudis lisaseadmeid. Digitaalelektroonika areng võimaldas otsida alternatiive analoogjuhtimisele, mistõttu alustasid David Smith ja Chet Wood digitaalset elektrooniliste instrumendi juhtreeglistiku arendamist. Väljatöötatav protokoll nimetati Süntesaatori Universaalliideseks ning 1981. aasta sügisel tutvustati juhtreeglistikku Heliinsenerluse Kogukonnale (AES). Kahe järgneva aasta jooksul tehti, koostöös elektrooniliste instrumentide suurtootjatega, protokolli standardis muudatusi ning 1983. aastal nimetati Süntesaatori Universaalliides ümber MIDIks.

Standardsed MIDI rakendused[muuda | redigeeri lähteteksti]

MIDI võimaldab elektrooniliste instrumentide vahel suhtluse ning teeb võimalikuks ühel seadmel juhtida teist. Näiteks, MIDI instrumendil noodi mängimine genereerib digitaalsignaali, millega on võimalik mängida noot teisel elektroonilisel instrumendil. MIDI juhtimine võimaldab instrumete paigutada väiksematesse moodulitesse ning neid samaaegselt kasutada. Samuti on MIDIga võimalik instrumendi helisid programmeerida ja muuta helide sigaalide kuju. Filtrite rakendamine võimaldab muuta helide tämbreid ning luua funktsioone, mis on suutelised filtrite parameetreid ettemääratud aja jooksul muutma. Tarkvaraliste ja riistvaraliste muusikainstrumentide juhtnuppude ja parameetrite juhtimine on võimalik määrata MIDI kontrolleri füüsiliste lülitite alla. Kasutades muundureid, mis konverteerivad MIDI signaale analoogjuhtsignaalideks, on võimalik MIDI seadmetega juhtida ka analoogsüntesaatoreid.

MIDIga komponeerimine[muuda | redigeeri lähteteksti]

Arvutitarkvara või spetsiaalsete riistavaraliste tööjaamade abil on võimalik heliloomingu ja –töötluse eesmärgil MIDI sündmusi järjestada, muuta ning luua. Nii saab modifitseerida MIDI arranžeeringu tempot, helistikku ja instrumente ilma, et ühtegi instrumenti peaks uuesti salvestama. MIDIt kasutatakse ka kõrgekvaliteediliste digitaalsete helisämplite juhtimiseks. Mitmetesse tarkvaralistesse helindustööjaamadesse (DAW) on projekteeritud MIDI implementatsioonide funktsionaalsus. Teiste funktsionaaluste seas, kuulub helindustööjaamade võimekusse graafiliselt esitada MIDI nootide andmeid ning neid töödelda. Muuta saab MIDI nootide vältust, helikõrgust, helitugevust ning lisada modulatsiooniefekte, nootide libistamist ühelt helikõrguselt teisele.

Teisi MIDI rakendusi[muuda | redigeeri lähteteksti]

MIDI reeglistikku on rakendatud ka mittemuusikaliste süsteemide juhtimiseks. MIDIt on kasutatud lavavalgustussüsteemide lülitamiseks, sünkroniseerimiseks ja automatiseerimiseks. Ettevõtte Apple tarkvara „Apple Motion“ võimaldab MIDIga juhtida videotöötlusparameetreid. 1987. aastal kasutati MIDI protokolli arvutite omavahelisse võrku lülitamiseks, eesmärgiga mängida arvutimängu „Oxyd“. Lisaks kasutatakse MIDIt koduvalgustuse ja kodumasinate juhtimiseks.

MIDI Instrumendid[muuda | redigeeri lähteteksti]

MIDI instrument sisaldab MIDI sõnumite edastamiseks ja vastuvõtmiseks sisend- ja väljundpesasid, protsessorit sisend- ja väljundsignaalide töötlemiseks, kasutajaliidest, mis võimaldaks seadet programmeerida, heli tekitamiseks vajalikku elektrilist lülitust ning juhtsüsteemi. Tavaliselt salvestatakse MIDI instrumendi helid ning operatsioonisüsteem instrumendi püsimällu. MIDI instrumendiks võib olla ka klaverilaadsete klahvideta üksikmoodul.

MIDI seadmestik[muuda | redigeeri lähteteksti]

Diagram of a MIDI connector
MIDI pistikseadme kontakttihvtide paigutus.

MIDI riistvaraline liides töötab asünkroonse jadaühendusena boodikiirusega 31.25Kbd (+/- 1%), kusjuures andmeedastuseks kasutatakse üht algusbitti, kaheksat andmebitti ning lõppbitti. Paarsusbitte MIDI andmevahetuse käiguse ei saadeta. Kokku edastatakse 320 mikrosekundilise ajavahemiku vältel 10 bitti ühe jadamisi saadetud baidi kohta. Edastatavates baitides saadetakse vähima kaaluga bitt esimesena. Algusbitt on määratud loogilise nullina ning lõppbitt loogilise ühena. Maanduskontuuride ning andmevigade vältimiseks on saatja elektriline lülitus ning vastuvõtja elektriline lülitus teineteisest optoisolaatoriga eraldatud. Ahelas kasutatava optoisolaatori tõusuaeg ja langeaeg peab olema väiksem kui 2 mikrosekundit. Vastuvõtja elektriahel peab sisselülitamiseks tarbima vähem kui 5mA voolu. Viie kontakttihvtiga 180 kraadine DIN pesa. MIDI andmevahetuses ei kasutata ning sellest tulenevalt ei ühendata kontakttihvte 1 ja 3 saatja ning vastuvõtja elektriahelatesse. MIDI sisendpistikseadise kontakttihvt 2 jääb samuti ühendamata. MIDI pesade ning pistikseadiste varjestusühendusi ei lülitata ühessegi MIDI riistvaraahelasse ega korpusese maandusesse. MIDI peegelduspesa kasutamisel võib MIDI sisendpesa ja peegelduspesa vahelises andmevahetuses esineda signaali degradeerumine nelinurksignaali tõusva ja langeva serva vahel. See on tingitud optoisolaatori reageerimiskestusest. Reageerimiskestusest tingitud ajastusvead seavad jadamisi MIDI ahelasse lülitatavate MIDI seadmete arvule piirangu. MIDI seadmete omavaheliseks ühendamiseks kasutatavate kaablite maksimaalne pikkus on, veatõrjekoodi puudumise tõttu, 15 meetrit. Kasutatavaks kaabliks on varjestatud keerdpaarkaabel, mille mõlemas otsas on viie kontakttihvtiga DIN pistikseadis. Kaabli varjestus on ühendatud pistikseadiste teise kontakttihvtiga.

MIDI sõnumitüüpide diagramm
MIDI baiditüüpide diagramm

Jadasiinide spetsifikatsioone MIDI süsteemides[muuda | redigeeri lähteteksti]

USB[muuda | redigeeri lähteteksti]

USB võimaldab süsteemi lisada kuni 127 välist seadet, mis on tinginud MIDI tööstuses tendentsi luua süsteeme, kus seadmete omavaheliseks ühendamiseks kasutatakse minimaalsel hulgal lisaühendusi. USB ühendused võimaldavad perifeeriaseadme ning arvuti vahel kahepoolse ühenduse, mis lihtsustab lõppkasutaja jaoks süsteemi kasutamist. Lõppkasutaja kasutajamugavuse suurendamiseks võimaldatakse ka USB seadmete käigultvahetus. USB 1.0 ja USB 2.0 standardite seadmetevahelise ühenduskaabli maksimaalseks pikkuseks on viis meetrit ning seadmeid, mille voolutarve on suurem, kui viissada milliamprit, tuleb elektrienergiaga varustada välise toiteseadme kaudu.

FireWire[muuda | redigeeri lähteteksti]

FireWire võimaldab, kiudoptilisi kaableid kasutades, edastada MIDI juhtimissignaale kuni saja meetri kaugusele. FireWire on suuteline MIDI süsteemi ühendama kuni 63 välist seadet ning, sarnaselt USB standardile, kasutab kahepoolseks suhtluseks keerdpaarkaablit. FireWire süsteemid toetavad käigultvahetust.

MIDI andmevorming[muuda | redigeeri lähteteksti]

MIDI suhtlus saavutatakse mitmebaidiliste andmekogumitega, mis koosnevad ühest seisundibaidist, millele järgnevad üks või kaks andmebaiti. Tavaliselt ehitatakse MIDI instrumenti nii saatja kui ka vastuvõtja, kuid MIDI seade võib olla ka varustatud ainult ühega. Vastuvõtja teostab MIDI käsklusi ning võtab vastu MIDI andmeformaadis sõnumeid. Vastuvõtja riistvara koosneb optoisolaatorist, UART – seadmest ning muust kindla funktsiooni täitmiseks vajalikust riistvarast. MIDI andmeformaadis informatsiooni edastamiseks kasutab MIDI saatja UART – seadet ja signaalivõmendit. MIDI sõnumeid võib edastada kuni üle 16 kanali ja sõnum koosneb ühest või enamast baidist.

Sõnumitüübid[muuda | redigeeri lähteteksti]

MIDI sõnumid jaotatakse kahte põhikategooriasse: kanalisõnumid ja süsteemisõnumid

Kanalisõnumid[muuda | redigeeri lähteteksti]

Kanalisõnum kasutab sõnumi edastamiseks ühele kanalile seisundibaidist nelja bitti ning järelejäänud nelja bitti kasutatakse sõnumi defineerimiseks. Seega on kanalisõnumid mõeldud vastuvõtjatele, mille kanalinumber on kodeeritud kanalisõnumi seisundibaiti. MIDI sõnumeid on võimalik edastada rohkem kui ühele kanalile korraga. Kanalit, millele edastatakse põhikäsud, nagu näiteks millisel programminumbril olla ning millist töörežiimi kasutada, nimetatakse kanali baaskanaliks. MIDI seadet on võimalik seadistada mitmel kanalil informatsiooni vastuvõtmiseks. Selliseid kanaleid nimetatakse häälkanaliteks. Eristatakse kaht tüüpi kanalisõnumeid: häälsõnumid ning töörežiimisõnumid. Häälsõnumeid kasutatakse MIDI instrumendi häälte juhtimiseks ning neid edastatakse üle häälkanalite. Töörežiimisõnumeid kasutatakse, et defineerida MIDI instrumendi reageerimine häälsõnumile. Töörežiimisõnumid edastatakse üle baaskanali.

Süsteemisõnumid[muuda | redigeeri lähteteksti]

Süsteemisõnumid ei sisalda kanalinumbreid. Kokku on võimalik eristada kolme tüüpi süsteemisõnumeid: Ühissõnumid on, olenemata kanalist, adresseeritud kõigile vastuvõtjatele. Reaalajasõnumeid kasutatakse sünkroniseerimiseks ning on mõeldud kõigile taktipõhistele süsteemiosadele. Reaalajasõnumid edastavad ainult seisundibitte. Reaalajasõnumeid on võimalik saata igal ajahetkel, ka erineva staatusega sõnumi baitide vahel. Sellisel juhul reaalajasõnumile reageeritakse või teda ignoreeritakse, pärast mida jätkub viimane vastuvõtmisprotsess. Süsteemi eksklusiivsõnumid võivad sisaldada suvalise arvu andmebaite ning sõnumite edastamine lõpetatakse eksklusiivsõnumi lõppbaidi(EOX) või suvalise teise seisundibaidiga. Lõppbait tuleks alati edastada süsteemi eksklusiivsõnumi lõpus. Sõnumid sisaldavad tootja identifitseerimiskoodi. Juhul, kui vastuvõtja ei tunne identifitseerimiskoodi, tuleks koodile järgnevaid andmeid ignoreerida. MIDI seadmete tootjatel on kohustus avalikustada identifitseerimiskoodile järgnev sõnumite andmevorming. See võimaldab kasutajatel ning arendajatel tootjate MIDI seadmetele ligipääseda.

Andmetüübid[muuda | redigeeri lähteteksti]

MIDI edastab kaht tüüpi baite: seisundibaite ning andmebaite

Seisundibaidid[muuda | redigeeri lähteteksti]

Seisundibaidid on kaheksabitised kahendsüsteemi numbrid, milles suurima kaaluga bitt on määratud loogilise ühena. Seisundibaitide ülesanne on määrata sõnumitüüp, ehk seisundibaidile järgnevate andmebaitide ülesanne. Uued seisundibaidid (v.a reaalajasõnumid) määravad vastuvõtja seisundi ka juhul, kui viimase sõnumi käsud jäid täitmata.

Seisundi säilitamine[muuda | redigeeri lähteteksti]

Kehtib häälsõnumite ja töörežiimisõnumite puhul. Seisundibaidi vastuvõtmisel ja tema käsu täitmisel jääb vastuvõtja seisundibaidi edastatud seisundisse seni, kuni vastu võetakse teistsugune seisundibait. Seetõttu on võimalik korduva seisundibaidi edastamise puhul korduvate baitide saatmine ära jätta ning edastada ainult andmebaite. Järelikult on seisundi säilitamise korral võimalik edastada sõnumeid, mis koosnevad ainult andmebaitidest. Seisundi säilitamise lõpetab suvalise teistsuguse seisundibaidi edastamine. Reaalajasõnumid ei tohi seisundi säilitamist mõjutada. Kõiki vastuvõetud seisundibaite ja nendele järgnevad andmebaite, mille ülesannet vastuvõtjas ei täideta, ignoreeritakse.

Määratlemata seisund[muuda | redigeeri lähteteksti]

MIDI seadmed ei tohi edastada määratlemata seisundiga baite. MIDI süsteemis häirete vältimiseks tuleb määratlemata seisundiga baite ignoreerida. MIDI seadme käivitamisel ning väljalülitamisel ei tohi MIDI seade väljundpesast mürasignaale edastada, kuna see võib põhjustada andmevigu või andmete valest alguskohast lugemist.

Andmebaidid[muuda | redigeeri lähteteksti]

Andmebaidid (v.a reaalajasõnumid) edastatakse pärast seisundibaiti. Sõnumi sisu kannavad üks või kaks kaheksabitilist andmebaiti, mille suurima kaaluga bitt on alati määratud loogilise nullina. Iga seisundibaidi kohta tuleb edastada õige arv andmebaite. Vastuvõtjad peavad enne sõnumi täitmist ootama, kuni kõik andmebaidid on vastuvõetud. Andmebaite, millele ei eelnenud valiidne seisundibait, tuleks ignoreerida juhul, kui tegemist ei ole seisundi säilitamisega.

Vaata ka[muuda | redigeeri lähteteksti]

Välislingid[muuda | redigeeri lähteteksti]



Viited[muuda | redigeeri lähteteksti]