From Wikipedia, the free encyclopedia
MIDI (MIDIo) estas komputa formo (teĥnika normo) por priskribi muzikon. La mallongigo signifas "Muzikinstrumenta digitala interfaco" (angle "Musical Instrument Digital Interface"). La normo MIDI ebligas prezenton kaj interŝanĝon de muzikaj datumoj en/inter komputiloj kaj en/inter muzikiloj, kiuj havas interfacon MIDI. La interfaco MIDI ebligas kodumi tiajn eventojn kiel premo de tastoj, starigi la muzikilon (tembron, sonkoloron), laŭtecon, pozicion de muzikilo kaj multon alian. MIDIo estas fakte elektronika formo de muzikoskribo, kiu estas multe pli ekzakta ol tradicia muzikoskribo sur papero.
MIDI | ||
---|---|---|
teknika specifo • ret-komunika protokolo vd | ||
Dum | nekonata - nekonata/nuntempe | |
Antaŭulo | DIN sync | |
Partoprenanta | Standard MIDI File vd | |
TTT | Oficiala retejo | |
La sistemo MIDI estas vasta, do multenombrajn detalojn povas scii nur fakuloj. Tiu ĉi artikolo strebas sciigi nur superrigardon de MIDIo.
Muzikaj verkoj povas esti koditaj en komputilaj dosieroj. La MIDIaj dosieroj havas kutime sufikson .MID, iam .KAR (por karaokeo). La MIDI-dosieroj en distingo de aliaj komputilaj formatoj de sono (ekzemple MP3) ne enhavas fizikan prezenton de sono kiel oscilado de aero. Aparato, kiu transformas kodon MIDI en sonon estas sinteziloj. Plej vaste uzataj sinteziloj estas komputiloj. Profesiaj muzikistoj ofte uzas elektronikajn sintezilojn. Memkompreneble, la kvalito de ludo dependas de la kvalito de la sintezilo.
La amplekso de MIDIaj dosieroj estas kutime ĉirkaŭ 15-foje malplia ol la amplekso de aliaj sonformatoj (ekz. MP3).
La dosieroj MIDI ne povas prezenti voĉon, sed ebligas prezenton de teksto, kiun povas montri la sintezilo dum ludo de kantoj. Kutime la sinteziloj markas kiel bone videbla la fragmenton de teksto, kiu rilatas al ĉi tiu momento de tempo. Alivorte, sinteziloj prezentas karaokeon.
La kodo MIDI povas esti transsendita per kanaloj de komunikado. Tiun manieron uzas "elektronikaj orkestroj", kiuj konsistas el muzikiloj kaj aliaj elektronikaj aparatoj, kiuj havas interfacon MIDI. La kodo MIDI sonigas por ĉiu muzikilo la ĝustan partituron, sinkronigas la muzikilojn kaj ebligas la sinkronan regadon de aparataro (lumigo, piroteknika aparataro ktp).
Oni subdividas la melodion en trakoj el 1 ĝis 512 (nombrado el 0 ĝis 511). Oni tre malofte uzas pli ol 16 trakojn, sed ofte la melodio enhavas nur unu trakon.
Ĉiu trako enhavas propran pecon de melodio. Kutime en multitraka melodio ĉiu trako enhavas unu partituron (muzikilon). Do oni ludas ĉiujn trakojn samtempe.
Tamen se la melodio havas kelkajn partiturojn, la kodo MIDI povas havi nur unu trakon, do ne estas devige dividi melodion en trakojn laŭ partituroj. Kelkaj aparatoj povas ludi nur unutrakan melodion (ekzemple elektronika piano Casio WK-3300, kiu havas interfacon MIDI kaj povas ludi MIDIajn dosierojn).
Pli grava ol trako estas la nocio "kanalo MIDI". Ekzistas 16 kanaloj (kun nombroj el 0 ĝis 15).
La kanalo 9 estas destinata por drumoj (frapaj muzikiloj) kaj en tiu kanalo oni kodas ĉiujn drumojn de la melodio.
Kutime ĉiu kanalo (krom kanalo 9) enhavas unu partituron, do unu muzikilon kaj kutime por ĉiu kanalo oni starigas la muzikilon nur unufoje komence de melodio kaj la kanalo ludas tiun muzikilon ĝis fino de la melodio. Se la melodio havas pli ol 16 partiturojn, oni devas dividi certajn kanalojn inter kelkaj muzikiloj, do ŝanĝi muzikilon en kanalo kiam necesas.
MIDI subtenas steresonon, do kodas ankaŭ dividon de sonoj en la spaco. MIDI ne kodas separe maldekstran kaj dekstran kanalon kiel kutime faras la plimulto de aliaj sonformatoj. MIDI kodas la pozicion de ĉiu muzikilo en la spaco per nombroj el 0 (maldekstre) ĝis 127 (dekstre). La dividon en dekstra kaj maldekstra kanalo faras la aparataro, kiu transformas kodon MIDI en fizika prezento de sono, do la aparataro kiu interpretas la kodon MIDI.
Kodo de MIDI estas sekvenco de bitokoj. Dosiero MIDI havas prefikson kaj ĉiu (eble nur unu) trako havas propran prefikson (vidu poste Formato de dosieroj MIDI). Trako(j) konsistas el komandoj.
La unua bitoko de ĉiu komando havas biton 1 en unua pozicio de bitoko, do iliaj kodoj varias el 128 ĝis 255 (0x80 ĝis 0xFF). Postaj bitokoj de komando havas 0 en unua bito. Senco de tiu regulo estas sekvanta. Dum transsendo de kodo MIDI per nesekura kanalo certaj bitokoj povas esti distordataj. Tiam la ricevanto ignoras eraran komandon kaj rekonas novan komandon laŭ 1 en maldekstra bitoko. Tio mimimumas la sekvojn de eraroj. Ekzemple reto de MIDIaj muzikiloj ne perdas sinkronecon pro eraroj.
Komandoj povas konsisti el nombroj aŭ sekvencoj de bitokoj (ekzemple teksto, regantaj sekvencoj ktp).
Nombroj povas enhavi 1 ĝis 4 bitokoj. Por programistoj estas grava memorfiksi, ke nombroj el 2,3 aŭ 4 bitokoj havas unuan plej signifan bitokon. Krome, ĉiu bitoko de nombro havas maksimume 7 bitojn, do en ĉiu bitoko nur 7 dekstraj bitoj estas signifaj kal la plej maldekstra bito estas ĉiam 0. Ekzemple la nombro 384 havas deksesuman prezenton 0x0300, ne 0x8001 kiel en mikroprocesoroj INTEL x86 aŭ x64. 0x0300 = 0b00000011+0b00000000, kie nur dikaj bitoj estas signifaj. La valoro estas dekumaj 3*128 + 0 = 384. Do programoj por procesoroj INTEL dum prilaboro de kodo MIDI devas rearanĝi (inversigi) la bitokojn kaj kalkuli la valoron kiel ilustras la ekzemplo.
Sekvencoj de bitokoj en komandoj havas prefikson kiu difinas la longecon de sekvenco. Sekvencoj povas enhavi nulojn, do nulo ne kodas la finon de sekvenco.
Tiu ĉi artikolo enhavas nur ĝeneralan informon pri komandoj. Detaloj vidu en komandoj MIDI.
La komandaro MIDI enhavas komandojn de kanalo (ekzemple komenco/fino de sono de noto/drumo) kaj sistemaj komandoj. Sistemaj komandoj starigas ekzemple rapidecon de ludo, diversajn tekstojn ktp.
Ĉiu komando rilatas al iu momento de tempo, en tikoj. Tiko (angle tick) estas unuo de tempo en dosieroj MIDI. Jen la strukturo de sekvenco de komandoj MIDI:
delta1 komando1 delta2 komando2 ... deltaN komandoN
delta1, delta2,..., deltaN estas nombroj kaj signifas intervalon post la antaŭa komando. Komando1, komando2,..., komandoN estas propre komandoj. Kiel menciita antaŭe, la unua bitoko de komando havas 1 en la plej maldekstra bito, aliaj havas 0 en la plej maldekstra bito. Ekzemplo de fragmento de komanda sekvenco (deksesumaj nombroj):
... 20 92397F 00 922A7F 30 823900 00 822A00 ...
Ĉi tie 20 = dekuma 36 estas intervalo post la lasta antaŭa komando. La komando 92397F enŝaltas tonon kun nombro 0x39 en la kanalo 2. La sekvanta intervalo havas delta = 0 (00 deksesuma). Tio signifas, ke la komando 922A7F (enŝalto de sono kun nombro 0x2A en kanalo 2) plenumiĝas samtempe kun la antaŭa komando. La sekvanta komando 823900 elshaltas la tonon 0x39 post 9x30 = 48 deksesumaj tikoj post enŝaolto per unua komando. Samtempe la kvara komando elŝaltas la tonon 0x2A. Do ĉi tiu fragmento lanĉas du tonojn kaj ĉesigas ilin post 48 tikoj.
MIDI povas prezenti 120 tonoj de 10 oktavoj. La oktavoj en midi havas nombrojn el 1 ĝis 10. La tonoj havas nombrojn el 0 ĝis 119. La tono 0 estas la noto C (do) de subkontroktavo kaj havas frekvencon 16,35 Hz, do estas tiom malalta, ke ne estas aŭdebla por plimulto de homoj. La tono 119 estas la noto H de oktavo 10 kaj havas frekvencon 15804 Hz. Do la diapazono de notoj MIDI estas tre larĝa. Ekzemploj: la noto 0x39 = 48 + 9 = 57 dekuma. 57 dividi per 12 rezultas kvotienton 4 kaj restaĵon 9. Do la sono apartenas al oktavo 4 + 1 = 5 ĉar oni nombras oktavojn el 1. La tonoj en oktavo estas:
Do la tono 57 estas la noto A en la oktavo 5. Simile la tono 0x2A = 42 dekuma. 42 = 3*12 + 6. Do la tono estas la noto F# de oktavo 4.
Oni nomigas komandoj de muzikaj eventoj ankaŭ komandoj de kanalo. Ekzistas 7 grupoj de tiaj komandoj. Ĉiu Komando konsistas el 3 aŭ 2 bitokoj, laŭ la sekvanta tabelo. N (deksesuma) aŭ nnnn (duuma) estas nombro de kanalo.
Dekses. | Duuma | Nomo de komando | Bitoko 1 | Bitoko 2 | Komento |
---|---|---|---|---|---|
8N | 1000nnnn | Noto el | Nombro de noto | Rapideco | Elŝaltas sonantan noton, N kaj nnnn estas nombro de kanalo |
9N | 1001nnnn | Noto en | Nombro de noto | Laŭteco | Enŝaltas noton |
AN | 1010nnnn | Posttuŝo de klavo | Nombro de noto | Valoro de premo | Modifas la sonon de klavo |
BN | 1011nnnn | Starigo de kontrolilo | Nombro de kontrolilo | Valoro de kontrolilo | Diversaj funkcioj de regado k. kontrolo |
CN | 1100nnnn | Ŝanĝo de muzikilo (tembro) | Nombro de muzikilo | - | Starigas muzikilon en kanalo |
DN | 1101nnnn | Posttuŝo de kanalo | Valoro de premado | - | Modifas ĉiujn sonojn en kanalo |
EN | 1110nnnn | Modifo de tono | Valoro 1 | Valoro 2 | Modifas ĉiujn tonojn en kanalo |
Jen kelkaj klarigoj de tiuj funkcioj. Pli detale vidu en komandoj MIDI.
La komando 8N ĉesas sonon en la kanalo N. La noton (nombro el 0 ĝis 127) difinas la unua bajto de komando (vidu antaŭe la paragrafon Nombrado de tonoj. La rapideco, se estas difinita en sonanta aparataro, difinas la rapidecon de ĉesigo. En la plimulto de MIDI dosieroj la rapideco ĉe ĉi tiu komando estas nulo.
La komando 9N enŝaltas la sonon de certa noto en la kanalo N. La nombron de noto difinas la unua bitoko de komando. La dua bitoko difinas la laŭtecon (el 0 ĝis 127).
La komando AN starigas la posttuŝon de la klavo. Kutima la MIDIa aparataro aŭ programaro realigas vibradon de laŭteco de sono lanĉita de la respektiva noto. La samon faras la komamndo DN, sed por ĉiuj notoj en la kanalo N. Vibradon de tonalteco de noto regas la komando BN, por ĉiuj notoj de la kanalo N tion faras la komando EN.
La komando CN difinas la muzikilon en la kanalo N. La nombro de muzikilo el 0 ĝis 127 estas en la unua bitoko de la komando. Ekzemple la kanalo povas soni kiel trombono (kodo 57), violono (kodo 40), gitaro akustika kun nilonaj kordoj (kodo 24), gitaro akustika kun ŝtalaj kordoj (kodo 25), gitaro elektra ĝaza (kodo 26) k.s.
La komando BN starigas diversajn kontrolilojn kiuj regas modusojn de kanalo. Ekzemploj: kontroliloj 1, 7, 10, 11 kaj 64, kiuj estas devigaj por realigo en MIDIa aparataro:
La sistemaj komandoj havas kodon 0xF en la unua duono de bitoko. La plej gravaj komandoj havas kodon 0xFF en la unua bitoko. Jen la listo:
Pliaj sistemaj komandoj:
Pli detale vidu Muzikiloj MIDI.
Ĝenerala MIDIo havas 128 diversajn instrumentojn (muzikilojn), kiuj havas kodojn el 0 ĝis 127. Tio estas imito de muzikiloj aŭ, uzante la terminojn de tonsilaba programo Tone, "tonaj tembroj". Ekzemploj de MIDIaj muzikiloj estas piano (kelkaj variaĵoj), akordiono (kodo 21), klarneto (kodo 71).
Krom "tonaj" muzikiloj MIDIo difinas 61 drumojn (frapajn muzikilojn) kun kodoj el 27 ĝis 87. Ekzemploj estas akustika bastamburo (kodo 35), malfermita triangulo (kodo 81).
Tiu ĉi artikolo priskribas nur ĝenerale la formaton de dosieroj MIDI. Pli detale vidu Dosieroj MIDI.
La dosiero MIDI havas prefikson kun longeco 14 bitokoj. La prefikso de dosiero enhavas en unuaj kvar bitokoj tekston MThd. La prefikso enhavas tri gravajn informojn pri la muzika verko:
Kutime kvara noto enhavas inter 48 kaj 192 tikojn, la nombro estas ĉiam dividebla al 12.
Post La prefikso MThd troviĝas trakoj. Ĉiu trako havas propran prefikson, kiu komencas kun teksto MTrk. La prefikso de trako enhavas la longecon de la trako en bitokoj.
La trako mem enhavas sekvencon de komandoj. La komandoj havas variajn longecojn.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.