Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright

howto design a VST-wrapper friendly VST ?

Post any examples or modules that you want to share here

howto design a VST-wrapper friendly VST ?

Postby steph_tsf » Mon Apr 21, 2014 1:05 pm

I'm afraid this time I have nothing to show, apart from a concept. With big potential, I think.

I remain amazed by the ease, comfort and elegance provided by Flowstone when designing realtime audio DSP stuff. In June-July 2013 I've received fantastic support from Flowstone contributors like MyCo (IIR filters using green code, zero audio protection), DWT (trigger galore elimination) and Manton (cleaning up bits and pieces). Special mention to Nubeat7 and MyCo who helped in debugging the knobs I've been using in the control panels.

Those last months, I've been wandering on VLC, XBMC, FOOBAR and WINAMP forums searching if those music players can deliver bit-exact stereo audio streams to a virtual output port, for feeding a custom-made DSP module that would operate as stereo 4-way crossover, and ASIO-talk to the hardware like the motherboard HDaudio (ASIO4ALL driver), the multichannel USB audio adapter (ASIO driver supplied with the hardware), or the HDMI 8-channel LPCM (ASIO4HDMI driver - IMO doesn't exist yet).

On VLC forum Jean-Baptiste Kempf kindly pointed out that one can do an "audio filter" including resampling, upmixing, downmixing and everything. There are examples of this already like scaletempo or downmixer. Unfortunately you need good programming skills for writing and integrating such "audio filter" in VLC. Jean-Baptiste Kempf kindly recommended reading the VLC wiki and VLC doxygen.
https://forum.videolan.org/viewtopic.ph ... io#p392190

On XBMC forum Martijn suggested that I develop something and create a pull-request on github. FernetMenta pointed out that XBMC already has it's plugin/addon concept, however currently there is no extension point to audio, but this would be feasible. FernetMenta suggested that an addon could provide some UI for DSP configuration and functions for the audio engine which would be called at the right stage. Fritsch recommended implementing the audio DSP features like into a Sink compliant with their brand new ActiveAE (Active Audio Engine) architecture they were still debugging. A few days later FernetMenta ironically commented that "millions audiophiles want something on XBMC and no one of them is stepping up to actually do something for XBMC". Then came NotMediaSavvy, not a XBMC team-member, explaining the reasons of the deadlock : "Implement VST, AU, and LADSPA and you'll see how fast we step up. Don't make us learn some new unproven interface technology that you've designed because we just won't."
The discussion is here : http://forum.xbmc.org/showthread.php?tid=178611&page=3

On XBMC forum, came Alwinus and Wisler, actually implementing what Martijn suggested. Actually this is not yet finished. Then came thecYrus, pointing out the same idea as NotMediaSavvy : "it's pretty nice to have DSP support. But I think you should add VST support instead of doing yet another plugin format. That would make it way more interesting as there are already so many plugins available." Alwinus claims to be the first implementing what FernetMenta suggested. Alwinus wrote that Wisler copied the GUI templates he published in first place on XBMC github. Alwinus is relying on XBMC for Linux, while Wisler is relying on XBMC for Windows.
The discussion is here : http://forum.xbmc.org/showthread.php?tid=186857&page=2
Alwinus github is here : git clone git://github.com/AlwinEsch/xbmc.git -b audio-dsp-addon-handling
Here also : https://github.com/xbmc/xbmc/pull/4402
Here also : https://github.com/AlwinEsch/xbmc/blob/ ... sp_types.h
Here also : https://github.com/AlwinEsch/xbmc/blob/ ... adsp_dll.h


On FOOBAR forum there is mention of two different VST wrappers (as plugins) allowing FOOBAR to send bit-exact audio to a VST stack.
Yohng VST wrapper for FOOBAR is here : http://www.yohng.com/software/foobarvst.html
Yegor VST wrapper for FOOBAR is here : http://www.hydrogenaudio.org/forums/ind ... opic=84947

On WINAMP forum a search on the "VST" keyword returns nothing.
Fortunately there is Christian W. Budde website, presenting :
- WINAMP VST Host
- WINAMP ASIO output plugin.
This is here : http://www.savioursofsoul.de/Christian/programs/winamp/
Several VST plugins can be chained using a VST “chain” plugin.
Christian W. Budde WINAMP VST Host has been awarded as “Shareware Music Machine Editor’s Choice”.
steph_tsf
 
Posts: 249
Joined: Sun Aug 15, 2010 10:26 pm

Re: howto design a VST-wrapper friendly VST ?

