Shared observations on ArdourVST

Hello,

I’m sure many of you are interested in the new and improved ArdourVST and have been testing it. I thought I’d share a few observations and would encourage many more to do the same, Since ArdourVST will be (or is) legal to distribute now it will probably be the most prominent version to be tried or used by folks from other OS’s and DAW’s. If we can collect some data I really think it will help new users get off to a better start and therefore help Ardour achieve it’s full potential user base. For those using A/V Linux I will post a link to an ArdourVST deb package and a link to the most recent Wine version when 2.8 is officially released.

System info:
A/V Linux 1.0r1, JACK 0.116.1, Wine 1.1.15, ArdourVST from SVN4709
Debian Sid, JACK 0.116.1, Wine 1.1.16, ArdourVST from SVN4711

Observations: (additional input from peder…Thx)

I will admit to getting off to a frustrating start with the new version, as always it still is a delicate balancing act between Wine, Wine-dev, FST, Ardour and of course JACK

-I would suggest adding your VST’s one at a time and starting Ardour from the terminal to see how well it’s processing them and writing the new .fsi files.

-Get rid of any old .fst files that may be left in your folder from previous ArdourVST setups

-Wine versions newer than 1.1.10 seem to work better than previous versions… if your distro doesn’t provide any go to www.winehq.org for more recent versions *Note the latest isn’t always the greatest, stick with the stable release if you’re not sure

-At this point in time saving chunk-based presets isn’t working, It is on Paul’s todo list I believe

-Mixing FST and DSSI-VST within Ardour may work, but I don’t think it’s adviseable

Everyone…please share more if you got 'em

@Paul

What about another plugin thread like you did for the LADSPA plugins, One that pertains only to ArdourVST, the info on the ladspavst page is old, not relevant to the new FST and pertains to too many other programs to be useful. Just a suggestion!

I am really looking forward to being able to distribute ArdourVST without the VSTsdk hassle!

Wine-dev 1.1.17 from lamaresh.net…to the terminal I go!

