Ugrás a tartalomhoz

Szerkesztő:Brainiac~huwiki

A Wikipédiából, a szabad enciklopédiából

Szerző:Ned Kelly


MUSICAL INSTRUMENT DIGITAL INTERFACE[szerkesztés]

A MIDI (Musical Instrument Digital Interface) protokoll első változatát 1983 januárjában, vagyis nem sokkal a PC születése után fogadták el. Az emberi fül sajátossága, hogy ha több tisztahang szól együtt, például 220, 440 és 660 hertzen, akkor az összetett hang magasságát azonosnak érzi a tisztán 220 hertzes hang magasságával, még akkor is, ha az összetett hangban ennek az erőssége a legkisebb. Ezért a zenei hangokat a legalacsonyabb frekvenciájú összetevőjük, az alaphang határozza meg. A többi összetevő, a felharmonikusok, az alaphang frekvenciájának a többszörösei. Általában az alaphang amplitúdója a legnagyobb, a felharmonikusoké egyre kisebb; eloszlásukat a hang spektrumának nevezik. A felharmonikusok száma, és az erősségük közötti arányok sok-sok tényezőtől függnek: például attól, hogy a húrt melyik pontján és milyen erővel pendítjük meg, azután attól, hogy a rezonátor - vagyis a hangszer teste - melyiket mennyire csillapítja stb. A felharmonikusokat hangszínként érzékeljük; ez különbözteti meg egymástól például a hegedű és a gitár azonos alaphangra hangolt és megpendített húrjának hangját. A zenei hang alaphangra és felharmonikusokra bontásának matematikai alapjait Joseph Fourier francia matematikus dolgozta ki. Elmélete szerint minden periodikus rezgés felbontható egy alaprezgésre és valahány (esetleg végtelen sok) felharmonikusra. Ezek amplitúdóját a Fourier-féle sorfejtéssel lehet meghatározni. Ez adta az ötletet az elektronikus hangszerek első nemzedékéhez: elektronikus úton, az oszcillátornak nevezett áramkörrel könnyen előállítható tisztahangok összegzésével kell zenei hangokat előállítani. Ezt nevezik frekvenciamodulált (FM) szintézisnek, mert a gyakorlatban a frekvenciaösszegzést a legalacsonyabb frekvenciájú rezgés modulációjával érik el. Egy-egy hang előállításában 4-6 oszcillátor vesz részt, a felharmonikusok erősségét különböző frekvenciaszűrőkkel állítják be. A természetes hangokban a felharmonikusok frekvenciája az alaphang frekvenciájának egész számú vagy legalábbis racionális számú többszöröse, az FM módszerrel viszont tetszőleges frekvenciákat használhatunk a modulációra, s így különleges, akusztikus hangszerekkel nem előállítható zenei hangokat kelthetünk. Az akusztikus hangszerek hangjára a spektrumukon kívül az időbeli lefolyásuk is jellemző: nem úgy szólalnak meg, mintha egy kapcsolóval be- majd kikapcsolnánk őket. Mindig van megszólalási, más szóval felfutási szakaszuk és lecsengési szakaszuk, s e kettő között sokszor egy viszonylag állandó, kitartott szakaszuk is van. A hang időbeni lefolyása függ a hangszertől és a játékmódtól, a leggyorsabb felfutás nyilván az ütőhangszerekre jellemző, utánuk jönnek a fúvós, majd a húros hangszerek. Ez utóbbiak hangjának lecsengése másodperc nagyságrendű is lehet. A frekvenciamodulációban ezért a spektrumot előállító oszcillátorokat az utánzandó hangszernek megfelelően beállított burkológörbe-generátor modul vezérli; ez változtatja a hangzást az időben. Mint az az eddigiekből is kitűnik, az FM analóg technológia; ezt használták a hatvanas években megjelent első elektronikus hangszerek, majd a hetvenes években piacra került első szintetizátorok. A lényege, hogy egy hordozó színuszhullámhoz hozzákevernek egy másik frekvenciájú hullámot. A frekvenciák változtatásával a legkülönbözőbb hullámformák hozhatók létre, ezek pedig nagyon hasonlítanak az egyes hangszerek hangjaira. Ezt az elméletet az elektronikus hangszereiről ismert Yamaha ültette át a gyakorlatba a DX7 szintetizátorban. A fejlesztés során rájöttek, hogy több hordozót, több moduláló jelet használva, élethűbb lesz a hang, valamint többféle hangzás is kikeverhető. Az FM szintetizátor a meghajtótól megkapja a készítendő hullámok paramétereit, ennek alapján állítja elő a hangot. Az első hangszerekbe csak egy vagy néhány spektrumot és burkológörbét építettek be, a szintetizátorokban ezek a spektrumok és burkológörbék már változtathatók, programozhatók voltak. Ma az FM technika nagyon olcsó, az összes szükséges áramkör egyetlen lapkára integrálható. Az FM módszernek két baja van. Az egyik az, hogy nem tudja utánozni az akusztikus hangszereket, mert azok hangjának a spektruma nem állandó az időben; emiatt azonnal felismerhető, hogy a hang elektronikus hangszertől származik. A másik az, hogy véges (valahányadik felharmonikusnál levágott) Fourier-sorfejtéssel csak a viszonylag hosszú és kevés felharmonikusból álló hangot lehet jól visszaadni, a rövid és felharmonikusokban gazdag hangokkal sokkal rosszabb lesz az eredmény. A digitális áramkörök, főként a memória és a processzor árcsökkenése lehetővé tette a digitális hanggenerálás elterjedését; ennek a hangkeltésnek a leggyakoribb formája a hullámtábla (wavetable) szintézis. A hullámtábla hangkeltésnek az a lényege, hogy a memóriában levő hullámtábla digitalizált formában tárolja a megszólaltatandó hangok mintáját. A vezérlőprocesszor innen hívja elő a hangmintát és küldi el a digitális-analóg átalakítóra (Digital-Analog Converter, DAC). A megszólaltatandó hangnak megfelelően előkeresi a hullámtáblából a szükséges minták megfelelő részeit, ezeket összerakja, és ebből jön létre a megszólaló hang. A minta többnyire egy akusztikus hangszer rögzített és CD-minőségben digitalizált hangja, tehát jóval valósághűbb, mint az FM szintézissel előállított hang, mivel tartalmazza a hangzás közbeni spektrumváltozásokat. Némi bonyodalmat okoznak a kitartható hangú hangszerek, azok tehát, amelyeknek addig szól a hangjuk, ameddig lenyomva tartjuk a hangszer billentyűjét; ezeknek a hangját a digitalizált hangminta ismétlésével állítják elő. Az ütőhangszerek rövid lefutású hangját általában teljes hosszában tartalmazza a hullámtábla, a többi hang időbeli lefutását négy szakaszra bontják, és a szakaszokat külön-külön tárolják a hullámtáblában. Így az akusztikus hangszer viselkedését sokkal jobban szimuláló hangzás állítható elő. Például a billentyűleütés és felengedés sebességét érzékelő billentyűzetű (billentésérzékeny) hangszerek hangjának megszólaltatásakor ehhez lehet igazítani a megszólaló és a lecsengő szakasz hangzását. A kitartható hangokat a rendszer a kitartás szakaszának ismétlésével adja vissza; ehhez a periódus végét és elejét egymáshoz kell illeszteni, különben olyan hangot kapnánk, amilyen a tűé, amikor elakad a bakelit hanglemezen. Az ismétlés természetesen még így is rontja a hangminőséget, legalábbis az akusztikus hangszerekéhez képest. Ezért a jó minőségű szintetizátorokban igyekeznek a lehető legtöbb hangot úgy generálni, hogy ne legyen szükség ismétlésre. Az akusztikus hangszerek hangjának a spektruma függ az amplitúdótól: egészen más hangszínt kapunk, ha gyengén fújunk a hangszerbe, pendítjük meg a húrt vagy ütjük le a billentyűt, mintha erősen. Professzionális elektronikus hangszerekben ezért két vagy három hangminta is tartozhat ugyanahhoz a hanghoz, és a billentyű leütésének az erősségétől függ, hogy a hangszer melyik mintát választja, vagy kombinálhatja is őket. Mivel a kártyára telepített memória véges, a hangmintákat tömöríteni kell. Minden gyártó más tömörítést használ. Az eljárás általában nem publikus. Nagyobb mértékű tömörítés esetében sokszor alkalmaznak veszteséges eljárásokat, melyektől a minőség is romlik. Négy Mbájt memóriában ma kb. 700 hangminta tárolható. Egy zongora élethű megszólaltatásához 6-10 megabájtnyi hangmintára van szükség. Így látható, hogy a hullámtáblák használatakor milyen fontos a hang minősége szempontjából a memória mérete. A General MIDI több mint száz hangszer kezelését teszi lehetővé, mindegyiket 10 és fél oktáv hangterjedelemmel. Amennyiben minden hanghoz CD-minőségben külön tárolnánk, mondjuk, átlagosan 1 másodperc hosszúságú hangmintát, akkor több mint 1 gigabájt memóriára lenne szükség. Érthető tehát, hogy a hullámtáblát alkalmazó módszerek fejlesztésének egyik fő kérdése a szükséges memória mennyiségének a csökkentése, észrevehető hangminőségromlás nélkül. Erre kézenfekvő módszer a digitális minták tömörített tárolása; a mintát azután a vezérlőprocesszor csomagolja ki, a billentyű leütésekor. Szerencsére nem kell minden hanghoz külön hangminta. Ha a mintából csak minden második számértéket használjuk fel a hanggeneráláshoz, akkor a hang lejátszása feleannyi ideig tart, a frekvencia tehát az eredeti kétszerese lesz, vagyis egy oktávval magasabb hangot kapunk. Két oktávval magasabb hang előállításához csak minden harmadik számértéket kell figyelembe venni a hangmintában. Ha kétszer használjuk fel valamennyi értéket, akkor feleződik a frekvencia, azaz egy oktávval mélyebb hang generálódik, bár ennek a minősége már észrevehetően gyengébb lesz. Ez a 6-1. ábrán látható.

