Bakalářská práce - Programování VST

Ozvučení, nahrávání, mixáž a mastering
Uživatelský avatar
Niro
Příspěvky: 28
Registrován: 18 říj 2011 14:22

Bakalářská práce - Programování VST

Příspěvek od Niro » 13 úno 2014 22:39

Vážení kolegové,
jako téma mé diplomové práce jsem si zvolil Úpravu vokálních stop. V rámci této práce musím vytvořit off-line program v Matlabu, ale hlavně real-time implementaci efektu v podobě VST pluginu. Efekt bude složen z několika modulů zapojených v sérii, konkrétně kompresor, filtr, delay, případně reverb. Co se týká GUI, mělo by být co nejjednodušší. Uživateli bude zastíněna většina ovládacích prvků, které budou nahrazeny jedním knobem řídícím záběr v rámci hraničních hodnot presetů, například pro mužský či dámský zpěv nebo rap.

Plugin bude implementovaný v programovacím jazyce C++ s použitím knihoven VST SDK a VST GUI. Pročetl jsem dokumentaci SDK i s příklady, zkusil překlad ve Visual Studiu a nastudoval teorii problematiky. Nyní se blížím k bodu, kdy musím začít programovat, neboť mám jen tři měsíce do odevzdání. Co se týká kompresoru a zpožďovacího efektu, myslím si, že to nebude zas takový problém. Starosti mi ovšem dělá ekvalizér. Pravděpodobně budu muset udělat FIR či IIR filtr. Zatím to pro mě je relativně abstraktní záležitost.

Nicméně víc hlav víc ví, proto jsem se rozhodl umístit svůj příspěvek na tomto fóru. Pokud máte někdo zkušenosti s programováním VST a jste ochotní se podělit o své zkušenosti, budu jedině rád za vaše rady a připomínky. Další co mi vrtá hlavou je, jak budu plugin testovat. Určitě dojde na uživatelské testování, už jsem kontaktoval některé kolegy z nahrávacích studií. Otázkou je však, jak testovat například zda má filtr správnou odezvu. Napadá mě například odezva na bílý či růžový šum a analýza výsledků, ale opět se pohybuji jen v teoretické rovině.

Předem děkuji za jakékoli nápady, návrhy a rady jak už ohledně VST implementace tak i co se týče testování

Uživatelský avatar
dendy
Příspěvky: 12767
Registrován: 12 črc 2002 11:16
Vybavení

Re: Bakalářská práce - Programování VST

Příspěvek od dendy » 13 úno 2014 23:05

tu najdes vsetko co potrebujes vediet
http://www.musicdsp.org

pripadne si este pozri toto - tam mozes experimentovat nez vysledok nakodis rucne v c++
http://www.synthmaker.co.uk

Brooklyn / juanita juarez
Profesionál
Příspěvky: 3559
Registrován: 06 úno 2005 01:03

Re: Bakalářská práce - Programování VST

Příspěvek od Brooklyn / juanita juarez » 14 úno 2014 10:29

btw. vsechno k sdk uz mas? steinberg pred nedavnem skoncil s sdk 2x a odted ma oficialne jen verzi 3.

Uživatelský avatar
Amorph
Moderátor
Příspěvky: 4612
Registrován: 24 lis 2005 22:22

Re: Bakalářská práce - Programování VST

Příspěvek od Amorph » 14 úno 2014 10:55

musicdsp.org je vybornej zdroj, najdes tam myslim vsechno co potrebujes.

Na equalizer v zasade FIR ani IIR nepotrebujes. Staci polynomialni filtry. Na musicdsp najdes celkem dost implementaci a algoritmu, ktere muzes rovnou pouzit nebo se jima aspon inspirovat. Jako vetsi orisek bych videl spis reverb. Ten se da sice realizovat jeste pomerne jednoduse pomoci site polynomialnich resonancnich filtru, ale asi nebude uplne jednoduche ho vyladit tak aby znel dobre. Pripadne muzes pro reverb zkusit nejaky jednodussi konvolucni algoritmus, to by mohla byt dobra cesta.

Pro testovani bych zvolil asi neco jako odezvu na harmonicky signal pro ruzna nastaveni filtru a ruzne zabery kompresoru.

