Virtual Studio Technology
Virtual Studio Technology (VST) je softwarové rozhraní pro komunikaci mezi hostitelským programem a zásuvnými moduly (pluginy), kde tyto moduly slouží ke generování a úpravě digitálního audio signálu. Používá se především v prostředí nahrávacích studií, kde dokáže nahradit některá audio zařízení a simulovat jejich funkci v počítači. Tato technologie byla vyvinuta firmou Steinberg jako otevřený standard dostupný třetím stranám.
Vývojář | Steinberg |
---|---|
Typ softwaru | protokol |
Některá data mohou pocházet z datové položky. |
Přehled
V praxi hostitelský program představuje zejména software pro nahrávání, editaci a produkci hudby a programy pro střih videa. Zásuvné moduly pak realizují analýzu (např. spektrální analyzátor), úpravy (efekty jako chorus, zkreslení) či generování (syntezátor) zvuku.
Moduly nemusí vycházet z reálné předlohy existujícího zařízení, nicméně velká část se zaměřuje právě na emulaci slavných zvukových efektů a syntezátorů a přenáší je do prostředí počítače. Této vlastnosti je využíváno často v nahrávacích studiích, kde se pomocí takovýchto zásuvných modulů dá přiblížit ke zvuku velmi drahých nebo dnes již neexistujících zařízení.
Nastavení parametrů modulu probíhá obvykle přes grafické uživatelské rozhraní, které má často podobu reálných ovládacích prvků simulovaného zařízení, ale existují i moduly s netradičně pojatým rozhraním, které není odvozeno od žádné reálné předlohy, případně se tvůrce modulu může spokojit s nativním grafickým rozhraním daného hostitelského programu. Moduly mohou dále komunikovat pomocí MIDI zpráv, které nastavují jednotlivé parametry modulu. Díky tomuto řešení se pak dá celé ovládání modulu automatizovat.
Historie
Specifikace standardu VST byly poprvé zveřejněny firmou Steinberg v roce 1996. Technologie byla využita v programu Cubase 3, který obsahoval první VST moduly pro úpravu zvuku a firma dala zároveň k dispozici vývojářské nástroje pro tvorbu modulů.[1]
V roce 1999 vznikla specifikace VST 2.0, která přidala podporu zpracování MIDI zpráv. To umožnilo tvorbu modulů samostatně generujících zvukový signál.[2]
V roce 2006 přichází verze rozhraní 2.4, která přináší podporu 64bitových platforem a datových typů a také funguje na počítačích Apple Macintosh s procesory Intel.[3]
Rok 2008 přináší novou generaci standardu VST – verzi 3.0. Mezi hlavní novinky patří především dynamicky se měnící počet vstupů a výstupů. To například umožňuje použít stejný modul jak pro stereo signál, tak pro prostorový zvuk přenášený v šesti kanálech. Stejná vlastnost pak funguje také pro vstup a výstup MIDI zpráv. Další přidanou funkcionalitou je generování zvuku nejen na základě MIDI, ale vstupem pro syntezátor mohou být i zvuková data.[4]
V roce 2011 je uvedena verze 3.5, která využívá technologii „Note expression“. Ta umožňuje nastavovat parametry pro každou jednotlivou notu v polyfonním souzvuku, čímž překonává omezení dané technologií MIDI zpráv – zde jsou parametry tónů nastaveny pro celý kanál a tudíž ovlivňují vždy všechny tóny hrané v daný okamžik.[5]
Zatím poslední verze 3.6 vyšla v roce 2013 a přináší především možnost využívat VST moduly v operačním systému iOS. Ve stejném roce firma ukončila podporu SDK pro moduly verze 2.0. [6]
VST modul
Samotné moduly se dělí na dvě kategorie – VST efekty a VST instrumenty (VSTi)
VST efekty přijímají na svém vstupu již existující digitální audio signál, ten modifikují na základě nastavených parametrů a upravený signál je pak přiveden na výstup. Vstupem mohou být také MIDI zprávy, ty ale slouží jen k ovládání parametrů efektu.
VST instrumenty slouží naopak ke generování zvukového výstupu na základě přijímaných MIDI zpráv – tedy na základě zasílaných tónů a jejich parametrů. Stejně jako u efektů mohou být MIDI zprávy využity také k nastavení parametrů syntézy.
Existují i VST moduly, které se vymykají tomuto rozdělení – existují např. VST instrumenty, jejichž vstupem nejsou pouze MIDI zprávy, ale dokáží přijímat i zvuková data a použít je jako základ pro syntézu (např. vokodér, auto-tune). Jiné moduly umí na základě audio vstupu generovat MIDI zprávy, fungují tedy inverzním způsobem.
Jednotlivé moduly se potom mohou řadit za sebe do signálového řetězce a tím kombinovat různé efekty.
VST host
VST zásuvné moduly nemohou fungovat samy o sobě – ke svému běhu potřebují hostitelský program, který se stará o běh modulu, dodává mu vstupní data, odebírá jeho výstup a zobrazuje uživatelské rozhraní modulu. Hostitelský program může být jednoduchá aplikace, která poskytuje pouze prostředí pro běh modulu, ale může se jednat i o obsáhlé programy pro produkci hudby/videa, kde je podpora VST modulů jen jedna z mnoha funkcí.
Speciálním řešením jsou hardwarově řešené hostitelské stanice či přídavné karty, na kterých běží pouze VST moduly a snižují tak zatížení hlavního počítače, případně se bez něj obejdou úplně.
Presety
Moduly mohou obsahovat mnoho uživatelsky nastavitelných parametrů, ovlivňujících výsledný zvuk a proto byly vypracovány také způsoby, jak toto nastavení uložit a později vyvolat. Takto uložené hodnoty všech parametrů modulu se nazývají Presety a firma Steinberg vypracovala dva formáty pro jejich uložení. Jedná se o soubory FXP pro uložení presetu a FXB pro uložení celé sady (banky) presetů. Nicméně je jen na tvůrci modulu, jaký systém práce s presety zvolí a zda těchto formátů využije anebo bude jejich ukládání řešit vlastním způsobem.
Vývoj VST modulů
Firma Steinberg zveřejňuje vývojové nástroje (SDK) pro tvorbu modulů – zahrnuje rozhraní VST modulů naprogramované v jazyce C/C++, dokumentaci a vzorové příklady. Programátor modulu tedy nemusí od začátku řešit komunikaci a předávání dat s hostitelským programem, ale k tomuto účelu používá již hotový kód. Může se tedy soustředit jen na samotné zpracování a generování zvukového signálu.
Existují i neoficiální verze tohoto rozhraní v jiných programovacích jazycích jako jsou Delphi, Java, C# a další. Druhým balíkem programových tříd firmy Steinberg je VST GUI, kde se jedná o nízkoúrovňové funkce pro tvorbu uživatelského rozhraní a funkcionality ovládacích prvků modulů.
Architektura
Z pohledu hostitelského programu je modul brán jako „černá skříňka“, která má určitý počet vstupů, výstupů a nastavitelných parametrů. Na vstupy hostitel dodává proud dat, která jsou rozdělena na bloky proměnné velikosti a na výstupu modulu pak očekává zpracované bloky dat. Hostitel ovšem nezná strukturu a funkci modulu. Samotný modul pak existuje ve formě vícevláknové dynamicky linkované knihovny (DLL).
V aktuální verzi VST 3.x je modul rozdělen na dvě hlavní části – samotnou výpočetní část zvanou „Processor“ a část „Edit Controller“, která se stará o komunikaci s grafickým rozhraním, nastavování parametrů a také udržuje informace o vnitřní struktuře modulu. Obě tyto části pak musí mít implementována stanovená rozhraní, přes které komunikují s hostitelem. Modul musí počítat i se situací, kdy kontrolní část nebude inicializována a hostitelský program bude využívat jen funkcí výpočetní části. Díky tomuto rozdělení modulu je možné, aby výpočetní části běžely na jiném počítači, než na kterém pracuje hostitelský program. Komunikační kanál mezi výpočetní a kontrolní částí modulu musí zajistit hostitelský program – standardizovaná komunikace jako je například změna parametrů je prováděna přes k tomu určené rozhraní. Obě části si ale mohou zasílat také vlastní nestandardní data – pro tento případ funguje v hostitelské aplikaci mechanizmus zpráv.
Reference
- Steinberg Cubase 3. [s.l.]: Sound on sound, Jul 1996. Dostupné online. (anglicky) .
- Cubase 3.7. [s.l.]: Sound on sound, Sep 1999. Dostupné online. (anglicky)
- Steinberg. [s.l.]: [s.n.] Dostupné v archivu pořízeném dne 2020-07-29. (anglicky) .
- Steinberg. [s.l.]: [s.n.] Dostupné online. (anglicky) .
- Steinberg. [s.l.]: [s.n.] Dostupné online. (anglicky) .
- Steinberg. [s.l.]: [s.n.] Dostupné v archivu pořízeném dne 2014-11-02. (anglicky) .
Externí odkazy
- Obrázky, zvuky či videa k tématu Virtual Studio Technology na Wikimedia Commons
- Steinberg. [s.l.]: [s.n.] Dostupné online. (anglicky) , firma stojící za vývojem standardu VST.
- VST SDK. [s.l.]: [s.n.] Dostupné online. (anglicky) , nástroje pro vývojáře a dokumentace