6-1. ábra Egy oktávon belüli hangok is előállíthatók ezzel a módszerrel, ha a hangmintában nem egész szám a lépésköz, hanem tört, például 1,5. Ekkor a mintában csak minden második számérték van meg, a többi két szomszédos érték közé esik. Az ezekhez szükséges értéket a két szomszédos érték valamilyen interpolációjával, a legegyszerűbb esetben a számtani közepével számítják ki. Az említett 1,5-es lépésközzel a kapott hang frekvenciája másfélszeres lesz. Természetesen minél nagyobb a kiszámított értékek aránya valamely hang előállításában, az a hang annál inkább eltér majd a digitalizált mintától. A MIDI protokollt eredetileg az egymástól különböző elektronikus hangszerek összekapcsolására fejlesztették ki. Ez a protokoll lehetővé teszi, hogy a vezérlőegység - általában billentyűzet - és a hanggeneráló modul elkülönült egységként elváljon egymástól. A köztük zajló MIDI adatfogalom rögzíthető és tárolható. Ennek az adatforgalomnak a lejátszásával a zene később bármikor újra előállítható, szerkesztésével pedig utólag új effektusok vihetők be a zenébe, és persze ilyen adatok számítógépes generálásával is lehet zenét előállítani. Fizikailag a MIDI roppant egyszerű, egyirányú 31,25 kilobit/másodperc sebességű, egy start- és egy stopbitet alkalmazó soros aszinkron csatoló. Csavart érpáros, árnyékolt kábelt használ, a kábel hossza két eszköz között legfeljebb 15 méter lehet. Szabványos, ötpólusú DIN csatlakozója van: két pólust használ az áramhurkos, 5 milliamperes öszszeköttetéshez, egy pólust a kábel árnyékolására, kettőt pedig üresen hagy. A MIDI-kompatibilis eszközöknek külön MIDI bemenetük (MIDI IN) és kimenetük (MIDI OUT) van. Sokszor van MIDI továbbító (MIDI THRU) kimenetük is; ezen továbbítják a bemeneten kapott jelet, így láncszerűen több MIDI eszköz kapcsolható egymáshoz. A kiosztás a következő:

