Transcript
MIDI - istorija l Kraj 70-ih: nekompatibilnost elektronskih instrumenata: l Različito dodeljivanje naponskih nivoa svakoj dirki sa klavijature l Različiti standardi za analogne signale takta, trigerovanja i sl. l Različiti standardi za digitalne interfejse: Roland DCB (Digital Control Bus), Oberheim, Yamaha (Key Code).
Različiti standardi:1V/oktavi, 1V/1000Hz
MIDI – istorija (kraj 70ih) l Sintisajzeri u to doba – analogni, monofoni: 1 glas (voice) u jednom trenutku, l Dave Smith – razvoj polifonog sintisajzera (Prophet 5), originalna ideja: jedna sprava sa više glasova (sound producing engines), svi parametri glasova se digitalno kontrolišu. l Promene jednog parametra se digitalizuju i mogu biti primenjene na više glasova istovremeno.
MIDI l Mikroprocesor skenira sve dirke, digitalizuje informaciju: pitch control se dodeljuje prvom slobodnom glasu. l Dve bitne posledice ove digitalizacije kontrolnih parametara: l moguće ih je pamtiti – sintisajzeri sa memorijom. l Kontolne površine (klavijature, pedale..) više nisu deo analognog kola generisanja signala: rođeni su kontroleri.
Potpuna polifonija - preskupo
6-polifoni sintisajzer sa pridruživanjem modula:
Osnovni sastavni blokovi sintisajzera
MIDI l Potreba za razvojem protokola za komunikaciju između kontrolera i kola za generisanje zvuka. l Dave Smith: na uređajima omogućiti konekcije za ulaz/izlaz ovih kontrolnih parametara, i standardizovati protokol na nivou bitnih proizvođača.
MIDI l Dogovori na relaciji USA, Japan, struka i Dave Smith (Sequential Circuits Inc.): AES, New York, jesen 1981.: predložen standard. l Januar 1983.: Dave Smith demonstrira komunikaciju između Prophet 600 i Roland JP-600. l Avgust 1983.: objavljena je specifikacija MIDI 1.0 standarda. l MIDI (Musical Instruments Digital Interface) je rođen: industrijski standardizovan protokol koji omogućava komunikaciju i sinhronizaciju između elektronskih instrumenata, kompjutera i ostale elektronske opreme.
Prophet 600 – Roland Jupiter 6
MIDI l Ukinuta potreba za tzv. wall of synthesizers . Sintisajzeri se prave u rack mount verzijama, jedan kontroler upravlja sa nekoliko sintisajzera. l Već od 1983. MIDI ratifikuju i proizvođači kompjutera: Apple, Commodore 64, Amiga, PC-DOS. l Atari ST se pravi sa MIDI priključcima: standardna mašina po studijima u to vreme.
MIDI l Razvoj sekvencera: uređaji (hardverski ili softverski) koji imaju mogućnost snimanja, editovanja i ponovnog puštanja MIDI sekvenci (kasnije i audio). l MIDI time code: Vremenska sinhronizacija više MIDI sekvenci. l MIDI time code je i danas standard za sinhronizaciju digitalnog audija.
MIDI l U to vreme nisu postojali standardni zvuci za sve sintisajzere kontrolisane MIDI protokolom: MIDI poruke na različitim uređajima proizvodile su različite zvukove. l 1991. uveden General MIDI (GM1) standard koji je standardizovao 128 tipova zvuka zajedničkih za sve sintisajzere: postavljen je standard zvučanja i mesta na kojem se ti zvuci nalaze unutar sintisajzera. l MIDI Manufacturer Asociation (MMA): organizacija koja standardizuje i održava ovu tehnologiju.
MIDI l Dvokanalni audio CD kvaliteta: 10 Mbytes/ min. l MIDI poruke: reda veličine 10 Kbytes/min. l MIDI poruka ne sadrži audio informaciju, već samo instrukcije sintisajtzeru koji zvuk, koju notu, u kom trajanju i koliko glasno da svira.
l MIDI data stream: unidirekcioni, asinhroni sitski protok brzine 32.5 Kbit/sec. l Dužina bitske reči je 10 bita: start bit, 8 bita podataka i stop bit. l Generator MIDI poruke: kontroler (u realnom vremenu) ili sekvencer. Izlazna MIDI poruka se šalje preko MIDI Out konektora.
l Prijemnik MIDI poruke: Sound Module, poruku prihvata preko MIDI In konekcije, na poruku odgovara generisanjem odgovarajućeg zvuka. l Jedan fizički MIDI kanal kojim se prenose poruke je podeljen u 16 logičkih kanala. l upotreba 4-bitne poruke za identifikaciju rednog broja kanala u okviru MIDI protoka
l Putem jedne MIDI konekcije prenosi se 16 nezavisnih strimova , ili kanala MIDI informacija. l MIDI kontroler (sekvencer) se može podesiti da šalje poruke po bilo kom od ovih 16 kanala. l Sa prijemne strane isto: očitavanje bilo kojeg od 16 kanala na raspolaganju.
U ovakvoj konekciji predajnik i prijemnik MIDI informacije moraju biti podešeni na isti kanal:
MIDI THRU konekcija - sledećem u lancu prosleđuje istu poruku koja se pojavljuje na MIDI IN ulazu – svaki modul dobija poruku po svom posebnom kanalu:
PC+MIDI
MIDI poruke l MIDI poruka se sastoji od jednog statusnog bajta (status byte) za kojim slede jedan ili dva bajta podataka (data byte). l MIDI poruke se dele u dve grupe: kanalne i sistemske (channel and system messages). l Kanalne poruke se odnose na odgovarajući kanal. Broj tog kanala je definisan u statusnom delu kanalne poruke. l Sistemske poruke se ne dodeljuju svakom kanalu posebno. Njihov statusni bajt ne nosi informaciju o kanalu.
MIDI poruke l Kanalne poruke se dalje dele na: 1. Channel Voice Messages l Nose podatke o izvođenju muzike, zauzimaju najviše mesta u prenosu MIDI informacije. 2. Mode Messages Informacija o načinu na koji prijemni instrument reaguje na Channel Voice Messages
Channel Voice Messages l Note On, Note Off, l Polyphonic Key Pressure, l Channel Pressure, l Pitch Bend Change, l Program Change, l Control Change messages.
Note On / Note Off / Velocity l Početak i kraj tona su dva nezavisna događaja. l U trenutku pritiska na dirku šalje se Note On poruka l Za njom slede dva bajta podataka: koji je ton u pitanju (key number) i kojom silom je dirka pritisnuta, odnosno brzina kojom se kreće (velocity) l Po otpuštanju dirke šalje se Note Off poruka, za kojom takođe slede ista dva bajta informacija. Note Off Velocity informacija se po pravilu ignoriše.
Aftertouch l Osetljivost na promena pritiska dok je dirka pritisnuta l Ukoliko klavijatura ima sve dirke osetljive na pritisak generišu se Polyphonic Key Pressure poruke – sastoje se od posebnih bajtova podataka o broju dirke i količini pritiska. l Često klavijatura ima samo jedan nivo osetljivosti u jednom trenutku za sve dirke. Tada se generiše Channel Pressure poruka koja ima samo jedan bajt informacija o količini pritiska.
Pitch Bend Change l Modifikacija visine odsviranog tona l Kontrola je najčešće preko pitch bend wheel-a. (šabanajzer) l Opisuje se sa dva bajta podataka zbog potrebe za finom rezolucijom koja je u stanju realno da isprati pokretanje modulacionog točka.
Program Change l Služi za specificiranje tipa instrumenta koji treba da se upotrebi za generisanje zvuka po datom kanalu. l Opisuje se jednim bajtom.
Control Change (CC) poruke l Označene su od #0 do #127 l Za kontrolu različitih opcija u samom sintisajzeru. l Imaju statusni bajt u kojem se određuje na koji kanal se ova kontrolna poruka odnosi. l Prvi bajt podataka sadrži tzv. "controller number", kojim se određuje na koju funkciju prijemnog uređaja se promena odnosi. l Drugi bajt, tzv. "control value , definiše samu promenu
Control Change (CC) poruke l Primer: šaljemo CC #7 poruku (na CC listi broj 7 je Volume Control Change), čime se prijemnom uređaju saopštava da želimo da promenimo nivo izlaznog signala. l Za ovom porukom ide poruka sa informacijom koliki taj nivo treba da bude. l Promene se mogu mapirati dvojako: 1. Override: nosi konkretnu informaciju o novom stanju. 2. Offset: nosi informaciju o podešavanju parametra sa nekim osnovnim inkrementom na gore ili na dole.
Control Change (CC) poruke l CC poruke mogu biti MSB(Most Significant Byte) i LSB (Least Significant Byte) tipa – jednobitne i dvobitne. l MSB tip poruke se koristi za grublja podešavanja - samo jedan bajt dovoljan l LSB tip poruke omogućava finija podešavanja – rezolucija dva bajta l Dosta CC poruka istog tipa postoji i kao MSB i LSB
Bank Select l Bank Select funkcija se koristi kod nekih sintisajzera, u paketu sa Program Change porukama. l Služi za proširenje broja zvukova koji se mogu specificirati u jednom instrumentu. l Sa Program Change porukom može se mapirati 128 zvukova. l Dodatni zvuci se mapiraju dodatkom Control Change poruke ispred Program Change poruke: 16.384 banke od po 128 zvukova. l MIDI ne zna šta se nalazi u kojoj banci. Standarde propisuju proizvođači za potrebe svojih uređaja: Roland (GS), Yamaha (XG) i sl.
Bank Select - primer 1. CC#0 - Bank Select MSB Control Change message 2. MSB vrednost —za izbor konkretne banke 3. CC #32 — Bank Select LSB Control Change message 4. LSB vrednost – za izbor konkretne banke 5. Program Change poruka – za izbor jednog od 128 zvukova u okviru odabrane banke
Control Change poruke l Još neke CC poruke koje se često koriste u praksi: 1. CC#1- modulacija: Dodavanje vibrata ili nekog drugog tipa modulacije 2. CC#64 – sustain: informacija o tome da li je sustain pedala pritisnuta ili ne, odnosno da li ton treba da traje ili ne. 3. Undefined: prazne CC poruke koje mogu biti definisane od strane proizvođača za neke sopstvene potrebe i namene.
System Exclusive (SysEx) poruke l Prenose se informacije specifične i ekskluzivne samo za određeni tip uređaja: globalna setovanja, sadržaj memorije, daljinsko upravljanje kontrolama i sl. l SysEx poruke uvek započinju informacijom o uređaju za koji su namenjene, koju ostali uređaji ne mogu razumeti: SysEx ID. l Nakon nje sledi konkretna instrukcija koja može imati proizvoljnu dužinu.