5
$\begingroup$

Can we use"audacity"for teaching undergraduate labs/practicals of digital signal processing? or only MATLAB/Octave should be used?

Weblink of "audacity"

https://www.audacityteam.org/

$\endgroup$
6
  • 4
    $\begingroup$ Since audio signal processing incorporates huge body of dsp, and since audacity lets you write already designed practical algorithms in a convenient software framework, it will definetely be helpful in practice. However, "developing" the algorithms should also be considered, and audacity (afaik) will not help there and you would still need something like Octave/Matlab or Python, if not a Casio/TI calculator, in that case... $\endgroup$
    – Fat32
    Jul 6 at 13:18
  • 2
    $\begingroup$ What language (or languages) do these students already know and use? I thought the trend nowadays is that EE students do things in Python or MATLAB. I am unfamiliar with Python enough that I don't know if there are utilities for creating, reading, and writing .wav files. I think for the most part, being able to open a .wav file, doing math on it, and saving it, will be the way to do audio DSP in the class room. MATLAB plays files to the loudspeaker, but you might want to use Audacity as the tool to play, edit, and manipulate sound files. $\endgroup$ Jul 6 at 13:59
  • 1
    $\begingroup$ @robertbristow-johnson It's also worth us knowing whether he's talking about undergraduate labs in EE or undergraduate labs in music technology. Very different target audiences. :) $\endgroup$
    – Graham
    Jul 7 at 10:22
  • 1
    $\begingroup$ It's worth noting that there was a corporate buy-out of Audacity; due to creative differences, many of the old developers have been working on Tenacity (a fork of Audacity). $\endgroup$
    – wizzwizz4
    Jul 7 at 11:40
  • 1
    $\begingroup$ GNU Radio is another signal processing package that can be useful for teaching without programming. $\endgroup$
    – jpa
    Jul 8 at 9:04

4 Answers 4

12
$\begingroup$

That depends on a lot on your learning goals for the lessons and the lab.

Audacity is primarily an audio editor designed for music recording and production. It has a lot of signal processing baked in, but it's only exposed to the user to the extent as it requires to make the music sound good. Signal Processing is just a means to an end here.

Matlab/Octave are scientific programming languages. They are specifically designed to develop and apply digital signal processing and they come with a lot of libraries that help do this. They are not great for large interlinked projects, since they are primarily designed to tackle fairly well defined scientific problems.

Another good choice is Python, which is a very universal language with a lot of tools and libraries for all sort of things including digital signal processing. A lot of open source algorithms are released in Python these days. Python is also better at building large projects.

All three have their pros and cons. Beside the Signal Processing aspects, it's also helpful to assess the "other employable skills" that the student might learn, like software architecture & development, version control and collaboration, unit testing, release process, etc.

In terms of "most commonly used languages" (= employability) you will find Python in the top 3, MATLAB in the top 20 and Audacity nowhere.

$\endgroup$
3
  • 1
    $\begingroup$ Lisp comes in at #32! $\endgroup$
    – Peter K.
    Jul 6 at 13:22
  • $\begingroup$ Interesting list. "C" at number 2 is indeed frightening. And Fortran is still #26. Well at least Algol 68 and punch cards seem to have shuffled off the stage. All stuff I learned 35 years ago. Apparently one way to gain employability is being a crusty old f..rt :-) :-) $\endgroup$
    – Hilmar
    Jul 6 at 13:38
  • 2
    $\begingroup$ A friend of mine learned COBOL in the finance industry and earns stupid money on very short-term consulting jobs either maintaining it or helping those converting it to something more modern. $\endgroup$
    – Peter K.
    Jul 6 at 14:12
4
$\begingroup$

It depends on the target audience, but it looks like Nyquist, Audacity's way of creating plugins, is a nice way to do some signal processing.

The issue will be that the students will need to learn Nyquist which uses either Lisp or SAL for modifying it programmatically. That may be more of a learning curve for students already familiar with Python or Matlab, which would be the more traditional software for teaching DSP.

$\endgroup$
3
$\begingroup$

+1 for Octave and Python but if DSP using some programming language is not the prime study then, I would suggest some modular development system as like Cycling 74's MAX or DSP Robotics FlowStone as couple to mention . Both supports coding too.

There are also some online tools like Faust IDE one to mention.

$\endgroup$
2
$\begingroup$

The application is largely irrelevant

In audio processing, the standard format of DSP plugins used everywhere is VSTs. If you're going to restrict yourself to Apple then you might go for AU, but they're very similar anyway. Wherever you intend to do your DSP, unless you're hard-coding it in firmware somewhere, you'll be using this as the architecture.

Because this is the standard format, absolutely any audio processing application can load it and use it. You don't need to care whether the students use Audacity, REAPER, MAX, or anything else.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.