libs/fst/vstwin.c:222: error: (Each undeclared identifier is reported only once
libs/fst/vstwin.c:222: error: for each function it appears in.)
libs/fst/vstwin.c:222: error: expected ‘;’ before ‘wclass’
libs/fst/vstwin.c:223: error: ‘HMODULE’ undeclared (first use in this function)
libs/fst/vstwin.c:223: error: expected ‘;’ before ‘hInst’
libs/fst/vstwin.c:226: error: ‘hInst’ undeclared (first use in this function)
libs/fst/vstwin.c:226: error: expected ‘;’ before ‘possible_hmodule’
libs/fst/vstwin.c:227: warning: implicit declaration of function ‘GetModuleHandleA’
libs/fst/vstwin.c:231: error: ‘wclass’ undeclared (first use in this function)
libs/fst/vstwin.c:233: error: ‘my_window_proc’ undeclared (first use in this function)
libs/fst/vstwin.c:237: warning: implicit declaration of function ‘LoadIcon’
libs/fst/vstwin.c:238: warning: implicit declaration of function ‘LoadCursor’
libs/fst/vstwin.c:238: error: ‘IDI_APPLICATION’ undeclared (first use in this function)
libs/fst/vstwin.c:258: warning: implicit declaration of function ‘RegisterClassExA’
libs/fst/vstwin.c:265: warning: implicit declaration of function ‘CreateThread’
libs/fst/vstwin.c:265: error: ‘gui_event_loop’ undeclared (first use in this function)
libs/fst/vstwin.c:265: warning: comparison between pointer and integer
libs/fst/vstwin.c: In function ‘fst_create_editor’:
libs/fst/vstwin.c:329: error: ‘HMODULE’ undeclared (first use in this function)
libs/fst/vstwin.c:329: error: expected ‘;’ before ‘hInst’
libs/fst/vstwin.c:331: error: ‘HWND’ undeclared (first use in this function)
libs/fst/vstwin.c:331: error: expected ‘;’ before ‘window’
libs/fst/vstwin.c:343: error: ‘hInst’ undeclared (first use in this function)
libs/fst/vstwin.c:349: error: ‘window’ undeclared (first use in this function)
libs/fst/vstwin.c:349: warning: implicit declaration of function ‘CreateWindowExA’
libs/fst/vstwin.c:350: error: ‘WS_OVERLAPPEDWINDOW’ undeclared (first use in this function)
libs/fst/vstwin.c:350: error: ‘WS_THICKFRAME’ undeclared (first use in this function)
libs/fst/vstwin.c:350: error: ‘WS_MAXIMIZEBOX’ undeclared (first use in this function)
libs/fst/vstwin.c:361: warning: implicit declaration of function ‘SetPropA’
libs/fst/vstwin.c:378: warning: implicit declaration of function ‘SetWindowPos’
libs/fst/vstwin.c:379: warning: implicit declaration of function ‘ShowWindow’
libs/fst/vstwin.c:379: error: ‘SW_SHOWNA’ undeclared (first use in this function)
libs/fst/vstwin.c:382: warning: implicit declaration of function ‘GetPropA’
libs/fst/vstwin.c:330: warning: unused variable ‘class’
libs/fst/vstwin.c: In function ‘fst_move_window_into_view’:
libs/fst/vstwin.c:397: error: ‘SW_SHOWNA’ undeclared (first use in this function)
libs/fst/vstwin.c: In function ‘fst_destroy_editor’:
libs/fst/vstwin.c:405: warning: unused variable ‘prev’
libs/fst/vstwin.c:404: warning: unused variable ‘p’
libs/fst/vstwin.c: At top level:
libs/fst/vstwin.c:441: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘fst_load_vst_library’
libs/fst/vstwin.c: In function ‘fst_load’:
libs/fst/vstwin.c:501: warning: implicit declaration of function ‘strstr’
libs/fst/vstwin.c:501: warning: incompatible implicit declaration of built-in function ‘strstr’
libs/fst/vstwin.c:503: warning: implicit declaration of function ‘malloc’
libs/fst/vstwin.c:503: warning: incompatible implicit declaration of built-in function ‘malloc’
libs/fst/vstwin.c:503: warning: implicit declaration of function ‘strlen’
libs/fst/vstwin.c:503: warning: incompatible implicit declaration of built-in function ‘strlen’
libs/fst/vstwin.c:511: warning: implicit declaration of function ‘strdup’
libs/fst/vstwin.c:511: warning: incompatible implicit declaration of built-in function ‘strdup’
libs/fst/vstwin.c:515: warning: incompatible implicit declaration of built-in function ‘malloc’
libs/fst/vstwin.c:515: warning: incompatible implicit declaration of built-in function ‘strlen’
libs/fst/vstwin.c:523: warning: incompatible implicit declaration of built-in function ‘strdup’
libs/fst/vstwin.c:530: warning: implicit declaration of function ‘strrchr’
libs/fst/vstwin.c:530: warning: incompatible implicit declaration of built-in function ‘strrchr’
libs/fst/vstwin.c:534: warning: implicit declaration of function ‘fst_load_vst_library’
libs/fst/vstwin.c:534: warning: assignment makes pointer from integer without a cast
libs/fst/vstwin.c:539: warning: implicit declaration of function ‘GetProcAddress’
libs/fst/vstwin.c:492: warning: unused variable ‘buf2’
libs/fst/vstwin.c: In function ‘fst_unload’:
libs/fst/vstwin.c:555: warning: implicit declaration of function ‘FreeLibrary’
libs/fst/vstwin.c:560: warning: implicit declaration of function ‘free’
libs/fst/vstwin.c:560: warning: incompatible implicit declaration of built-in function ‘free’
libs/fst/vstwin.c:564: warning: incompatible implicit declaration of built-in function ‘free’
libs/fst/vstwin.c: In function ‘fst_instantiate’:
libs/fst/vstwin.c:580: warning: incompatible implicit declaration of built-in function ‘free’
libs/fst/vstwin.c:589: warning: incompatible implicit declaration of built-in function ‘free’
libs/fst/vstwin.c: In function ‘fst_save_state’:
libs/fst/vstwin.c:753: warning: unused variable ‘length’
winegcc: gcc failed
scons: *** [libs/fst/vstwin.o] Error 2
scons: building terminated because of errors.
pcuser@avlinux2:~/build/2.0-ongoing$

So you’ll happily build Ardour from SVN, but complain about having to compile a released (albeit devel) version of Wine :slight_smile:

Hey, I’ll even provide a copy/paste line:

wget http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.1.17.tar.bz2 && tar -xjf wine-1.1.17.tar.bz2 && cd wine-1.1.17 && ./configure --prefix=/opt/wine-1.1.17 --disable-tests --disable-win16 && make depend && make && make install
and if you can wait 10 hrs or so I can give you a link to my A/V compiled version of 1.1.15 (I think it was).