AndreeeCZ
Příspěvky: 23
Registrován: 08 srp 2011 23:36

Re: Bakalářská práce - Programování VST

Příspěvek od AndreeeCZ » 14 úno 2014 19:22

Urcite musicdsp.org, taky na kvr forech je dost informaci.
Nejjednodussi je prostudovat jak to delaj uz exitujici pluginy:
http://sourceforge.net/projects/calf/
http://sourceforge.net/projects/tap-plugins/
http://eq10q.sourceforge.net/

Uživatelský avatar
Lahi
Příspěvky: 55
Registrován: 28 bře 2011 20:23

Re: Bakalářská práce - Programování VST

Příspěvek od Lahi » 17 úno 2014 18:01

Ja som robil ako diplomovku v Matlabe reverb, ktorý som potom implementoval na DSP prípravku od Texas Instruments, hralo to v real-time dosť v pohode (robil som tri typy podľa veľkosti virtuálnej miestnosti + dobu dozvuku, ak by niekto chcel, poskytnem ukážku a viac info), a parametre signálovej štruktúry čo som vytvoril (inšpirácia z Gardnerovho a Moorervho typu reverbu z teoretických prác) sa dali prepínačmi v reálnom čase meniť bez nutnosti buildovať celý program odznovu. Tak možno budem schopný dačo do témy prihodiť.

A testovať, resp. merať to nie je problém, ale naozaj záleží od toho, aké ekvalizéry tam chceš dávať. Porovnať teoretický predpoklad s nameraným potom nie je ťažké, buď šumom, alebo jednoduchšie jednotkovým impulzom a potom cez Fvtool v Matlabe. Matlab má docela dobré tooly na vytváranie filtrov aj cez šikovné GUI, kam si len napcháš vlastnosti, frekvencie, rád filtra atd.
Tak či tak, to budeš robiť in-the-box, takže teoretické predpoklady od konečného výsledku by sa veľmi líšiť nemali.

Uživatelský avatar
dendy
Příspěvky: 12767
Registrován: 12 črc 2002 11:16
Vybavení

Re: Bakalářská práce - Programování VST

Příspěvek od dendy » 17 úno 2014 18:20

mohol by sa sa podrobnejsie rozpisat ? hlavne by ma zaujimalo na akom konkretne dsp boarde od TI si to robil, a ako sa da z matlabu algorytmus prehodit do dsp chipu ? to matlab to potom vypluje ako c-ckovy kod, ktory skompilujes pre dany dsp chip alebo ?

Uživatelský avatar
nixx
Příspěvky: 753
Registrován: 25 led 2008 23:18

Re: Bakalářská práce - Programování VST

Příspěvek od nixx » 17 úno 2014 18:31

Niro: Jen pro zajímavost - na jaké škole to děláš? FEL ČVUT?

Uživatelský avatar
Lahi
Příspěvky: 55
Registrován: 28 bře 2011 20:23

Re: Bakalářská práce - Programování VST

Příspěvek od Lahi » 17 úno 2014 20:58

dendy píše:mohol by sa sa podrobnejsie rozpisat ? hlavne by ma zaujimalo na akom konkretne dsp boarde od TI si to robil, a ako sa da z matlabu algorytmus prehodit do dsp chipu ? to matlab to potom vypluje ako c-ckovy kod, ktory skompilujes pre dany dsp chip alebo ?
Bol to TMS320C6711DSK (LPT port ) na ktorom som mal ešte napojenú takú externú zvukovú kartu, lebo C6711 má len nejaký elementárny zvukový prevodník
a karta bola aspoň 48 kHz / 16-bit. Od prírody som nie zrovna super programátor, nebaví ma moc kukať na riadky kódu, tak som niekoľko mesiacov hľadal spôsob, či sa dá obísť celá tá mašinéria písania kódu od nuly a našiel som pre staršiu verziu TI Code Composer Studia taký softvérový link, resp. knižnice a moduly v staršom Matlabe, cez ktorú sa dalo spraviť to, že celé programovanie, prekladanie a build za teba robil ten soft, jediné čo bolo treba spraviť, je navrhnúť a vybudovať v Simulinku signálovú štruktúru, nahodiť do tej schémy typ DSP dosky, nastaviť si parametre toho procáku (registre, pamäte, I/O atď) a proste stlačiť build a nechať Simulink a CCS Studio pracovať. Do 1-3 minút, podľa náročnosti schémy a štruktúry to celé skompilovalo program a naloadovalo to do tej dosky a wuala, hralo to (teda, ako kedy :D :D :D ). Čiže celkovo sa človek nemusel moc zaoberať spôsobom, ako sa k tomu dostať, ale už len realizáciou.

