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. aastate 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ünkroonida. 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äiteks valgussignaali, vaid edastab digitaalsed käsklusi – sündmussõnumeid. Muusikariistades edastatav info hõlmab teavet, näiteks tempo, helikõrguse, oktaavi, helitugevuse, modulatsiooni, helipanoraamis paiknemise jne kohta.

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

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 ja 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 ja 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ünkroonimiseks kasutati väravsignaali, kuid kuna tootjad kasutasid oma elektroonilistes instrumentides erinevaid sünkroonimisimpulsside taktsagedusi, oli mitteühilduvate seadmete sünkroonimine keerukas ja 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 ja 1981. aasta sügisel tutvustati juhtreeglistikku heliinsenerluse kogukonnale (AES). Kahe järgmise aasta jooksul tehti koostöös elektrooniliste instrumentide suurtootjatega protokolli standardis muudatusi ja 1983. aastal nimetati süntesaatori universaalliides ümber MIDI-ks.

Standardsed MIDI rakendused[muuda | redigeeri lähteteksti]

MIDI võimaldab elektrooniliste instrumentide vahel suhtluse ja 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 ja neid samaaegselt kasutada. Samuti on MIDIga võimalik instrumendi helisid programmeerida ja muuta helide sigaalide kuju. Filtrite rakendamine võimaldab muuta helide tämbrit ning luua funktsioone, mis on suutelised filtrite parameetreid mää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 teisendavad MIDI signaale analoogjuhtsignaalideks, on võimalik MIDI-seadmetega juhtida ka analoogsüntesaatoreid.

MIDI-ga 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 ja 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 ja 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. MIDI-t on kasutatud lavavalgustussüsteemide lülitamiseks, sünkroonimiseks ja automatiseerimiseks. Ettevõtte Apple tarkvara „Apple Motion“ võimaldab MIDI-ga juhtida videotöötlusparameetreid. 1987. aastal kasutati MIDI protokolli arvutite omavahelisse võrku lülitamiseks, eesmärgiga mängida arvutimängu „Oxyd“. Lisaks kasutatakse MIDI-t kodudes valgustuse 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 ja juhtsüsteemi. Tavaliselt salvestatakse MIDI-instrumendi helid ja 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,25 kbd (+/- 1%), kusjuures andmeedastuseks kasutatakse üht algusbitti, kaheksat andmebitti ja lõppbitti. Paarsusbitte MIDI andmevahetuse käigus 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 ja lõppbitt loogilise ühena. Maanduskontuuride ja 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 ühtegi MIDI riistvaraahelasse ega korpuse 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 lisaseadme ja 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 maksimaalne pikkus on viis meetrit ning seadmeid, mille voolutarve on suurem kui 500 mA, 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 standardiga, 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 ja võtab vastu MIDI andmeformaadis sõnumeid. Vastuvõtja riistvara koosneb optoisolaatorist, UART – seadmest ning muust kindla funktsiooni täitmiseks vajalikust riistvarast. MIDI andmevormingus informatsiooni edastamiseks kasutab MIDI saatja UART-seadet ja signaalivõimendit. 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ünkroonimiseks ning on mõeldud kõigile taktipõhistele süsteemiosadele. Reaalajasõnumid edastavad ainult seisundibitte. Reaalajasõnumeid on võimalik saata igal ajal, ka erineva staatusega sõnumi baitide vahel. Sel juhul reaalajasõnumile reageeritakse või seda ignoreeritakse, seejärel 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. 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 ja arendajatel tootjate MIDI-seadmetele ligi pää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 vastu võ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]