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

  1. é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
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”)

Miditrix: MID bill. összekötve a Windows szintetizátorával
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.)

  1. 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:

SB Live AudioHQ
AudioHQ - beállítások

SB Live Keyboard
Keyboard a lejátszásra

SB Soundfont
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
Bill. - MidiTrix - SB Live

sok be- és kimenet, de a lényeg: két billentyű hajtja az SB szintijét

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

uca202

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:

(2021.11.21.)