Levél a távolból

midi.blog
Felelősség: Gerényi Gábornál
Észrevétel, üdvözlet, kritika, egyebek

Saját termék

fiii.jpg

Könyvek

Sík Zoltán - Gerényi Gábor: MIDI (1992)
(Alapozás és Protokoll)


Kruza Richárd - Banay Gábor:
A szintetizátor a zenei gyakorlatban (1985)

Tagek

112db (2) aas (3) aax (28) abbey road (3) ableton (41) access (2) acoustica (3) adobe (5) aiaiai (3) akai (38) akció (51) alesis (29) allen & heath (4) american audio (3) amidio (2) amvst (2) analizátor (5) analóg (161) analogue solutions (4) android (47) antares (11) apogee (9) apple (32) applied acoustic (2) applied acoustics (4) araldfx (2) arman bohn (2) arp (8) arturia (65) atomosynth (2) au (227) audiomidi (2) audiorealism (4) audiothing (7) audiowarrior (3) audio damage (13) avid (21) behringer (25) best service (2) big tick audio (2) bitwig (9) blue (2) boss (5) brainworx (2) buchla (2) cakewalk (24) camel (2) camel audio (3) casio (7) cat (2) celemony (6) clavia (14) cme (11) commodore (12) creamware (4) csináld magad (9) cycling74 (3) d16 (4) dave rossum (3) dave smith (25) db audioware (2) denon (3) devine machine (2) de la mancha (10) digidesign (24) discodsp (2) discovery sound (2) diy (19) dj (122) dj1800.com (2) dob (25) dobgép (150) doepfer (2) drawmer (2) dreadbox (2) dsk (3) dsp (5) duy (2) dyode (2) e-mu (3) eastwest (5) edgesounds (4) edirol (4) effekt (290) electro-harmonix (2) elektron (8) elektrostudio (2) elka (2) ems (2) ensoniq (2) eowave (5) esemény (146) esi (5) eventide (4) e mu (4) faderfox (4) fairlight (7) five12 (2) focusrite (15) future retro (3) fxpansion (6) garritan (3) gemini (3) generalmusic (2) genoqs (2) gforce (5) gibson (6) gitár (67) goldbaby (2) griffin (2) g sonique (2) hammond (2) hangminta (198) harrison (2) hercules (5) hg sounds (2) hobnox (6) hollow sun (4) hotelsinus (2) hypersynth (3) iconnectivity (4) ik multimedia (78) image line (25) index.hu (4) ingyenes (368) interfész (188) ion (4) ios (56) ipad (227) iphone (159) ipod (9) izotope (14) játék (29) jazzmutant (7) jomox (3) karmafx (2) kártya (2) kenton (5) keverő (39) kiegészítő (9) koblo (2) kong audio (3) kontroller (297) konverter (2) könyv (12) korg (98) kurzweil (4) kv331 (2) kv331 audio (3) kvr (2) lejátszó (3) lemezjátszó (9) lexicon (7) line 6 (5) linn (3) linplug (8) linux (33) lionstracs (3) livelab (2) livid (9) loomer (2) lsr audio (2) m-audio (19) mac (643) macbeth (2) mackie (10) magyar (140) makemusic (2) marantz (2) martinic (2) mawzer (2) mfb (6) microsoft (2) midikönyv (11) mikrofon (2) minta (3) mobil (395) modal electronics (3) modartt (3) monome (6) moog (63) motu (26) muse (2) muse research (6) musicrow (7) music computing (2) musikmesse (3) mutable instruments (5) mutools (2) művészet (20) m audio (16) native instruments (131) nektar (5) niko20 (2) nintendo (4) nomad factory (3) nord (3) novation (30) numark (15) nusofting (6) oberheim (6) ohm (2) ohm force (2) open labs (5) pc (845) peavey (3) percussa (3) pg music (3) pianoteq (16) pinknoise studio (9) pioneer (9) plogue (2) plp (6) plugin (637) powerfx (2) ppg (11) precisionsound (4) preset (2) presonus (7) program (5) propellerhead (32) prosoniq (3) puremagnetik (5) quikquak (6) reason (2) reasonbanks (11) reloop (2) remix (3) retronyms (2) rhythmic robot (3) rme (2) robot (3) rob papen (11) roger linn (7) rögzítő (57) roland (85) roli (2) rtas (198) samplemodeling (2) samplerbanks (2) sample logic (4) schaack audio (2) serato (3) serrano (2) sinevibes (2) slate digital (3) sm pro audio (3) softube (4) sonart (3) soniccouture (2) sonicprojects (2) sonic charge (4) sonic couture (3) sonivox (8) sonnox (2) sonoma (4) sony (24) soundcloud (4) soundscape (5) sound devices (2) spectrasonics (5) ssl (10) stanton (6) steinberg (58) streetly electronics (2) studiodevil (2) studio electronics (3) sugar bytes (5) synapse audio (8) synesthesia (2) syntheway (3) szekvenszer (242) szintetizátor (361) szoftszinti (641) szoftver (469) tal (3) tanager audioworks (2) tascam (21) tc electronic (16) teenage engineering (7) terratec (5) teszt (17) togu audio line (3) tone2 (10) tonebytes (2) toontrack (2) tubeohm (2) u-he (2) ueberschall (5) ugo (2) universal audio (11) uvi (6) vermona (4) verseny (12) vestax (9) videó (7) vienna instruments (2) vir2 (2) virsyn (8) vista (6) vokóder (25) voxengo (3) vrsonic (2) vst (613) waldorf (24) wallander instruments (3) waves (12) wave alchemy (4) way out ware (2) web (204) westgate studios (2) windows (17) workstation (5) wwaym (6) xils (4) yamaha (35) yellow tools (2) zero-g (2) zero g (4) zongora (4) zoom (10) #

