MATLAB Answers

How to visualize the GUI of VST Plugin?

15 views (last 30 days)
I'm loading a VST3 64 bits called (VOXENGO SPAN) into MATLAB following the example:
MATLAB Example:
After loaded, I got this:
hostedSourcePlugin =
VST3 plugin 'SPAN' 2 in, 2 out
Meterin: 'dBFS'
Bypass: 'Off'
Program: 'Default'
Now, I want to see the graphical interface of this VST (GUI) like when I use it in a Digital Audio Workstation (DAW): Pro Tools, Logic, etc...
Finally, I would like to load a audio file and pass through this plugin and listen the processed audio.
Any help?

Accepted Answer

Gabriele Bunkheila
Gabriele Bunkheila on 7 Dec 2017
Hi Nycholas,
I work with the Audio System Toolbox team at MathWorks so I thought I'd add a few thoughts. The objects returned by loadAudioPlugin (of type externalAudioPlugin) aren't designed to be used via the original plugin UI, but only to be tuned programmatically for processing or generating signals. The only UI type that you can re-create in MATLAB - e.g. by running
>> audioTestBench(myEffect);
could help you tune the plugin parameters, but not render any of the original visualizations. A typical workflow would be as follows:
myEffect = loadAudioPlugin('yourplugin.dll');
myEffect.<Parameter1Name> = Parameter1Value;
myEffect.<Parameter2Name> = Parameter2Value;
y = process(myEffect,x);
SPAN doesn’t seem to be a good match to this as all the interesting bits are in the visualization itself rather than the output (which I imagine would be just a copy of the input). If you are working in MATLAB, you are probably better off giving a try to dsp.SpectrumAnalyzer instead. You can start from this example. I'd be curious to know how that works for you.
Gabriele Bunkheila
Gabriele Bunkheila on 13 Dec 2017
Hi Nycholas,
Sorry to be late on this - I had issues with notifications.
Spectrum Analyzer would indeed give you the same component across MATLAB and Simulink, but it doesn't yet provide the ability to use a custom frequency axis such as the 1/3 octave grid that you would like to see. From the mere point of view of logarithmic frequency resolution, something you can try right away is to set the FrequencyScale property to 'Log'. Obviously that won't help you get the exact 1/3 octave grid, but it would give a log-spaced visual resolution.
I will post more advice if any other simple idea comes to mind.
If 1/3 octave resolution happened to be absolutely necessary and your aim is not log-spaced visualization but actual log or octave-spaced spectral resolution, then you may want to put together your own simple octave-band analyzer. Those are typically built using octave-spaced filterbanks rather than simply providing a log scale on an FFT-based linear-frequency analysis. If that was of interest, then something you could leverage is octaveFilter. To get the same visualization across MATLAB and Simulink you could then use dsp.ArrayPlot (or the Array Plot block), with XDataMode set to 'Custom'.
For reference, a good example on octaveFilter is Octave-Band and Fractional Octave-Band Filters.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!