Fórumokra gyakran “beesnek” érdeklődők, akik hozzájutván valamilyen MIDI eszközhöz azonnal zenélni szeretnének, de nem igazán ismerik sem a lehetőségeket, sem a szükséges alkalmazásokat. Nekik készült ez az összefoglaló, kifejezetten a PC-s (egyelőre Windows-os) élő zenélésre fókuszálva. Mellőzöm a részletes leírást, az Interneten bőséges info található a tárgyaltakról. A MIDI protokollról érdemes ezt elolvasni.
1. Adva van egy MIDI eszköz (lehet sokféle, de az egyszerűség kedvéért itt billentyű), használatba kell venni
Többféle eset is előfordulhat: a) MIDI csatlakozó a billentyűn, és a hangkártyán is: csatlakoztatás MIDI kábellel b) MIDI csatlakozó a billentyűn, a hangkártyán GamePort/Joystick: csatlakoztatás GamePort - MIDI kábellel (pld. SB Live)) c) MIDI csatlakozó a billentyűn, PC-n USB: csatlakoztatás USB - MIDI kábellel d) USB csatlakozó a billentyűn, PC-n is USB: csatlakoztatás USB kábellel (effelé tart a világ)
MIDI driver: a) és b) esetben a hangkártyának kell driver, az kezeli a MIDI-t is
- és d) esetben hardver függő, lehet nem kell / nincs (Class Compliant), lehet van hozzá (ekkor célszerű felrakni), lehet mindenképp kell.
Csatlakoztatás után ideális esetben megjelenik legalább egy (két) új eszköz: - amiről jöhet adat (ez a MIDI IN a bemenet) pld. a MIDI billentyű - és amire mehet (ez a MIDI-OUT - a kimenet)
pld. digitális zongora, szinti: ezek ilyenkor hangmodulként használhatók /a MIDI billentyű általában nem ilyen, mert nem fogad adatot/ -> ezzel az iránnyal itt a továbbiakban nem foglalkozom
2. Hang előállítása MIDI-vel külön program nélkül
A sikeres csatlakozás után még nem lesz hang, csak a lehetőség hogy bejöjjön az információ. Segédprogramokkal lehet nézegetni a bejövő MIDI adatokat, azaz hogy miket küld a billentyűzet. Erre tökéletes program az ingyenes MIDI-OX, ami sok minden mást is tud (ezt itt nem vesézném).
egy akkord lenyomása: 3 note on, kis aftertouch, felengedés: 3 note off üzenet - ennyi “jön” a billentyűről - hang nem
Hogy a bejövő hangjegy információból hang legyen, kell valamiféle szoftver is: a) Microsoft GS Wavetable Synth: ez egy beépített szoftverszintetizátor (egy belső MIDI-OUT), ez játssza le a MIDI fájlokat Windows alatt.
Természetesen MIDI eszközzel is használható, kell egy segédprogram, ami összeköti a billentyűt (MIDI-IN) a modullal.
Erre jó a MidiTrix (a MIDI-OX is tudja természetesen) - lássuk: - sor(ok) MIDI bemenet(ek) /adatot küldő port/ - oszlop(ok) MIDI kimenetek /adatot fogadó port/ - a “mátrix” cellájában a pötty jelzi az összekötést - egérrel ki-be kapcsolható - természetesen több pötty is lehet (pld. ha több billentyűt kell egy modulra “kötni”)
X-Station összekapcsolva a Windows hangmoduljával - nem szerencsés párosítás :)
Sajnos élő zenélésre ez alkalmatlan, mert a a billentyű lenyomása és a hang megszólalása közötti 1/10 sec késést tudtommal nem lehet csökkenteni. (Bár ez is késleltetés, nem ez a “Latency”-ként említett késleltetés - lásd később.)
- SB Live és társai kártyák (e rész felett eljárt az idő, de volt ilyen is) önálló szintetizátorral: akinek ilyen hangkártyája van szerencsés, mert a kártya saját szintetizátora késleltetés nélkül használható - és rengeteg hangszín/készlet található hozzá Soundfont formátumban. A gyári SB Live driverben van egy alkalmazás, amivel “összeköthető” a billentyű meg a kártya saját szintetizátora:
AudioHQ - beállítások
Keyboard a lejátszásra
SoundFont a hangkészlet(ek) betöltésére
de itt is használható a MidiTrix (itt ugyan kxdriver-el van használva az SB Live - lásd később):
Bill. - MidiTrix - SB Live
sok be- és kimenet, de a lényeg: két billentyű hajtja az SB szintijét
- Telepíthető (MIDI eszközként látszódó) szoftver szintetizátorok https://coolsoft.altervista.org/en/virtualmidisynth
https://www.synthfont.com/SyFon_news.html
vagy midi driver+vsti megoldással: https://www.mudlord.info/products.html pld. Yamaha S-YXG50 vsti https://veg.by/en/projects/syxg50/
3. Hang előállítása önálló szoftverrel
Mint kiderült, a 2.b eset kivételével nem tudunk élőben (valós időben) zenélni külső program nélkül. a) önálló hangkeltő alkalmazások Nagyon sok program található, majd később lehet szóba kerül pár (pld. Abox) - a világ mindazonáltal a plugin felé megy, az univerzális használhatóság miatt.
b) VST technológia A VST (Virtuális Studió Technológia) lehetővé teszi virtuális hangszerek / effektek egyszerű használatát (https://en.wikipedia.org/wiki/Virtual_Studio_Technology).
Fő jellemzők: host - plugin felépítés: ez a két összetevő kell ahhoz, hogy megszólaljon a hang :) - host: egy futtatható program, ami biztosítja a pluginnak a működési környezetet - plugin: ez a tulajdonképpeni hangszer/effekt (minimum egy “.dll” file), amit “betöltünk” a host-ba és csinál valamit: - VSTi: hangszer plugin - általában MIDI bemenetre hangot ad ki (a hangkeltés módja bármilyen lehet) - VST: effekt plugin - általában hang bemenetre hangot ad ki (pld. visszhang effekt) - VST Midi: - általában MIDI bemenetre MIDI-t ad ki - pld. arpeggio - egyéb: pld. oszcilloszkóp - a pluginok lácolhatók értelemszerűen, azaz pld. egy VSTi után több VST effekt jöhet sorban - hangszín bankok/programok (fxb/fxp) kezelése
Az egyik legegyszerűbb host az ingyenes savihost. A savihost.exe-t a VSTi .dll-je mellé másolva, annak nevére átnevezve (pld. synth.dll esetén savihost.exe=synth.exe) használható (vagy az indításkor adjuk meg). A beállított VSTi-t betölti, és a hang, MIDI eszközök beállítása után billentyűről (MIDI és/vagy PC) lehet is játszani. Tud bankokat/programokat kezelni, és a hangot wav-ba el lehet menteni.
savihost-VSTi: felkészülni, vigyázz, zaj!
MIDI, VSTi gyorstalpaló 2. - host, DAW
4. Késleltetés - megoldása
Ha idáig eljutottunk, valószínű belefutunk a “késik a hang”, azaz a latency problémájába.
A Windows-ban többféleképp lehet a hangeszközöket kezelni https://www.staudio.de/kb/english/drivers/, alapvetően az üzembiztos lejátszásra van a rendszer kialakítva. Ezt többek között megfelelő méretű pufferekkel érik el, ami bár jelentős késleltetést (kb. 50 ms) okoz, a rendszer foglalttá válásakor is biztosítja a folyamatosságot, azaz nem fogy el a hang.
Az élő zenéléshez viszont minimális (10 ms alatti ajánlott) késleltetés kell, mert különben érezni lehet, hogy nem a billentyű lenyomásakor szólal meg a hang. Erre megoldás az ASIO protokoll, amely - idézet: “egy kis késleltetésű kommunikációs csatornát biztosít a szoftverek, és a hangkártya között”.
ASIO-t a következőképpen használhatunk: - amennyiben van a hangkártyánkhoz gyári ASIO driver, ez a legjobb, használjuk azt - az SB széria bizonyos kártyáihoz (pld. Live) használható a kxdriver a gyári driver helyett, ez támogatja az ASIO-t (az SB Live gyári drivere nem támogatja) - a ma jellemző alaplapi és USB hangkártyák esetén jöhet szóba az ASIO4ALL univerzális ASIO driver, mely a meglévő WDM drivert kiegészítve ASIO képessé teszi a hangkártyát
Ezek után az ASIO kiválasztható a host programban, és lehet állítgatni a késleltetést az ASIO vezérlőpanelen.
kxdriver - ASIO setting - általában elég
Röviden: érdemes addig csökkenteni a puffer méretét, amíg még nem szaggat a hang. (A pufferméret egyenes arányban áll a késleltetéssel, viszont nagyon kicsi puffer hamar kifogy, ha a CPU-nak nincs ideje kiszámolni a hangot időre.)
Update:
A bejegyzés írásakor még az SB Live kártyát használtam. Időközben Windows 7, Windows 10 alatt egyrészt újabb fajta hangkezelési módok (WASAPI, WAVERT) jelentek meg, másrészt az alaplapi hangkártyákkal külön szoftverek nélkül is egész használható késleltetés érhető el - lásd böngészőből használható hangszerek:
MIDI, VSTi gyorstalpaló 8. – böngészőből használható hangszerek
Ettől függetlenül érdemes egy külön hangkártyát használni a zenélésre már csak azért is, hogy pld. a Windows rendszerhangok - ha nem tiltottuk le őket - ne zavarjanak be. Nekem a BEHRINGER UCA202 kártyája vált be, ASIO drivere is van, ill. optikai kimenettel is rendelkezik - amit használva voltaképp elérjük, hogy a hangkártya semmit sem csináljon :) - (és vsz. ez a legolcsóbb erre a célra).
Amennyiben több hangkártya (és egy HDMI-n összekötött TV is az) van a gépben, hasznos egy parancsikont az asztalra tenni, amivel kiválasztható a Windows alapértelmezett hangeszköze: C:\Windows\System32\control.exe /name Microsoft.Sound.
További tippek, leírások:
- a Cantabile host írójától egy leírás win PC hang optimalizálásról: https://www.cantabilesoftware.com/glitchfree/
- a benne említett monitorozó program: https://www.resplendence.com/latencymon/
- egy angol alaposabb (és frissített) leírás, főként MIDI és Win szempontjából: https://haskell.cs.yale.edu/euterpea/midi-on-windows/
- illetve linux alatti tippek: https://www.rosegardenmusic.com/tutorials/qsynth-rosegarden/
- windows hangkezelés: https://web.archive.org/web/20160508033625/https://donyaquick.com/midi-on-windows/_
_https://promos.chooch.us/archives/479/
- windows tippek - latency monitor: https://www.native-instruments.com/…
- latency checker: https://www.thesycon.de/deu/latency_check.shtml
(2021.11.21.)