Utolsó kommentek

Naptár

február 2020
Hét Ked Sze Csü Pén Szo Vas
<<  < Archív
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29

Gyakorlati tudnivalók

Címkék: midikönyv

2007-01-09 17:06:45

A üzenetek kódolásán túljutva ismerkedjünk meg a MIDI alkalmazásának néhány gyakorlati kérdésével. Elsőként lássunk egy igen fontos technikát, a státusztartást, amit a MIDI-specifikációban és a szakirodalomban Running Status néven hívnak. Ennek alapgondolata a takarékosság; ha lehet, minél kevesebb bájttal kelljen az adónak a vonalat terhelnie.

Egy rövid példa fog segíteni: üssünk le egy három hangból álló akkordot a billentyűzeten. A hangszer MIDI-kimenetén ennek megfelelően három darab Note On üzenetnek kellene megjelennie, a megfelelő csatornakóddal ellátva, a megfelelő billentyű- és dinamikaértékekkel, valahogy így:

90 b1 d1 90 b2 d2 90 b3 d3

9 bájt ideig foglaljuk le ezzel a megoldással a MIDI-vonalat, amiből 3 bájt tökéletesen egyforma! Ezen segít a státusztartással küldött adás - a vevőnek kötelessége megjegyeznie az utoljára érkezett státuszt, az ezután következő, neki megfelelő számú adatbájtot pedig fogjuk fel önálló MIDI-üzenetként, még akkor is, ha ez az adatcsomag nem volt újabb, önálló státuszbájttal bevezetve! Az előző akkord tehát, ezen a módon küldve, így fog kinézni:

90 b1 d1 b2 d2 b3 d3

A sort lehet folytatni is, hiszen ha semmi egyéb MIDI-eseményt nem közlünk közben, a kkor a következő billentyű lenyomásához is csak a két adatbájtot kell elküldeni. Ez időben akár jóval később is történhet, az egyetlen kritérium az, hogy az adó ne küldjön közben más csatornaüzenetet.

Az eljárás természetesen nemcsak a Note On üzenettel működik, hanem valamennyi csatornaüzenettel megtörténhet. Igazi haszna főleg a hajlításnál és a kontrollereknél mutatkozik, hiszen ezen eszközök használata kis idő alatt is nagyon sok MIDI-üzenetet generál, ezek hosszát a státusztartással a kétharmadára lehet csökkenteni. A státusztartás használata adás közben opcionális, minden csatornaüzenetre érvényes, de csak rájuk; egy beérkező egyszerű, vagy valós idejű rendszerüzenet a specifikáció szerint figyelmen kívül hagyható ebből a szempontból, tehát helyes a következő példa:

90 b1 d1 F8 b2 d2 b3 d3

