Can we use"audacity"for teaching undergraduate labs/practicals of digital signal processing? or only MATLAB/Octave should be used?
Weblink of "audacity"
Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. It only takes a minute to sign up.Sign up to join this community
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.
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.
+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.
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.