OK,

Regarding the problem with Wine-dev from the lamaresh Debian WineHQ Repo failing to build Ardour.

I have been corresponding with the packager over the last few days and have received a response from him that there was a problem with his build environment that was causing this issue. He will be putting up new packages soon and in the meantime has provided these symlinks that should fix the build issue. Enter these symlinks in the terminal before building ArdourVST.

ln -s /usr/lib/wine /usr/local/lib/wine
ln -s /usr/include/wine /usr/local/include/wine

If you use sudo you’ll want to prepend them with sudo or su as root if you don’t use sudo

Thought I’d pass this along.

EDIT
Wine-dev 1.1.17-2 Packages are fixed, If you upgrade you can remove the symlinks.

I was using the wine in debians repo because I had problems with lamaresh wine…so since they released a fixed version I thought I would compile Ardour,dssi-vst,wineasio with latest wine.Wine asio compiled and installed fine…but dssi-vst compiled but wouldnt install…It errored out saying dssi-vst-scanner…no such file or directory…even though it had built it.I uninstalled 1.1.17-2 and reinstalled debians version and dss-vst compiled and installed with no problems…so there still seems to be some issue with there debian package.Anyone else can test if dss-vst builds and installs with there wine version??I didnt want to start compiling ardour with vst support only to find out it wouldnt install correctly…thats why I stopped at dssi-vst

forgot to add code

strat@debian:~/dssi-vst-0.8$ make
wineg++ -m32 -Ivestige -Wall -fPIC remotepluginclient.cpp -c -o remotepluginclient.w32.o
wineg++ -m32 -Ivestige -Wall -fPIC remotepluginserver.cpp -c -o remotepluginserver.w32.o
wineg++ -m32 -Ivestige -Wall -fPIC rdwrops.cpp -c -o rdwrops.w32.o
wineg++ -m32 -Ivestige -Wall -fPIC paths.cpp -c -o paths.w32.o
ar r libremoteplugin.w32.a remotepluginclient.w32.o remotepluginserver.w32.o rdwrops.w32.o paths.w32.o
ar: creating libremoteplugin.w32.a
wineg++ -m32 -Ivestige -Wall -fPIC dssi-vst-server.cpp -o dssi-vst-server -L. -lremoteplugin.w32 -lpthread
dssi-vst-server.cpp: In member function ‘virtual void RemoteVSTServer::hideGUI()’:
dssi-vst-server.cpp:568: warning: unused variable ‘fd’
wineg++ -m32 -Ivestige -Wall -fPIC dssi-vst-scanner.cpp -o dssi-vst-scanner -L. -lremoteplugin.w32 -lpthread
g++ -Ivestige -Wall -fPIC remotepluginclient.cpp -c
g++ -Ivestige -Wall -fPIC remotepluginserver.cpp -c
g++ -Ivestige -Wall -fPIC rdwrops.cpp -c
g++ -Ivestige -Wall -fPIC paths.cpp -c
ar r libremoteplugin.a remotepluginclient.o remotepluginserver.o rdwrops.o paths.o
ar: creating libremoteplugin.a
g++ -Ivestige -Wall -fPIC remotevstclient.cpp -c
g++ -shared -Wl,-Bsymbolic -g3 -Ivestige -Wall -fPIC -o dssi-vst.so dssi-vst.cpp remotevstclient.o -L. -lremoteplugin -lasound
g++ -Ivestige -Wall -fPIC vsthost.cpp remotevstclient.o -o vsthost -L. -lremoteplugin -ljack -lasound
strat@debian:~/dssi-vst-0.8$ su
Password:
debian:/home/strat/dssi-vst-0.8# make install
mkdir -p /usr/local/lib/dssi/dssi-vst
mkdir -p /usr/local/lib/ladspa
mkdir -p /usr/local/bin
install dssi-vst.so /usr/local/lib/dssi
install dssi-vst.so /usr/local/lib/ladspa
install dssi-vst-server.exe.so dssi-vst-server dssi-vst-scanner.exe.so dssi-vst-scanner dssi-vst_gui /usr/local/lib/dssi/dssi-vst
install: cannot stat dssi-vst-server': No such file or directory install: cannot statdssi-vst-scanner’: No such file or directory
make: *** [install] Error 1
debian:/home/strat/dssi-vst-0.8# make install
mkdir -p /usr/local/lib/dssi/dssi-vst
mkdir -p /usr/local/lib/ladspa
mkdir -p /usr/local/bin
install dssi-vst.so /usr/local/lib/dssi
install dssi-vst.so /usr/local/lib/ladspa
install dssi-vst-server.exe.so dssi-vst-server dssi-vst-scanner.exe.so dssi-vst-scanner dssi-vst_gui /usr/local/lib/dssi/dssi-vst
install: cannot stat dssi-vst-server': No such file or directory install: cannot statdssi-vst-scanner’: No such file or directory
make: *** [install] Error 1
debian:/home/strat/dssi-vst-0.8#