Itt a hármashangzat első és második hangja közé egy Timing Clock státuszú egybájtos üzenet került, amely a valós idejű rendszerüzenetek közé tartozik, így a csatornaüzenetek státusztartását nem befolyásolja. Ki tudja, miért, akadnak azonban olyan hangszerek (pl. a Yamaha DX-ek), melyeknél a státusztartás megtörik az Active Sensing nevű valós idejű rendszerüzenet hatására. Ez természetesen teljességgel legális, csak nem annyira takarékos megoldás.

Az igazán takarékosak (pl. Casio VZ-sorozat) viszont a Note Off üzenetet is behúzzák a Note On státusztartása alá, hiszen a Note Off egyik formája a 0 dinamikaértékkel ellátott Note On. Egy billentyű leütése és felengedése itt a következő bájtsorozatot generálja:

9n b1 d1 b1 00

Az első három bájt a billentyű lenyomásakor, az utána következő kettő pedig a billentyű felengedésekor generálódik. Noha a státusztartást adásnál nem kötelező használni, a vételi oldalon implementálása minden esetben kötelező, hiszen a vevő bemenetére bármikor kapcsolhatnak ilyen technikát alkalmazó adót, melynek az üzeneteit meg kell értenie. Természetesen nem okozhat fennakadást az sem, ha az adó státusztartást nem alkalmaz.

A MIDI-hálózatok kialakításánál számos gyakorlati megfontolást kell figyelembe venni, az eszközök fizikai megvalósítása miatt. Az egyik legalapvetőbb probléma a kábelezés kérdése. A MIDI-specifikáció a MIDI-kábelek maximális hosszát 15 méterre javasolja korlátozni. Ennek oka a közönséges kábelek ellenállása miatt fellépő jelveszteség, mely rosszabb esetben ilyen nagyságrendű kábelhosszaknál kezdhet nehézségeket okozni. Jobb minőségű kábelekkel jóval messzebb elvezethető a MIDI-jel, egyébként ismétlőt (Thru Boxot) kell alkalmazni.

Eddig rendben is van, azonban a dolgokat nem kimondottan technikai nézőpontból vizsgáló felhasználók körében a kábelhossz kérdése valamilyen úton-módon összekeveredett a később még sűrűn emlegetendő MIDI-késleltetés témakörével, mondván: a túl hosszú kábeleken a MIDI-üzenetek a szokottnál később érnek rendeltetési helyükre, ami a rendszert használhatatlanná teszi. Erről természetesen szó sincs, hiszen a MIDI-üzenetek elektromos jelek alakjában utaznak, az elektronok haladási sebessége pedig összemérhető a fénysebességgel, vagyis a százezer km/másodperc nagyságrendbe esik, tehát akár a földgolyó túloldalára is elküldhető, zeneileg érzékelhető késlekedés nélkül.

A MIDI-késleltetés egyébként igen gyakran emlegetett fogalom, és egészen eltérő dolgoknál is elő szokott kerülni. Emlegetik a gitár-MIDI átalakítóknál, itt a húr rezgésének MIDI-üzenetekké való átalakítási sebességét értik alatta, előkerül az egyszerű, egy adó-egy vevő kapcsolatnál, mint reakciósebesség, a hosszú MIDI-láncoknál, mint terjedési késleltetés, és sok más esetben, melyeknek egy közös vonásuk van: az elektronikus eszközök véges feldolgozási sebessége miatt a folyamatok valamekkora idő alatt mennek végbe. A MIDI-késleltetés kapcsán gyakran előfordul a valóságos jelenségek téves értelmezése és a felhasználók emiatt gyakran téves következtetéseket vonnak le.

