Developing Algorithms - MATLAB / OCTAVE or other ?

DSP, Plug-in and Host development discussion.
Ross21
KVRist
57 posts since 25 Jun, 2011

Post Sun Oct 29, 2017 11:08 pm

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 3:36 am, edited 1 time in total.

soundmodel
KVRian
645 posts since 28 May, 2010 from Finland

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 2:26 am

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

Miles1981
KVRian
1366 posts since 26 Apr, 2004 from UK

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 2:40 am

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.

User avatar
Michael L
KVRAF
2444 posts since 25 Jan, 2014 from the End of the World as we Knowit

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 3:12 am

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

Ross21
KVRist
57 posts since 25 Jun, 2011

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 3:22 am

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. ?

soundmodel
KVRian
645 posts since 28 May, 2010 from Finland

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 3:40 am

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 4:27 am, edited 2 times in total.

Ross21
KVRist
57 posts since 25 Jun, 2011

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 4:01 am

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?

Miles1981
KVRian
1366 posts since 26 Apr, 2004 from UK

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 4:20 am

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++.

soundmodel
KVRian
645 posts since 28 May, 2010 from Finland

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 4:26 am

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?

soundmodel
KVRian
645 posts since 28 May, 2010 from Finland

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 4:28 am

Seems that JUCE has also some kind of Python bindings:

https://github.com/abhijitnandy2011/PyJuce

Miles1981
KVRian
1366 posts since 26 Apr, 2004 from UK

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 5:03 am

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.

stratum
KVRAF
2121 posts since 29 May, 2012

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 7:02 am

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~

Miles1981
KVRian
1366 posts since 26 Apr, 2004 from UK

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Oct 30, 2017 8:15 am

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.

Ross21
KVRist
57 posts since 25 Jun, 2011

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Sun Dec 03, 2017 11:29 pm

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 !

camsr
KVRAF
6890 posts since 17 Feb, 2005

Re: Developing Algorithms - MATLAB / OCTAVE or other ?

Post Mon Dec 04, 2017 9:42 pm

soundfile is about as basic as it gets in python.
Image

Return to “DSP and Plug-in Development”