|
Az informatikában járatlan muzsikus számára is lehetővé tenni a saját igényeknek megfelelő zenei programok elkészítését, megteremteni a számítógép -valamint a számítógép vezérelte MIDI rendszerek, a számítógépben tárolt numerikus hangfelvételek stb.- és az élőben játszó előadók közti együttműködés összehangolásának lehetőségét, 1988-ban ez a két kívánság vezérelte a Max program fejlesztőit. A program azóta lényegesen többet kínál és a napi gyakorlatban is igazolja a koncertkörülmények közti alkalmazhatóságát. A Max elsődleges zenepedagógiai jelentősége abban, hogy áll program úgy vezet be a zenei programozásba, hogy semmilyen informatikai ismeretet nem feltételez. Ez, a számítógép zenei felhasználása és a MIDI hangszerek iránt érdeklődő muzsikus számára rendkívüli előny. Ezen kívül a Max tanulása és használata olyan készségeket fejleszt, melyekre a gépekkel kommunikálni és a kommunikáció szabályait megérteni akarónak feltétlenül szüksége van. Ezek: a probléma megfogalmazás- és felismerés, a feladat részfeladatokra bontása, stb. Mivel már a legegyszerűbb programozási feladat is elvezet a ha - akkor - különben -fajta elemi döntések készítéséhez (ha az a kritériumnak megfelelő adat érkezik akkor ez történjen, ellenkező esetben pedig az), a Max logikus gondolkodásra kényszeríti tanulóit. A Max grafikus megjelenítésű program. Ennek előnyeit a Word szövegszerkesztőből kiemelt grafikus interfész is jól példázza: a felhasználót pontosan tájékoztatja a grafika az egér érintésére bekövetkező változásokról.
A Max koncepció ennél eredetibb. A képernyő tetején sorakozó ábrákat, az egér segítségével a képernyő "munkaasztalára" hívhatjuk.
Az így "tárgyiasult" ábrák, manipulálható "dobozok", elemi információ kezelési lépésekre alkalmasak. Az információ fogadásának és távozásának helyét a doboz vonalának megvastagított szakaszai jelzik. Az információ szám vagy üzenet formájában a doboz tetején (inlet) érkezik és a doboz alján (outlet) távozik (lásd 3. ábra). Két doboz összeköttetését -az információ irányát és átadását-, a képernyőn is megvalósított kötéssel: az egér segítségével húzott kábelezéssel jelöljük. (lásd 4. ábra). Az információ elindulásának pillanatát és megérkezését a képernyőn ellenőrizhetjük. A képernyőre felrajzolt feladatokat a program felülről lefelé és jobbról balra tartó hierarchia szerint hajtja végre. (lásd 5. ábra)
Tegyük fel, hogy a MIDI hangszeren játszott (vagy a hangszer felé kimenő) hangokat oktávban szeretnénk kopulázni, azaz, minden egyes hanghoz 12 félhangot hozzáadni. A művelet lelke az a +12=b képlet lesz, melyben az a= módosítandó hangmagasság, +12= +12 félhang, b= a keresett hang. A 6. ábrán egy c' (MIDI pitch= 60) kerül a +12 műveletet elvégző dobozba. Az eredmény természetesen a c'' lesz, MIDI jelölése 72. Egy hármas kopulációhoz újabb két alapművelet (-12, +24) beiktatását igényli. (Lásd 7. ábra) Ha az így kapott egyszerű műveletsor vagy patch (folt) csak egy parányi része valamely bonyolult zenei folyamatnak, elképzelhető, hogy a kapcsolások rajzaival mennyire megtelhet a képernyő. Ennek elkerülésére, a "fölülről lefelé, jobbról balra" hierarchia mellett, egy mélységi hierarchiát is kínál a Max. A patcher felirattal ellátott dobozra kattintás után kinyíló ablak, a hierarchia eggyel lejjebbi fokát jelzi. A benne elhelyezett és a bevezető/kivezető dobozokhoz huzalozott transzponáló folt (patch) az ablak bezárása után a "-12+12+24" nevet kapta, ilyen módon, a saját készítésű program-morzsa rendeltetése első ránézésre is rögtön felismerhető lesz. (Lásd 8. ábra.)
Egy patcher-ba is elhelyezhetünk egy patcher-t , abba még egy patcher-t és így tovább. Arra is van lehetőség, hogy a gyakrabban használt fordulatainkat úgy megtanítsuk a programnak, hogy az, az általunk készített foltot (vagy bonyolult műveletsort) a vásárláskor kézhez kapott, "gyári" parancsok közé sorolja. Az absztrakció eljárásával megtanított művelet-sort a saját magunk adta névvel mindig előhívhatjuk. Ezzel lehetőség nyílik az egyéni igényeknek megfelelő, saját művelet-könyvtár létrehozására. A 9. ábra patch-e a hármas transzpozíció egyszerűsített megoldása. Mellette találjuk ennek absztrahált változatát. A -12+12+24 doboz a megtanított műveletsort rejti magában, ezt a nevet írva a parancs-dobozra, az inleten közölt adat a műveletek elvégzése által módosítva távozik az outleten. A dobozra klikkelve meggyőződhetünk erről.
A transzpozíció tehát megoldott. A számítógéphez kapcsolt MIDI hangszeren akkor válik hallhatóvá mindez, ha a művelet eredményét kiadó outletet (10. ábra) összehuzalozzuk a programnak a hangszer felé való kommunikációját szimbolizáló dobozának megfelelő bejáratával. A Max fejlesztői által adott noteout kifejezést parancs-dobozba írva máris összeköttetésben állunk a hangszerrel.
11. ábra Ha az akciós dobozra klikkelve nem történik semmi, annak az az oka, hogy a MIDI hangszer hangkeltésének egyik alapszabályát nem vettük figyelembe: a hangmagasság (pitch, 0-127) közlésével egyidőben elmulasztottuk a hangerőt (velocity, 0-127) és a csatorna (channel, 1-16) számát közölni. Ha a hangszeren megszólaltatott hangot szeretnénk transzponálni, legjobb, ha a szükséges adatokat a hangszer hangjainak belépését megjelenítő doboz kijáratairól vesszük le. A 12. ábra notein dobozának kijáratain, egy forte megütött c' adatait láthatjuk. *
12. ábra Ha a hangmagasság adatát keresztül vezetjük a kívánt műveleten, s az eredményt a program kijáratán, a hangszer felé is közöljük, majd a beérkező hangerő és csatorna adataival is ezt tesszük, az művelet eredménye a fül számára egy időben és teljesen azonos hangerővel fog szólni. A 13. ábra esetében, az 1-es csarornán 110-es hangerővel érkező 60-as hanggal együtt megszólal megszólal az 1-es csatornán egy 110-es hangerejű 72-es hang is. (forte c'- forte c") a hangszer felé menő adatai.
Természetesen a már ismerős, hármas transzpozíciót biztosító dobozt is beiktathatjuk. Az eredmény egy rendkívül egyszerű, hármas transzponálást biztosító program lesz. (Lásd 14. ábra.) dolgozni, milyen jelre induljon és meddig tartson a működése, hogyan szabályozzon, stb. Program nyelvet ugyan nem is kell ismernünk, de a Max esetében sem kerülhető el, hogy a megfogalmazni tudott probléma megoldása érdekében szellemi erőfeszítést tegyünk. Bizonyos jelkezelési ismeretekkel elsajátítása és a számok használatával való megbarátkozás után egyszerű lesz a számítógép és a MIDI hangszerek használata közben felmerülő mindennapos kívánság-típusok teljesítése. Ilyen például a számítógépbe beérkező és valamilyen művelet után a hangszer felé kimenő hang hangerejének szabályozása. A 15. ábrán, a 14. ábra transzpozíciójának hangerejét mutató xy koordináta tengelyről (ahol x= notein velocity, y=notout velocity) leolvasható, hogy a 0-tól 127-ig terjedő skálán a 110-es bejövő hangerőt (x=110) rendeltük kimenő hangerőként (y=110). A bevöjő, változó dinamikájú hangokhoz rendelhetünk pl. állandó mezzoforte (MIDI velocity érték= 64) hangerőt. (Lásd 16. ábra.)
A feladatot egyszerű hozzárendeléssel (velocity out = 64) nem lehet megoldani, mert a lenyomott MIDI billentyű felengedését jelző (a hangszer által küldött) "velocity 0" MIDI üzenet nem változhat: ha ehhez is 64-et adunk, a hang nem fog elhallgatni. A "vel. 0” üzenet fontosságát figyelembe véve a fentebbi kívánságot a következőképpen lehet megfogalmazni: Ha nagyobb szám érkezik, mint 0, akkor küld a potméter által jelzett számot, ellenkező esetben változatlanul engedd át az a hangszerből érkező jelet Másképp mondva, ha a >0 akkor noteout= b, ellenkező esetben a noteout=notein(=0) végrehajtását kérjük. A Max által is érthető képletbe foglalva mindez így néz ki: if $i1>0 then $i2 else $i1. A 16. ábrán látható, az egérrel állíható potméteren 64-et (=$i2) kértem. A hangszeren "forte" megszólaltatott c'-hez (pitch=60, vel.=110), az általam kreált Ampli doboz mezzoforte velocity értéket rendel oly módon, hogy a billentyű felengedésekor küldött "velocity 0" üzenetet változatlanul hagyja. Az Ampli működését a 17/a-b ábra szemlélteti.
Ezt a problémát megoldva, kérhetünk ezen túl egy háromszoros oktáv-kopulációt a számítógép képernyőjén szabályozott (a beérkező hangerőtől független) kimenő hangerővel. Ehhez elegendő létrehozni a 14. és a 16. ábrán közöltek szintézisét. Rendelhetünk tehát minden n >0 hangerőértékhez azonos számot (16.-17. ábra). De szabályozhatjuk a dinamikát a minimum hangerő (1) változatlanul hagyása mellett a maximumérték (127) csökkentésével is (18. ábra), vagy a minimum hangerő emelésével és a maximum érték változatlanul hagyásával (19. ábra), vagy a minimum- és a maximum érték változtatásával, nem beszélve az inverzek és a különböző dinamikai törések szabályozásának és alakításának lehetőségéről.
Mint az előbbiekből is kitűnik, a Max-szel való zenei eredmények eléréséhez meg kell szokni a problémák megoldásának kisseb és még kisebb feladatokra való bontásos eljárását és a grafikus interfész segítségével történő adatkezelést. Már a program tanulása során sok zenei/zenepedagógiai alkalmazás jut az ember eszébe, melyekhez tanulás közben is előállíthat "alkatrészeket". A jól megoldott informatikai Lego-darabkák a későbbiekben időrabló munkáktól (pl. azonos feladatok sokszori újragondolásától és újra megoldásától) mentik meg a programozót. A 20. és 21. ábrán látható compar<> ill. mirror 64 dobozok ilyen célból készültek. A compar<> (tartalmát a lásd a 20/a ábrán) a jobboldali inleten közölt számot (b) hasonlítja össze a bal oldalon érkezővel (a). A két szám közötti különbséget (+, -, 0) a jobb szélső outleten kiírja; ha a >b akkor a jobb középső outlet indító inpulzust ad, ha a =b akkor a bal középső outlet ad indító impulzust, ha a <b akkor a bal szélső outlet ad impulzust.
A mirror doboz (tartalmát a lásd a 21/a ábrán) dallami tükrözések céljára készült. Matematikai nyelven megfogalmazva feladata, hogy a képzeletbeli számegyenesen megjelölt középponthoz képest akkora távolságra helyezzen el egy keresett számot, mint az ellenkező irányban lévő középpont és a megadott szám közti távolság. Vagyis, az inleten (a) közölt és a dobozban írt szám (b) közti távolság (különbség) fele, az inleten közölt és az outleten távozó keresett szám (c) közöttinek (különbségének).** Képletbe foglalva: c =a - 2(a-b)***. A c keresése Max-nyelven így alakul: $i1-2*($i1-$i2) melyben $i= a baloldali outleten érkező szám, $i2= a parancsszó mellé írt szám. A jobboldali outleten a tükrözés új középpontja közölhető.
Ilyen feladatokat néhány hónapnyi tanulás után is meg tud oldani a kezdő, csakúgy, mint egy egyszerűbb partitúra-követő program létrehozását. A "követő" alkalmazhatóságában jogosan kétkedhetnénk a keyboardok jórésze által kínált dallamkövető- és kísérő-automata funkcióinak rugalmatlansága ismeretében. Ezzel szemben a Max follow dobozának megtanított dallam valóban követő kíséretre számíthat. A follow figyeli a beérkező hangmagasságot (outlet) és minden megtanított hanghoz hozzárendel egy akciószámot (balololdali outlet). Ezekhez az akció számokhoz a felhasználó tetszés szerinti eseményeket társíthat. A 22. ábrán látható patch follow-ja a mellette lévő korál dallamához igazítja a hiányzó három szólamot.
A program lelke a szólamok patcher (24. ábra): a benne lévő szelektor dobozok (sel) a follow-ból érkező akciószámok alapján indítják el a hiányzó hangokat, vagy indítanak újabb akciókat. (Mint az "utánütő" nyolcadok és negyedek kalkulációja.)
A follow tartalmazó patch kitűnő példája a számítógép real time (valós idejű, azaz a hangok megszólalásával egy időben történő) zenei alkalmazásának. Kompozíciós szempontból ennél érdekesebb a vegyesW technika: a számítógépen előre rögzített vagy az előadásból felvett zenei események tetszés szerinti keverése. Ehhez azonban már jó eseményszervezői gyakorlatra van szükség. Az ide vezető út során is lehet hasznosat alkotni. Például egy sokoldalú MIDI metronóm elkészítése számos szervezési és kontroll feladat átgondolására ad lehetőséget. A 25. ábrája egy MIDI hangszerhez kapcsolható metronómot mutat. MidiMet (=a program neve), jelenleg a következőket tudja: megadja a hangszeren játszott mérők metronóm értékét (MV); megtanulja a hangszeren játszott mérőket, s a kívánt hangmagasságon (pitch), hangszínen (pgm) és csatornán (chn) mérőütésként visszaadja; mérőt ad a megadott metronóm értéken a hangmagasság, a hangszín és a csatorna kijelölésének figyelembe vételével. Kívánság szerint nyolcadként, triola nyolcadként vagy tizenhatodként is értékelheti a játszottakat.*
A feladathalmaz megoldásának legkisebb építőköve az a művelet, amit az MV-ről időre és a hangszeren játszottak alapján MV-re való átszámolás képvisel. Ennek képlete -figyelembe véve, hogy az MV az egy perc alatt végrehajtott egyenletes ütésekre vonatkozik, s hogy a Max ms-ban számol-, a következő: c =b : a, melyben a = MV vagy a hangszeren játszott mérők közti idö, b = 60000 ms (azaz egy perc), c = a megadott pitch megszólalásai közti idő vagy MV. A 26. ábra program-morzsája található 27. ábra metronóm_elv dobozában. Ez a patch bekapcsolt állapotban a metronóm_elv bejáratán közölt MV alapján egyenletes impulzusokkal indítja el a kért hangot a hangszer fel.
A 25 ábra kezelői interfészénél jóval egyszerűbbet is lehet készíteni. A 28. ábra Brahms követője is csak a legszükségesebb információkat mutatja, mindössze két kicsinyé ablakot nyit a képernyőn. A program Brahms op.36 no. négykezes Walzerének felső szólamait figyeli. A "Brahms follower" a felhasználó által elkezdett (vagy menet közben megváltoztatott) tempóban és dinamikában küldi ki a basszus és középszólam hangjait. Indulás előtt meg kell határozni a transzpozíciót és a start gomb érintésével készenléti állapotba kell hozni a rendszert.
Az előbbi példa programjának elkészítése nem egyszerű feladat és korántsem jelent végállomást. Ezen a ponton túl a Max-szel elért zenei eredmény már csak a felhasználó zenei fantáziáján múlik. A Max oktatásának zenepedagógiai hasznát a számítógéppel való értő zenei kommunikáció iránti ösztönzésben látom. A program építőjáték-szerű megjelenítése kiváló ötlet, mely szemléletességével segíti a MIDI és az informatika ismeretek bevésését. A Max tanúsága, hogy a számítógép nem ellensége a zenének, a jól eltalált zenei alkalmazások létrehozásának egyetlen feltétele a logikus és fegyelmezett gondolkodás. A számítógép és a MIDI iránt érdeklődő gyerekek messzire juthatnak vele. A Max Magyarországon is kapható. A program oktatása megkezdődött Janus Pannonius Egyetem (PTE) énektanár-képző szakán. -------------------------------- * A MIDI hangszerek a kettes és a hexadecimális számrendszer szerint kommunikálnak. A számítógépbe érkező adatoknak a tízes számrendszerre való konverzióját a Max automatikusan végzi. ** Íme a 64-es hang (e') körüli tükrözéskor a keyboard szólama és mellette a megszólaló hangok. Mivel a Max szekvenszerként is használható, megoldható a rögzített anyag rák- és rák tükör forgatása is. Késleltetett (kánon) indítás esetén a játszottak augmentálhatók és diminuálhatók. *** A program áttekinthetőségének érdekében csak azok a "funkcionális" dobozok láthatók, melyek szükségesek a feladat kijelöléséhez. A számolást végző patcher-kat és a huzalozást elfedtem. (1995.) |
