Címke: asio

MIDI, VSTi gyorstalpaló 2. – host, DAW

Ahhoz, hogy VSTi hangszereket/effekteket stb. használjunk, szükség van egy host programra, ami a plugineket kezeli. Egy host programnak a következő dolgokat illik tudni:

  • MIDI eszközök kezelése
  • hangkártya kezelése (ASIO)
  • legalább egy VSTi betöltése (de mivel a VST technológia pont arra való, hogy több VST-t fűzzünk egymás után pld. hangszer – effekt(ek)); inkább több VST(i) kezelése, egymás után fűzése, ill. párhuzamos használatuk
  • hang rögzítése, keverése
  • plugin –  MIDI paraméterek kezelése
  • beállítások (hangszerelés, MIDI mapping) mentése, egyszerű előhívása

Egy ilyen host program a vsthost, ami a következő előnyökkel is bír:
– egyszerű, kicsi, nem igényel telepítést
– 32 és 64 bites verzió
– 32 / 64 bites pluginok vegyes használata (a 64 bites verzióban)
vsthost


Sokan DAW programot használnak host-nak is, ami további funkciókkal rendelkezik:

  • többsávos audió/MIDI rögzítés (sok-sok VST(i) kezelése egy időben)
  • VSTI sávok “fagyasztása” (erőforrás igény csökkentése érdekében előre kiszámítása és audióként használata a többi sáv – valós idejű – felvételekor)
  • gyári hangszerek, effektek
  • MIDI szekvencer (önálló programként is van, bár ma már inkább DAW a használt)
  • hangmanipuláció, vágás, keverés, stb.
  • mindenféle automatizálás

Egy egyszerű DAW a mulab, ami következő előnyökkel bír:
– tényleg egyszerű, kicsi, nem igényel telepítést
– 32 és 64 bites verzió
– saját moduláris szintetizátor (MUX és polysynth)
mulab

Rengeteg ingyenes, vagy ingyenes verzióval is rendelkező host és DAW található a KVR-en, és szinte az összes nagy gyártó DAW-jából is van ingyenes verzió is.

(2021.09.25)


Korábban: MIDI, VSTi gyorstalpaló

MIDI, VSTi gyorstalpaló – MIDI csatlakoztatás, hang létrehozása

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

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

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

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

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

(2020.12.23.)