Developing Algorithms - MATLAB / OCTAVE or other ?
-
- KVRist
- Topic Starter
- 76 posts since 25 Jun, 2011
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
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.
-
- KVRian
- 1097 posts since 28 May, 2010 from Finland
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, ...
SageMath, PyVST, ...
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
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.
- KVRAF
- 4822 posts since 25 Jan, 2014 from The End of The World as We Knowit
No. You can get MatLab Home for $150, and Audio DSP and SimuLink for $49 each:Ross21 wrote:Besides the price issue (MATLAB + Audio DSP Toll box + simulink will cost a few thousand USD
https://www.mathworks.com/products/matlab-home.html
H E L P
Y O U R
F L O W
Y O U R
F L O W
-
- KVRist
- Topic Starter
- 76 posts since 25 Jun, 2011
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. ?
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. ?
-
- KVRian
- 1097 posts since 28 May, 2010 from Finland
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.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. ?
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.
-
- KVRist
- Topic Starter
- 76 posts since 25 Jun, 2011
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?
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?
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
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++.
But in general, prototyping is nice in Python or Matlab, but to create a commercial product, go to C++.
-
- KVRian
- 1097 posts since 28 May, 2010 from Finland
What?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++.
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?
-
- KVRian
- 1097 posts since 28 May, 2010 from Finland
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
It's only a ctypes wrapper allowing you to import VST plugins in Python. And I never tested it with Python 64bits.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?
-
- KVRAF
- 2256 posts since 29 May, 2012
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~
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
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.
-
- KVRist
- Topic Starter
- 76 posts since 25 Jun, 2011
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 !
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 !