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.

1. ábra

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.

2. ábra

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)

3. ábra 4. ábra 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.)

6. ábra 7. ábra 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.

9. ábra 10. ábra

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.

13. ábra 14. ábra

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.)


15/a. ábra

15/b. á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.

 

16. ábra 17/a. ábra 17/b ábra

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.

 
18. ábra 19. ábra 20. ábra

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.

20. ábra 21. ábra

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ő.


20/a. ábra


21/b. ábra

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.


22. ábra


23. ábra

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.)

24. ábra

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.*

25. ábra

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.


26. ábra

27. ábra

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.

28. ábra

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.)

 

2007
MAX programok

MAX program-morzsák

Elvek és Modulok (MAX)

2000
Zenei szoftverek


1994
Hamburger és utópia I.
Hamburger és utópia II.

Az orgonától a virtuális akusztikáig

1995
Hogyan tovább?

Max, számítógép, zene, kreativitás

MIDI bibi

Numerikus légypapír?

Zenei programozás, számítógép segítette komponálás

1996
Mire jó a hang számítógépes vizualizációja

Zene az Interneten

1997
Számítógép és notáció

További cikkek
Zenei informatika témában

email