Regisztráció és bejelentkezés

Szakterületi keretrendszer zenei vizualizációhoz

Korábbi tanulmányaim során megismerkedtem a szakterületi nyelvek témakörével, melyek széleskörű felhasználhatóságát azóta is lenyűgözőnek találom. Eleinte a célom egy olyan nyelv megalkotása volt, amely a közismert táblás játékok szabályrendszerét képes leírni. A feladat sikeres teljesítését követően a villamosmérnöki szemléletmódhoz közelebb eső, a beágyazott rendszerekhez kapcsolódó témakört kerestem. Így jutottam el egy olyan rendszer ötletéhez, amelyben változtatható fényerejű és színű LED sorok vizualizálnak zeneszámokat. Az ötlet újdonsága, hogy a felhasználó egy intuitív szakterületi nyelv segítségével testreszabhatja a vizualizációs algoritmust, így minden zenéjéhez egyedi megjelenítést adhat meg. A TDK dolgozatomban az ötlet megvalósítását mutatom be, valamint esettanulmányok segítségével illusztrálom az elkészült rendszer működését.

A szakterületi nyelv leírásához a JetBrains Metaprogramming System (MPS) fejlesztőrendszert alkalmaztam. Az MPS a nyelv definíciója alapján egy projekcióalapú szerkesztőfelületet ad, ami a felhasználót végigvezeti a vizualizáció leírásának folyamatán. Az MPS biztosítja, hogy a felhasználó ezen a magas, könnyen érthető absztrakciós szinten fogalmazhassa meg a logikát, amiből aztán alacsonyabb szintű kódot generálok. A generált kód értelmezését egy modern C++-ban megírt asztali alkalmazás végzi, amely a zenék lejátszásáért, spektrumának számításáért, valamint mindez grafikus megjelenítéséért is felelős. Az asztali alkalmazás soros porton keresztül kommunikál egy STM32 mikrokontrollerrel, mely előállítja a spektrum és a színpaletta szerint a LED-ek vezérlésére alkalmas adatokat, és ezt a LED-szalagok felé továbbítja is. A felhasználó vizualizációs programja és a zene spektruma közösen szabályozza a színhatásokat, valamint a fényerőt.

Ahogy a fentiekből látszik, dolgozatomban egy magasszintű szoftveres megoldást, valamint egy keretrendszert adok, ami a hardverszintű vezérlést teljesen elrejti a felhasználó elől, mégis teljes szabadságot nyújt neki a zenei vizualizáció testreszabásában.

szerző

  • Balogh Ákos
    Villamosmérnöki szak, alapképzés
    alapképzés (BA/BSc)

konzulens

  • Dr. Mezei Gergely
    egyetemi docens, Automatizálási és Alkalmazott Informatikai Tanszék

helyezés

Jutalom