Postby steph_tsf » Mon Apr 21, 2014 1:06 pm

Let me present the concept of a "VST-wrapper friendly VST".

The most simple VST is a program having no GUI (Graphical User Interface). Such VST should run on any platform you want : x86 Windows, x86 MacOS, ARM Android, ARM iOs. All operational parameters are buried in the code. You may change them using a HEX editor, if you know where there are, and if you know what format they have. Surely you don't like such lack of flexibility. One could do a few experiments using Flowstone.
A more advanced VST is a program having no GUI, however loading a text file upon initialization. Doing so the user has full control about the VST parameters, provided he runs a small utility (could be cloud-based for being platform-independent) generating the text file. How to persuade a VST to load a text file upon initialization ? One could do a few experiments using Flowstone.

So, in a nutshell, what am I looking for here ?

Can somebody tell me what audio player to use (VLC, XBMC, FOOBAR, WINAMP), what VST wrapper to use and what ASIO output plugin to use, for the audio player sending bit-exact audio to a VST compiled by Flowstone, outputting audio on ASIO ?

Regarding the physical sound output, I'm expecting using the ASIO4ALL driver for a HDaudio motherboard, or using the ASIO driver that's supplied with some other audio attachments like audiophile-grade USB-audio attachments. By the way, regarding HDMI, is there a kind of ASIO4HDMI driver for outputting the audio over HDMI using the HDMI 8-channel LPCM modality ?

Can 16-bit 44.1 kHz audio originating from CDs remain remain bit-exact when entering the VST, on Windows XP ?
Can 24-bit 48 kHz and 24-bit 96 kHz audio originating from movies or vinyle rips remain remain bit-exact when entering the VST, on Windows XP ?
What are the practical possibilities offered by WASAPI (exclusive mode) introduced by Windows 7, for remaining bit-exact when entering the VST ? In such context, is it worth running Windows 8 instead of Windows XP ?
What about other platforms like ARM-Android ?

What to do when the audio is 48 kHz or 96 kHz, and the audio hardware is only 44.1 kHz capable ? Who will be in charge of the resampling ? Will it be ASIO itself ? Can it be a VST where we can adjust the CPU load / precision tradeoff ?
What to do when the audio is 44.1 kHz, 48 kHz or 96 kHz, and the hardware is 44.1 kHz, 48 kHz and 96 kHz capable ? Can we then avoid resampling ?

Hope you see the potential of this, especially if/when the audio player really becomes multiplatform.
steph_tsf
 
Posts: 249
Joined: Sun Aug 15, 2010 10:26 pm

Re: howto design a VST-wrapper friendly VST ?

Postby jjs » Mon Apr 21, 2014 8:24 pm

so in a nutshell.....what the heck are you asking?
User avatar
jjs
 
Posts: 142
Joined: Thu Jun 09, 2011 12:15 pm

Re: howto design a VST-wrapper friendly VST ?

Postby steph_tsf » Tue Apr 22, 2014 2:36 pm

hello jjs,

I've just completed a setup using a Windows XP PC running VAC (Virtual Audio cable).
In the Windows Sound Configuration Panel, I'm specifying VAC as default device for audio Play.
There is a SWEEX SC016 USB-audio attachment operating under ASIO4ALL.
This way the ASIO-in module and the ASIO-out module can be used inside Flowstone.

With such a setup, all activities like watching a video on YouTube, watching a movie on MPC-HC, or listening music on Winamp will send their stereo audio to VAC. Only Winamp needs to be configured a special way : Options - Preferences - Plugins - Output - Wave Out v2.17 (d) - Configure - Peripheral "Virtual Cable 1".

Using Flowstone I designed a simple stereo 4-way crossover outputting 8 channels on the SWEEX SC016.
I then asked Flowstone to create the corresponding stand-alone .exe.
No need to run Flowstone anymore. The .exe is sufficient. It perfectly replicates the GUI. It gives access to the crossover settings, for tuning it.
Now, as soon as I'm launching the stand-alone .exe, the SWEEX SC016 feeds two active speakers, each 4-way.
The possibilities of something like this are endless. One can try IIR Biquads, FIR filters and delays. All crossovers topologies are possible. The Flowstone .exe can be more than a crossover. It can be a multiband dynamics processor, it can be a sophisticated equalizer, it can also embed the dual-channel FFT analyzer you need for measuring the gain and the phase, etc.

However, because of relying on a .exe compiled by Flowstone, I can't join the VST bandwagon.