MIDI OUT: 1 - nincs használatban, 2 - árnyékolás, 3 - nincs használatban, 4 - feszültség, 5 - feszültség MIDI IN: 1,2,3 - nincs használatban, 4,5 - feszültség MIDI eszközök A MIDI eszközök két nagy csoportra oszthatók: vezérlőkre és hanggenerálókra. A vezérlő lehet billentyűzet, MIDI kapuval felszerelt számítógép, és szekvenszer, vagyis olyan eszköz, amely valamilyen tárolón, például hajlékonylemezen rögzítheti a MIDI adatokat, és később lejátszhatja őket. Szekvenszerként a számítógép is használható, MIDI-kompatibilis kártyájú PC is, bár a legtöbb PC-s hangkártyának csak MIDI kimenete van, tehát csak lejátszani tudja a MIDI formátumú hangállományokat, fel nem veheti őket. Ezeken a kártyákon a MIDI kimenet többnyire a Roland MPU-401 kapu. A hanggenerálók általában szintetizátorok, bár lehetnek billentyűzet nélküli hangmodulok is. A MIDI-nek 16 logikai csatornája van, vagyis egyszerre 16 különböző hangszert vezérelhet. Ezek a hangszerek lehetnek monofon hangszerek - olyanok tehát, amelyek egyszerre csak egyetlen hangot adnak (ilyenek például a fúvósok), vagy polifon - azaz egyszerre több hangot megszólaltató - hangszerek (ezek közé tartoznak a húros hangszerek is). A mai MIDI hangmodulok egyszerre mind a 16 hangszert megszólaltathatják, de ha láncba kapcsoljuk őket, szét is oszthatjuk közöttük a csatornákat. A MIDI nem írja elő a hanggenerálás módját; az frekvenciamoduláción vagy hullámtáblán alapulhat. MIDI üzenetek A MIDI önálló, MIDI üzeneteknek nevezett bájtsorozatokkal vezérli a hanggenerálást. Minden ilyen üzenet állapotbájttal kezdődik, és az üzenetben csak az állapotbájtnak 1-es a legmagasabb helyi értékű bitje. Az állapotbájt értéke tehát 128 és 255 közé esik, az üzenet többi bájtja pedig 0 és 127 közé. Az üzeneteknek három fajtájuk van: csatorna-, rendszer- és rendszeridőzítő üzenet. A csatornaüzenetek határozzák meg az ezen vagy azon a csatornán szóló hangszer játékát; a rendszerüzenetek valamennyi csatornára vonatkoznak; az időzítő üzenetek a vezérlő és a hangmodul szinkronizálására szolgálnak, ha nem valós idejű billentyűzetjátékkal vezéreljük a hanggenerálást, hanem korábban rögzített MIDI állományok lejátszásával. Az állapotbájt értéke jelzi, hogy milyenfajta üzenetről van szó: a 128 és 239 közé eső állapotbájtok csatornaüzeneteket vezetnek be, a 240 és 247 közötti értékűek rendszerüzeneteket, a 248 és 255 közötti állapotbájtok pedig időzítő üzeneteket. Ezekben az értéktartományokban nincs minden értéknek jelentése, néhányat fenntartottak a jövőbeni fejlesztésekre. Nem minden vezérlő használja az összes MIDI üzenetet - hogy melyiket igen és melyiket nem, az minőségtől és típustól függ -, és nem minden hangmodul érti meg valamennyit. Ebből azonban nem adódik hiba: amelyik üzenetet nem értik, azt figyelmen kívül hagyják. A csatornaüzenetekben az állapotbájt alsó négy bitje adja meg a csatorna számát, a felső négy bit pedig a parancs típusát. A csatornaüzenetek a következők lehetnek: • Hang megszólalása és elhallgatása. Az állapotbájt utáni bájt tartalmazza a hang számát 0 és 127 között; a középső C hang a 60. Az ez utáni bájt a leütés vagy a felengedés sebességét jelzi egy 0 és 127 közé eső számmal. Azok a billentyűzetek, amelyek ezt nem érzékelik, ebben a bájtban a középértéket, 64-et továbbítják. • Billentyűnyomás (aftertouch). A billentyűzet nemcsak a leütés/felengedés sebességét érzékelheti, hanem a nyomás erősségét is. A nyomáserősség változásáról ez az üzenet tájékoztatja a hangmodult. A második bájt itt is a hang számát jelzi, a harmadik pedig a lenyomás erősségét. A minden billentyűre külön megadható billentyűnyomás mellett a vezérlő használhatja a teljes csatornára, vagyis minden billentyűre érvényes csatornanyomás (channel pressure) üzenetet; ez lényegében a játékmódot - erőteljes vagy lágy - jelenti a hangmodul számára. • Hangszerváltás. A vezérlő ezzel az üzenettel határozza meg a csatornán szóló hangszert. A második bájt 0 és 127 közé eső értékének megfelelően 128 féle hangszer választható ki; ha a hangmodulon olyan hangszert akarunk kiválasztani, amelyet az nem ismer, akkor valamilyen előre beállított hangszerre áll rá. A MIDI specifikáció nem adta meg a hangszerkiosztást, azt tehát, hogy melyik hangszerhez melyik szám tartozik. Ezért aztán megtörténhetett, hogy különböző gyártók hangmoduljai más-más hangszer hangján játszották le ugyanazt a MIDI állományt. Az 1991-ben elfogadott General MIDI (GM) specifikáció rögzíti ezt a kiosztást, és az akusztikus hangszerek mellett tartalmaz néhány jellegzetes zajt is (helikopter hangja, telefoncsörgés, szirénázás, taps és még más hangok). A 128-nál több hangszert kezelő rendszer ezeket a kiosztásokat bankoknak nevezett csoportokba osztja; minden bank 128 hangszert tartalmaz, és a bankok közül egy vezérlőszervvel lehet választani. • Valamelyik vezérlés - kapcsolók, pedálok, hangerő, hangszínszabályzó stb. - változása. Alaphelyzetben 127 féle vezérlőszerv definiálható, egy részüknek van fizikai megfelelőjük, más részüknek nincs: ezek programból való vezérlésre szolgálnak, illetve a funkciójuk szabadon definiálható. Az üzenet a vezérlő számát tartalmazza, és az aktuális állapotát is közli egy 0 és 127 közé eső számmal. • Hajlító-potenciométer (pich bend). Ehhez a kezelőszervhez külön üzenet tartozik, s azzal játék közben néhány százalékkal módosítható a hangmagasság. Ennek az állapotát több bit írja le, mint a többi kezelőszervét - szám szerint 14 -, vagyis lehetséges állapotainak száma több mint 16 ezer, s ez finomszabályozásra is lehetőséget ad. Letölthető hangok és ritmusok A rendszerüzenetek valamennyi csatornára vonatkoznak; rendszerüzenet például a csatornák monofon vagy polifon működésének a beállítása. A MIDI-nek az a legnagyobb erőssége, hogy szabályozta az alapműködést, egyszersmind szabadon hagyta az utat a gyártók fejlesztései előtt. A gyártóspecifikus parancsok egy speciális üzenetbe ágyazhatók be; ennek az üzenetnek az elejét állapotbájt jelzi, a szokásos módon, a végét pedig egy lezáró bájt. Ha a modul nem ismeri ezt vagy azt a gyártóspecifikus parancsot, akkor egyszerűen figyelmen kívül hagyja. A gyártóspecifikus parancsok például lehetővé teszik hangminták letöltését a modulba, a Yamaha modulok egy ilyen beágyazott paranccsal ki is kapcsolhatók.