Az egyik legnépszerűbb ilyen tévhit a MIDI-s eszközök láncba fűzésével kapcsolatos. A lánc kialakítását már láttuk, minden, a láncban szereplő hangszer az őt megelőző eszköz THRU csatlakozójáról kapja bemenetére az üzeneteket (kivéve a legelső vevőt, természetesen). A THRU csatlakozók késleltetése az, amit az elterjedt hiedelem kárhoztat, mondván, akkora nagy késleltetést okoz, hogy négy-öt hangszer sorbakapcsolásának már semmi értelme, a láncban hátul lévőkhöz akkora késleltetéssel jutnak az üzenetek. A valóságban viszont a probléma inkább az, hogy a hangszerek túlnyomó többségében a Hard THRU megoldást alkalmazzák; itt a bemenő jel az IN csatlakozóról egy optoizolátor közvetítésével közvetlenül a THRU csatlakozóra kerül. Az egyetlen késleltetési tényező ez az elektronikai alkatrész, melynek kapcsolási ideje 3 mikroszekundum, vagyis a másodperc egymilliomod részével van egy súlycsoportban. Kapcsoljunk össze akár tíz eszközt, még mindig csak a százezredmásodperces nagyságrendbe kerülünk, ami még mindig kb. százszor kisebb az érzékelhető legkisebb időtartamnál, arról nem is beszélve, hogy egy három bájtos MIDI-üzenet közlése egyébként önmagában hozzávetőlegesen egy ezredmásodpercig tart. Ráadásul, egy hang megszólalásának késleltetésébe keményen beleszól az is, hogy milyen gyors a vevő processzora; ezek sebességkülönbségei ezredmásodperces eltéréseket eredményezhetnek. Ha a lánc végén egy gyorsabb egységet helyezünk el, az esetleg hamarabb is reagálhat a láncon végigfutó üzenetekre, mint a lánc elején álló, lassabb hangszer.

A tévhit elterjedésének egyik oka a 'Soft THRU' megoldás használata bizonyos eszközöknél, ami valóban jelentős késleltetést állít a jelterjedés útjába. Ebben az esetben ugyanis a MIDI-bájt először a központi mikroprocesszorba kerül, feldolgozásra, onnan jut a THRU-ra, így, a processzornál töltött időt nem számítva, legalább egy bájtnyi (ami a MIDI-átvitelben 10 bit) időt késik minden egyes üzenet. Ha pedig a processzornál töltött is beszámítjuk, néhány Soft THRU összefűzésével hamar eljuthatunk akár 20 ezredmásodperces késleltetéshez is, ami füllel már észlelhető. Szerencsére a Soft THRU megoldás olyan ritka, hogy szinte lehetetlen rendszerünket olyan hangszerekből összeállítani, melyek közül mondjuk akár kettő-három alkalmazná ezt az eljárást.

A hosszú MIDI-láncok valódi problémája az alkalmazott optoizolátorok kismértékű jeltorzítása. A logikai 1 és 0 értékekhez rendelt feszültségszintek közül a magasabb feszültségérték tartási ideje elkezd csökkenni az alacsonyabbhoz képest, ami sokszor egymás után ismételve jelentékeny lehet. Ekkor a láncban hátul állóknál bittévesztések fognak fellépni, ami hangok kimaradásában, vagy ellenkezőleg, nem várt hangok, zajok jelentkezésében, és más hasonlóan borzasztó eseményekben nyilvánulhat meg. Ha ezt tapasztaljuk, a rendszert azonnal át kell szervezni, hiszen ebben a formában nem sok mindenre lehet használni. Megoldás lehet bizonyos esetekben az eszközök sorrendjének megváltoztatása, hiszen az optoizolátorok sem egyformák; láttunk már olyan, hét elemből álló láncot, amely egy adott sorrendben teljesen használhatatlanul, egy másik sorrendben pedig tökéletesen működött.

A biztos megoldás a csillaghálózat kiépítése, melyhez egy olyan MIDI-elosztót kell beszerezni, melynek egy MIDI-bemenete és több kimenete van, funkciója pedig roppant egyszerű: a bemenetre érkező jelet valamennyi kimenetére elküldi. ezáltal minden eszköz "első kézből" hozzájuthat az üzenetekhez.

Gyakran érik vádak a MIDI 31250 bit/másodperces átviteli sebességét is, mondván, a követelményekhez képest túl lassú. Valóban, a számítógépes lokális hálózatok 10 vagy 100 megabit/másodpercéhez képest nem túl sok, azonban vizsgáljunk meg egy egyszerű szituációt. Figyeljük meg, milyen késleltetések lépnek fel, ha egy hangszeren leütünk egy billentyűt, és az a MIDI-kapcsolat segítségével egy másik hangszert szólaltat meg! A billentyű leütésének ténye eljut a vezérlő hangszer processzorához, a billentyű kódjával és a leütés sebességével együtt. Ez az első késleltetés, a következő pedig akkor lép fel, amikor a processzor eljuttatja a saját, MIDI-t kezelő kimeneti egységének ezeket az adatokat. A MIDI-kábelen átfolyik a három bájtos kód, majd a vevő bemeneti egysége fogadja, eljuttatja a processzorhoz, amely lefoglal az új hang számára egy hanggenerátort, feltölti az adatokkal, és utasítja a hang elindítására. Ez a teljes folyamat a hangszerekben általánosan használt egyszerű 8 bites processzorokkal akár a 10 ezredmásodpercet is elérheti, ebből a MIDI adatátvitele csak egy ezredmásodpercet vett igénybe. A gond tehát inkább a processzorok kis teljesítménye, nem a MIDI lassúsága. Szerencsére manapság már a 16 bites processzorok egyszerűbb sorozatai is az olcsóbb kategóriába kerültek, így találhatunk példát ezek használatára is, a jövőben pedig szélesebb elterjedésük várható.