Samozrejme to znie takto možno príliš ľahko, ale len polroka som lovil a hľadal informácie po helpoch, supportoch, AESkách a neviem ešte kde, či je to vôbec možné, plus nastaviť tie veci pre potreby toho programu.. Samozrejme bez teoretických znalostí o reverboch tam človek mohol patlať schémy a bloky do nekonečna. Myslím, že okrem zvukových vecí sa na tom dá spraviť rádiový prijímač, dekódery atď..
Aj som to chcel ešte cibriť, ale už mi na to nezostalo moc času, ale plánujem si tú svoju schému nahodiť do Max for Live, ak sa vysomárim, ako tam robiť device-y.
dave_rev.mp3
(2.3 MiB) Staženo 31 x
Použil som zvuk z interview s Daveom Gahanom z nejakého rádia, kde som našiel fakt dosť dry zvuk bez dozvukov.
(Dave Gahan Interview on Soundcheck 2012). V ukážke sú tri cesty/reverby, ktoré sa prepínali počas chodu binárnym prepínačom, ktorý je na tej doske.
Môj favorit je ten dlhý, v ostatných dvoch je počuť trochu rezonancií a trepotavej ozveny.

Uživatelský avatar
Lahi
Příspěvky: 55
Registrován: 28 bře 2011 20:23

Re: Bakalářská práce - Programování VST

Příspěvek od Lahi » 18 úno 2014 10:31

Niro, s tým testovaním/meraním by som ti vedel poradiť, v Matlabe som spravil takých meraní na tony, možno aj čo-to o tých ekvalizéroch poradil. Tipujem, že tam asi nebudeš robiť nejaký viacpásmový parametrický (kto pozná pluginy CLA od Waves, je to v princípe podobný bundle ako popisuješ ty), ale len nejaký jednoduchý EQ s top boost, presence atd. Tie EQ sú možno jednoduchšie, ako si myslíš, na druhú stranu neviem aké je to kódovanie okolo.

Na reverb by som sa v tom tvojom VST vykašlal, z vlastnej skúsenosti viem, že je to kapitola sama o sebe na tak krátku dobu do dokončenia. Ako si sám povedal, radšej , nejaký zpožďovač - obyč. delay, stereo delay, filtrovaný delay..

Uživatelský avatar
Niro
Příspěvky: 28
Registrován: 18 říj 2011 14:22

Re: Bakalářská práce - Programování VST

Příspěvek od Niro » 18 úno 2014 16:19

Díky všem za nápady, po konzultaci s docentem jsme reverb vypustili, raději si pohraji více s delay.
nixx: studuji na Vysokém Učení Technickém v Brně, Fakultu Informačních Technologií
Lahi: to by bylo super, trochu jsem ty filtry prostudoval, ale ještě tam mám celkem mezery
Jinak všem, kdo by měl podobnou problematiku a nevěděl odkud čerpat, doporučuji knihu THE AUDIO PROGRAMMING BOOK (Richard Boulanger)

Brooklyn / juanita juarez
Profesionál
Příspěvky: 3559
Registrován: 06 úno 2005 01:03

Re: Bakalářská práce - Programování VST

Příspěvek od Brooklyn / juanita juarez » 20 úno 2014 13:48