Stratotak,

I haven’t had time for an Ardour build, I was just relaying what Ben Klein the packager told me…

Could you please go to www.lamaresh.net click on the email link for Ben Klein and send him a message with your teminal output.

It would be helpful if he heard from more than one person about this…perhaps it is still b0rked.

I don’t think you should bother Ben about this, my wine-1.1.17 from SUSEs repo exhibits the same error (but 1.1.15 doesn’t).
The problem in this case is that there’s an .exe extension to dssi-vst-scanner.exe and dssi-vst-server.exe that shouldn’t be there. Just rename those files before ‘make install’

Either it’s a bug in wine that should be fixed by them or they’ve intentionally changed some flag and the dssi-vst guys should fix their makefile.

Ok…I decided to retry it.After it said make install error I looked in /usr/local/lib/dssi/dssi-vst and saw that it actually had installed it.But running a vst still takes like a minute to start instead of the 3-4 seconds with debians old wine.So there must be issues with the 1.1.17 version of wine.I tried what peder said and removed the .exe file extension before make install and that worked…
Ok as I was writing this message I decided to try other vsts to see if it took forever for them to load up.Tried the Kjaerhus Classics and Boogex…They all took like 1-2 seconds to load.So It seems that the the latest version has issue with SIR…the free version.

strat@debian:~/Documents/Vst$ vsthost SIR.dll
Returning file identifiers: k9DWRRWgLQYR3U1K5RLKqFcS
RemoteVSTClient: executing /usr/local/lib/dssi//dssi-vst/dssi-vst-server -g SIR.dll,k9DWRRWgLQYR3U1K5RLKqFcS
DSSI VST plugin server v0.986
Copyright © 2004-2008 Chris Cannam
Loading “SIR.dll”…
err:alsa:ALSA_CheckSetVolume Could not find ‘PCM Playback Volume’ element
fixme:mixer:ALSA_MixerInit No master control found on Brooktree Bt878, disabling mixer
dssi-vst-server[1]: found in /home/strat/Documents/Vst/SIR.dll
done
Testing VST compatibility…
dssi-vst-server[1]: VST 2.4 entrypoint “VSTPluginMain” not found in DLL “SIR.dll”, looking for “main”
dssi-vst-server[1]: VST entrypoint “main” found
dssi-vst-server[1]: plugin instantiated
dssi-vst-server[1]: plugin is a VST
dssi-vst-server[1]: plugin has a GUI
dssi-vst-server[1]: plugin supports processReplacing
dssi-vst-server[1]: opening plugin
dssi-vst-server[1]: plugin is VST 2.0 or newer
dssi-vst-server[1]: plugin is not a synth
dssi-vst-server[1]: plugin name is “SIR”
dssi-vst-server[1]: vendor string is “Christian Knufinke”
Initialising Windows subsystem…
dssi-vst-server[1]: registered Windows application class “dssi_vst”
dssi-vst-server[1]: created main window
fixme:richedit:ME_HandleMessage WM_STYLECHANGING: stub
fixme:richedit:ME_HandleMessage WM_STYLECHANGED: stub
dssi-vst-server[1]: sized window
dssi-vst-server[1]: showed window
done
dssi-vst-server[1]: created audio thread
dssi-vst-server[1]: set sample rate to 48000
dssi-vst-server[1]: set buffer size to 1024
client sized shm to 16384
sized shm to 16384, 2 inputs and 2 outputs

It gets to “created main windows” and then takes forever

fixme:richedit:ME_HandleMessage WM_STYLECHANGING: stub
fixme:richedit:ME_HandleMessage WM_STYLECHANGED: stub

Must be this fixme that is causing the issue.

SIR takes about 8 secs on my nx9110 with a 3.2GHz P4, and I get those fixmes as well. They shouldn’t cause things to take a minute.
Did you start jack first?

