What is the most popular audio DSP language?
-
- KVRer
- Topic Starter
- 1 posts since 7 Feb, 2016
I'm getting into audio DSP and I'm having trouble choosing a language to learn. Python and MatLab seem to be the most established in audio DSP, but languages like MaxMSP and Pure Data seem to be more intuitive and built for audio processing. Which languages have the most existing audio work done on them?
- KVRAF
- 15280 posts since 8 Mar, 2005 from Utrecht, Holland
Most popular I think is C++ (not on your shortlist)
But in your position whatever you pick will work out if you put in a lot of work.
But in your position whatever you pick will work out if you put in a lot of work.
We are the KVR collective. Resistance is futile. You will be assimilated.
My MusicCalc is served over https!!
My MusicCalc is served over https!!
-
Music Engineer Music Engineer https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=15959
- KVRAF
- 4292 posts since 8 Mar, 2004 from Berlin, Germany
if you look into academic dsp-textbooks and research papers then, yes, matlab tends to pop up a lot. but from what i have heard, recently there's a shift in the general scientific community from matlab to python. so, for personal research, i'd go with python nowadays (for convenience). but if you want to build actual products for musicians, then C++ is the language of choice (for performance)joelh7 wrote:Python and MatLab seem to be the most established in audio DSP
-
Music Engineer Music Engineer https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=15959
- KVRAF
- 4292 posts since 8 Mar, 2004 from Berlin, Germany
ah, by the way - python has 0-based array indexing and matlab 1-based. that means, with python, textbook dsp-equations will translate more directly to python-code and any python prototype/research code will also translate more directly to c++, should you want to turn it into a product someday later. (having to convert between 0-based and 1-based array indexing is inconvenient and error-prone)
-
- KVRian
- 1000 posts since 1 Dec, 2004
If you're going to be a professional audio DSP programmer for creation software and games on desktop computers, consoles or mobile phones, you're going to do lots of C++. Other languages are fine for prototyping, tooling and so forth, but the shipped product will be C++.
C++ is used because of high constant speed, and generally this speed comes from the lack of dynamic typing (the cpu just does every operation directly instead of checking for types first) and lack of garbage collector (GC induced pauses = not good).
C++ is used because of high constant speed, and generally this speed comes from the lack of dynamic typing (the cpu just does every operation directly instead of checking for types first) and lack of garbage collector (GC induced pauses = not good).
-
- KVRian
- 1097 posts since 28 May, 2010 from Finland
I think Python should replace Matlab as a DSP prototyping platform.
However C++ is currently needed for (many) real-time implementations, because it runs fast enough.
However C++ is currently needed for (many) real-time implementations, because it runs fast enough.
-
- KVRian
- 853 posts since 13 Mar, 2012
huh? I hope not^^Fluky wrote:I think Python should replace Matlab as a DSP prototyping platform.
would be a pain in the ass
like.. read a WAV, upsample 4x via cubic, process-with-your-code, FIR filter, donwsample 4x, measure THD on output... is about 5 commands in matlab.
In python I would still be busy with searching for a lib that can do cubic resample, FIR, THD .... while I can look at first results on matlab already
(Ofc there are DSP libs available for python too, but matlabs only purpose is to test/prototyping/simulate mathematical systems. And it is really good on that IMHO. Python is no out-of-the-box environment, but you need to setup the environment on your own first ==> annoying for rapid prototyping).
~~ ॐ http://soundcloud.com/mfr ॐ ~~
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
Just get proper scientific distribution, then it's better than Matlab. Of course, if you don't know anything, it's different, but then similar than Matlab: which toolbox to use?
-
- KVRian
- 1097 posts since 28 May, 2010 from Finland
PurpleSunray wrote:huh? I hope not^^Fluky wrote:I think Python should replace Matlab as a DSP prototyping platform.
would be a pain in the ass
like.. read a WAV, upsample 4x via cubic, process-with-your-code, FIR filter, donwsample 4x, measure THD on output... is about 5 commands in matlab.
I've been gauging the Signal processing toolbox for Matlab, but since it's expensive, like the other packs, I don't think it's reasonable for someone wanting to develop at home and not in some company.
I find Scipy reasonable (http://docs.scipy.org/doc/scipy/reference/signal.html). I'm using it as part of Sage. But there's also the Enthought distribution.
I also dislike Matlab's language. It's not as fun as Python.
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
At best, it's a dialect, Matlab is not a real language.