El is terjedtek azóta; nemcsak 16 bites, hanem annál sokkal erősebb mikroprocesszorok ketyegnek már a mai hangszerekben, így az előző bekezdésben ismertetett késleltetési tényező ma már sokkal inkább elhanyagolható.

A sebességprobléma nem abban a formában vetődik fel, hogy egy üzenet lassan kerül-e át a vevőhöz, hanem úgy, hogy a vonalat bonyolultabb alkalmazások esetén esetleg telítésbe lehet vinni. Egy dalszerkesztőt használva, ha valaki mind a 16 csatornát egyszerre használja a vonalon, és sűrű eseménysorozatokat küld, például minden csatornán egyszerre végez hajlításokat, mozgat folyamatos kontrollereket, akkor előbb-utóbb találkozik a MIDI-torlódással; bizonyos eseményekhez rendelt üzenetek nem férnek fel a megfelelő időben a MIDI-vonalra, csak később, vagy egyáltalán nem. A legtöbbször gyógyírt jelent e problémára a dalszerkesztő Controller Thin funkciója, amely a folyamatos kontrollereket a kívánt mértékben megritkítja, így kikísérletezhető az a sűrűség, amely már nem okoz torlódást, zeneileg pedig még elfogadható. Ha ez nem járható út, akkor független, párhuzamos MIDI-kimeneteket és kábelezést kell használni a rendszerben.

A már említett MIDI Time Code is felveti a torlódás lehetőségét. Az a berendezés, amely ilyen üzeneteket küld, 6%-ban lefoglalja a MIDI-vonalat, mivel ez egy olyan állandó időkód közvetítését jelenti, amelynek üzenetei másodpercenként többször is tartalmazzák a teljes óra-perc-másodperc-képkocka értékeket - ezt elsősorban mozgóképes anyagokhoz való szinkronizálásra használják. A 6%-os foglaltsági érték egyszerűbb alkalmazásoknál még nem kritikus, az időkód azonban nem kimondottan egyszerű alkalmazásokban használatos, így azok a dalszerkesztők, amelyek ezt a szinkronizációs formát is ismerik, nemritkán egy külön MIDI-vonalat lefoglalnak erre a célra, amelyre zenei üzeneteket nem engednek küldeni.

Gyakran félreértés tárgya a Timing Clock üzenet és alkalmazása is. Ez az üzenet volt ugye a dalszerkesztők egymáshoz szinkronizálásának az eszköze, tulajdonképpen egy órajel. A zenei negyedhang 1/24 része telik el két ilyen üzenet közvetítése között, ebben a dimenzióban szokásos a dalszerkesztők időbeli felbontását megadni; a zenei negyedhangot hány részre képesek még feldarabolni. Az angol elnevezés (Pulses Per Quarternote) alapján ppq-nak rövidítik, a MIDI-óra tehát 24 ppq-val pereg. Igenám, de a dalszerkesztők közt nem ritka a 384 ppq felbontású sem, pazarlás lenne ez? A válasz természetesen nem, a megoldás pedig az, hogy ha egy dalszerkesztő lejátszási sebességét a Timing Clock-hoz igazítják, akkor valójában ugyanúgy a saját belső, nagy felbontású órajeléról működtetik, mint egyébként, ennek időalapját azonban mindig a Timing Clock beérkezési idejéhez igazítják. Lehet, hogy így szabálytalanná válhat az óra a negyedhang 1/24 részéig - a tempóban beállt változást a vevő ennyi idő elteltével tudja észlelni - ez azonban füllel még érzékelhetetlen a hallgató számára.

1 komment

A bejegyzés trackback címe:

https://midi.blog.hu/api/trackback/id/tr1927330

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Sorally · http://www.google.co.hu 2007.06.05. 14:06:26

Riku and Gigu-land!!!!