Yes I have jack running,and maybe a minute was a exageration…but it definetly takes along time to start…Im not at pc right now… When I get home Ill time it to see how long it takes to start.

Ok…It takes about 43-44 seconds to start.Oh well…Cant have everythig.I gained the ability to use studioDevil in Ardour as a plugin…And with new wine vsts have menu presets that work.Sir works fine…just takes for ever to start now…Oh well…

GMaq: two bits of news. We are making progress on debugging problems with VSTs that stop when the transport stops. And along the way, I have found out how to debug ardourvst. It doesn’t yield a huge amount of useful information, because the problem is nearly always in the plugin and we don’t have source, but it does open up a few diagnostic possibilities.

More pertinently, it appears to me about 100% certain that at least some your problems are not with Ardour or its VST support. I have the ParisEQ here (I’ve been a fan of it for years) and I see absolutely none of the symptoms you describe. What version of Wine are you using?

OK,

Running Debian Sid, ArdourVST SVN4803 and Wine 1.1.16,

I’ve noticed some plugins will fire up with the transport stopped but if you open or start them while the transport is running there are issues and lockups,

Plugins with issues:

Ericsound Uni-Q - Freezes Ardour until Session is forced to terminate
ParisEQ - Will open however touching the GUI panel kills Ardour
EQ31 - Kills Ardour
GVST Delay - Freezes Ardour until session is forced to terminate

On the plus side Anwidasoft DXReverb Lite and KarmaFX EQ work well now on my system and didn’t before.

If you use VST’s PLEASE share your experiences, ArdourVST can’t be debugged so this could be helpful info.

just found a few VST plugins that work really good with fst :

http://www.digitalfishphones.com/main.php?item=2&subItem=1

there are even pdf docs that come with them that explain their workings. I have not tried them inside ardour, just with fst as standalone effects.

Thorgal,

Not surprising really…it seems the more orthodox to “proper” Windows code inside the VST, the better they run with FST. I found the same thing with the AZR-3 B3 emulator, someone ported it to JACK but I never did get it to work reliably meanwhile the VSTi version would run like a clock in VSTHost.

I don’t really mess with synths much so I’ll admit my ignorance but it’s beyond me what the attraction to ZynAdd is now… I find it’s a real resource hog when it runs with JACK and the fltk interface can get really messed up by different fonts.

However that just a grumpy old man opinion…

this is quite off-topic but …

yesterday evening, I was fiddling around with zynaddsubfx and got a not very optimal performance out of it (changing instrument at low latency makes jack hiccup, closing zyn screws the sound of the jack session, as if it passes through a grinder or something). So by curiosity, I installed the VST version, yeah, you read me well, the win32 VST of zynaddsubfx on my linux DAW :lol: Opened it with dssi-vst (fst would not open it!! weird …) and it performed much better, no crazy CPU usage, no hiccups, except very little glitches (a couple of “delay of blabla microsec …” reported by jack1 (jack1 was the latest svn code after the sanity-checks code fix).

Isn’t it … mmm … awkward ?

I don’t use VSTs in ardour but I tried the latest svn compiled against the recently introduced vestige and fst.

For fun, I plugged a VSTi (note the ‘i’) in a track’s plugin area. I got it to pop up nicely and could hear sound out of it. However, the track’s meter display was not reacting to the plugin’s output level. Nevertheless, the latter was influenced by the fader sliding up and down. Then, still for fun, I armed the track for recording, activated the transport in record mode, and let the VSTi play something during active transport. I got a crash of ardour or a freeze, I don’t remember now, that was a few days ago. I really don’t have time to be more precise, I am at work right now and will be awfully busy for the coming weeks …

Thanks Thorgal,

I already built Wine 1.1.17 from source before I read your reply,

ParisEQ works now…Ericsound UNiQ still freezes Ardour…bummer! Didn’t test EQ31 because I prefer KarmaFX EQ which works nicely now, so hey we’re moving forward. Debian users, I’d be careful about the lamaresh Wine builds for now. I’m going to send them a bug report.

Thanks for the help guys…Keep testing!

hehe, that may be so but some sounds are kind of cool, and the stuff has been open-source from the start :slight_smile:

I don’t use synths much either but I needed something a bit spacy for a song (something along the “Space choir 1” in zyn). I find it very strange that a software developed on the linux platform ends up performing worse than its beta VST version … but I had not compiled zyn myself, just relied on the debian package. Bah! anyway, I don’t mind living in a world with a bit of reverse logic from time to time, too much rationality is not good for health :lol: