MATLAB Answers

How to visualize the GUI of VST Plugin?

13 views (last 30 days)
I'm loading a VST3 64 bits called (VOXENGO SPAN) into MATLAB following the example:
MATLAB Example: https://www.mathworks.com/help/audio/ref/loadaudioplugin.html
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?

  0 Comments

Sign in to comment.

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.
Thanks,
Gabriele.

  3 Comments

Nycholas Maia
Nycholas Maia on 7 Dec 2017
Gabriele, thank you so much for your quick response.
Now you gave to me some light in this problem....
I was trying to use the original GUI of SPAN because I have some difficulties using dsp.Spectrum Analyser.
First: In my project, I need the same spectrum analyser component in MATLAB and Simulink.
Second: I need to change the X ticks/labels to a custom values. In fact, this custom values are the 1/3 octave values used for music equalization.
This type of X ticks division is essencial to get good resolution in the lower frequencies and this give to me the same "visual experience" that I already have using audio in another commercial softwares: Pro Tools, Logic Pro, etc...
I would like that my X ticks/labels like this: Voxengo SPAN
I have Audio System Toolbox, but I'm not finding how to customise the X axis values.
Could you help me?
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.
Thanks,
Gabriele.

Sign in to comment.

More Answers (0)

Sign in to answer this question.