Developing Algorithms - MATLAB / OCTAVE or other ?

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Hi,

I'm looking into audio algorithm development. It's for playing around with ideas and better understanding the theory, not for commercial use though porting to VST for DAW test run is important.
I'm leaninng towards MATLAB+AUDIO DSP TOOLBOX+SIMULINK, less into C++/Python since I'm not interested in the code (efficiency, size, etc.) itself - but the idea, plots, audio perfromance, etc.
MATLAB being expensive as hell, so OCTAVE Comes to mind.

Besides the price issue (MATLAB + Audio DSP Toll box + simulink will cost a few thousand USD ;-( ... ) can OCTAVE do these things:

1. connect to ASIO drivers for input and output of multi channels (2 or more) in real time ?
2. The above with sample rates of 44100, 48000, 96000 Hz?
3. connect to MIDI drivers and soundcrads (RME and the like) over Windows 10 OS ?
4. Simulink like (graphical coding ability of connecting 'modules' ) ?
5. VST 32 and 64 bit export as well as *.exe (stand alone) solution export ?

Any other suggestion of this topic would be great.

Rocko
Last edited by Ross21 on Mon Oct 30, 2017 11:36 am, edited 1 time in total.

Post

I'd go with Python. Probably most libraries available and user-extensible. And most of the time free (some advanced algos may be proprietary).

SageMath, PyVST, ...

Post

I start doing them in Python, then assemble my pipeline in Pythona s well (AudioTK has a Python layer) then I create the actual plugin.

Post

Ross21 wrote:Besides the price issue (MATLAB + Audio DSP Toll box + simulink will cost a few thousand USD
No. You can get MatLab Home for $150, and Audio DSP and SimuLink for $49 each:
https://www.mathworks.com/products/matlab-home.html
H E L P
Y O U R
F L O W

Post

Thanks for the 150+49 USD advice. Sweet ;-)


It seems that Python is the prefered answer here... I would have thought that MATLAB will be better for "R&D only" projects.

Only out of interest, can Python be used for the full cycle of a VST creation, i.e.:

32/64 bit versions
iOS and Windows versions
GUI design

Or are those stages still recommended in (say) C++/Juce etc. ?

Post

Ross21 wrote: It seems that Python is the prefered answer here... I would have thought that MATLAB will be better for "R&D only" projects.

Only out of interest, can Python be used for the full cycle of a VST creation, i.e.:

32/64 bit versions
iOS and Windows versions
GUI design

Or are those stages still recommended in (say) C++/Juce etc. ?
I think you can make a full VST in Python (using e.g. https://github.com/mbrucher/PyVST) and it will be totally ok, if the CPU use doesn't grow too high (given how much slower Python is to C++). I don't know if PyVST supports iOS though.

Matlab is okay if you can 1) afford it and 2) can live with drawbacks that it has compared to Python (such as closed source and limited user-extensibility). Then again it has advantages such as much more refined user-experience (less tweaking by the user).
Last edited by soundmodel on Mon Oct 30, 2017 12:27 pm, edited 2 times in total.

Post

Hi,

So, Python over C++ (detouring from MATLAB Vs. OCTAVE ...) would be:

Python being the higher programming is easier for high level projects (design, R&D, plots, statistics) and able of VST creation.
C++ being 'closer to the hardware' providing the ability of a more professional faster code run.

Assume I have ZERO knowledge of C++ or Python and interested in the ideas, not the product (plug-in), Python being my natural choice?

Is that more or less correct?

Post

Actually pyVST was created to use VST plugins from Python, not the opposite :p
But in general, prototyping is nice in Python or Matlab, but to create a commercial product, go to C++.

Post

Miles1981 wrote:Actually pyVST was created to use VST plugins from Python, not the opposite :p
But in general, prototyping is nice in Python or Matlab, but to create a commercial product, go to C++.
What?

Do you mean that it merely compiles an existing VST to something that can be imported into Python, rather than enables using Python for compiling with the VST SDK?

Post

Seems that JUCE has also some kind of Python bindings:

https://github.com/abhijitnandy2011/PyJuce

Post

soundmodel wrote:What?

Do you mean that it merely compiles an existing VST to something that can be imported into Python, rather than enables using Python for compiling with the VST SDK?
It's only a ctypes wrapper allowing you to import VST plugins in Python. And I never tested it with Python 64bits.

Post

Alternatives exist for those who don't want to learn just another programming language with an arbitrarily different syntax https://root.cern.ch/cling (not that I would follow my own advice about that - what's wrong with a c++ compiler for prototyping an algorithm?)
~stratum~

Post

Nothing wrong with C++. I use Python because I can have all the displays of intermediate variables, which is more tedious to get in C++. But doable if you have the right framework.

Post

Hey there...

So, I've started learning Python (basic synthax still) as suggested above. I'm interested now in the steps needed for audio out.

I would like to build an exmaple of a very simple sine wave generator.
What would be a good library needed to install for getting audio out on ASIO/windows/64bit from python?
Would you recommend Pyo http://ajaxsoundstudio.com/software/pyo/ or anyhting else?
I've learned that Pyo for Windows is designed for Python 32bit version only (not 64) ?

Appreciated !

Post

soundfile is about as basic as it gets in python.

Post Reply

Return to “DSP and Plugin Development”