I guess very few people are willing to reproduce such setup, because a) it sits outside of the VST ecosystem and b) it needs attention to lots of details for working properly. I'm not talking about tuning the crossover (which already is a complex matter). I'm talking about all the settings in VAC, ASIO4ALL, Windows Sound, etc.

Now you better understand my initial query.
Say I ask Flowstone to generate the corresponding .vst
I would then need a VST Host, and place that VST into it.

Is this feasible ? Will it blend ? Will the SWEEX SC016 output the 8 channels ?
steph_tsf
 
Posts: 249
Joined: Sun Aug 15, 2010 10:26 pm

Re: howto design a VST-wrapper friendly VST ?

Postby jjs » Tue Apr 22, 2014 6:52 pm

Just try it.

But instead of using Winamp (who's using winamp these days, i thought it was gone 10 years ago) and you aint the money now to buy a decent vst host you can try these:

http://www.hermannseib.com/english/vsthost.htm
or
http://www.studiotoolz.net/audio-softwa ... t-program/
or a cubase/logic/cakewalk clone which works on Linux and windows
a program called LMMS (well i cant work with it, i tried, it's just unworkable) but you could give it a try, it is a full audio/midi program for free found here http://lmms.sourceforge.net/

look Kontakt also has multiple outputs so why should your proggie not work.
If it is not working good, try a search on this forum or on synthmakers forum for a few synth and see what they did and what is different with yours.
User avatar
jjs
 
Posts: 142
Joined: Thu Jun 09, 2011 12:15 pm

Re: howto design a VST-wrapper friendly VST ?

Postby tester » Tue Apr 22, 2014 8:21 pm

I'm using winamp. :-)

BTW, is there a way to externally drive milkdrop plugin that runs inside winamp?
Need to take a break? I have something right for you.
Feel free to donate. Thank you for your contribution.
tester
 
Posts: 1786
Joined: Wed Jan 18, 2012 10:52 pm
Location: Poland, internet

Re: howto design a VST-wrapper friendly VST ?

Postby steph_tsf » Tue Apr 22, 2014 9:18 pm

jjs wrote:Just try it ... or a cubase/logic/cakewalk clone which works on Linux and windows.
Bingo ! That's what I had in my mind when opening the present discussion. Thanks for putting me back on track.

Flowstone is able to export the schematic using the VST modality. I find this brilliant. Such VST effect would be handled by a VST Host on the x86-Windows platform. Remarkably, joining the VST bandwagon opens the door to the exact same VST effect (I really mean, the exact same binary file compiled by Flowstone) being handled by a x86-Linux VST Host, x86-MacOS VST Host, ARM-Android VST Host, or ARM iOS VST Host.

However, fearing issues in trying to become multiplatform, I have the feeling that the Flowstone schematic must remain simple, especially what's regarding the GUI. Am I right ? What are the limitations ? What to check before asking Flowstone to export as VST effect ?

I would like to experiment with this.

I googled about a same VST effect (two audio channels in, 8 audio channels out) to be handled by a x86-Windows VST Host, x86-MacOS Host, or ARM-Android VST Host. I did the search, expecting to find a simple VST effect example, and a simple VST Host that's available for most computing platforms. The search result is so confusing, that I still don't know if there is something like this, mature enough, reliable enough.

Please tell me, is there a software publisher, having his "homepage" presenting four different VST Host install files, for installing such simple VST Host on x86-Windows, x86-MacOS, ARM-Android and ARM-iOS ?

If this doesn't exist, what simple VST Host would you recommend for each platform ?
steph_tsf
 
Posts: 249
Joined: Sun Aug 15, 2010 10:26 pm

Re: howto design a VST-wrapper friendly VST ?

Postby jjs » Tue Apr 22, 2014 10:05 pm

i think you can only use the FS vst in windows and in Linux using Wine(because that's what most VST hosts do in Linux-Ubuntu-Lubuntu etc)

thats it
User avatar
jjs
 
Posts: 142
Joined: Thu Jun 09, 2011 12:15 pm

Re: howto design a VST-wrapper friendly VST ?

Postby steph_tsf » Wed Apr 23, 2014 1:00 am

Ouch ! I was doubting Wine to ever run on a ARM-Android tablet.
Actually Alexandre Julliard is currently working on this.
Unfortunately the audio support is still missing.
http://wiki.winehq.org/FOSDEM2014?actio ... m-2014.pdf
steph_tsf
 
Posts: 249
Joined: Sun Aug 15, 2010 10:26 pm


Return to User Examples

Who is online

Users browsing this forum: No registered users and 80 guests