Lahi píše:
dendy píše:mohol by sa sa podrobnejsie rozpisat ? hlavne by ma zaujimalo na akom konkretne dsp boarde od TI si to robil, a ako sa da z matlabu algorytmus prehodit do dsp chipu ? to matlab to potom vypluje ako c-ckovy kod, ktory skompilujes pre dany dsp chip alebo ?
Bol to TMS320C6711DSK (LPT port ) na ktorom som mal ešte napojenú takú externú zvukovú kartu, lebo C6711 má len nejaký elementárny zvukový prevodník
a karta bola aspoň 48 kHz / 16-bit. Od prírody som nie zrovna super programátor, nebaví ma moc kukať na riadky kódu, tak som niekoľko mesiacov hľadal spôsob, či sa dá obísť celá tá mašinéria písania kódu od nuly a našiel som pre staršiu verziu TI Code Composer Studia taký softvérový link, resp. knižnice a moduly v staršom Matlabe, cez ktorú sa dalo spraviť to, že celé programovanie, prekladanie a build za teba robil ten soft, jediné čo bolo treba spraviť, je navrhnúť a vybudovať v Simulinku signálovú štruktúru, nahodiť do tej schémy typ DSP dosky, nastaviť si parametre toho procáku (registre, pamäte, I/O atď) a proste stlačiť build a nechať Simulink a CCS Studio pracovať. Do 1-3 minút, podľa náročnosti schémy a štruktúry to celé skompilovalo program a naloadovalo to do tej dosky a wuala, hralo to (teda, ako kedy :D :D :D ). Čiže celkovo sa človek nemusel moc zaoberať spôsobom, ako sa k tomu dostať, ale už len realizáciou.

Samozrejme to znie takto možno príliš ľahko, ale len polroka som lovil a hľadal informácie po helpoch, supportoch, AESkách a neviem ešte kde, či je to vôbec možné, plus nastaviť tie veci pre potreby toho programu.. Samozrejme bez teoretických znalostí o reverboch tam človek mohol patlať schémy a bloky do nekonečna. Myslím, že okrem zvukových vecí sa na tom dá spraviť rádiový prijímač, dekódery atď..
Aj som to chcel ešte cibriť, ale už mi na to nezostalo moc času, ale plánujem si tú svoju schému nahodiť do Max for Live, ak sa vysomárim, ako tam robiť device-y.
dave_rev.mp3
Použil som zvuk z interview s Daveom Gahanom z nejakého rádia, kde som našiel fakt dosť dry zvuk bez dozvukov.
(Dave Gahan Interview on Soundcheck 2012). V ukážke sú tri cesty/reverby, ktoré sa prepínali počas chodu binárnym prepínačom, ktorý je na tej doske.
Môj favorit je ten dlhý, v ostatných dvoch je počuť trochu rezonancií a trepotavej ozveny.
dobra prace!

Uživatelský avatar
Lahi
Příspěvky: 55
Registrován: 28 bře 2011 20:23

Re: Bakalářská práce - Programování VST

Příspěvek od Lahi » 20 úno 2014 14:30

Diky, chcel som to ešte dokončovať a vypiplávať do user friendly použitia, ale nakoľko som začal dosť neskoro riešiť tú prácu, tak času nevystalo. Ale chcem sa naozaj pustiť do projektu toho istého v Max for Live od Cyclingu, ale najprv sa musím naučiť, ako to tam funguje..

Niro , pracuj a píš, keby bolo dačo nejasné, s Matlabom som veľký kamarát. ;)

Uživatelský avatar
Niro
Příspěvky: 28
Registrován: 18 říj 2011 14:22

Re: Bakalářská práce - Programování VST

Příspěvek od Niro » 06 bře 2014 13:23

Tak tři týdny si s tím hraju, mám mono/stereo delay, mám jednoduchý mono2stereo a stereo enhancer, mám gain, sehnal jsem si knihovnu s biquad filtry, které jsem zapojil do kaskády, takže i něco na způsob ekvalizéru mám, no a zbývá kompresor. Pak to všechno pozapojuju dohromady a dodělam GUI a uvidíme. Původně jsem si myslel, že kompresor bude ze všeho nejlehčí, nicméně s postupem času jsem zjistil, že to zas tak jednoduché nebude. Zkoušel jsem něco naimplementovat, ale výsledky nebyly vůbec valné, pravděpodobně nepracuji správně s envelope.

Nenarazil náhodou někdo na vhodný algoritmus?

Uživatelský avatar
Amorph
Moderátor
Příspěvky: 4612
Registrován: 24 lis 2005 22:22

Re: Bakalářská práce - Programování VST

Příspěvek od Amorph » 31 bře 2014 12:40

Tak co, mas nejake vysledky? Klidne ti to otestuju, kdybys potreboval:)

Odpovědět