Toolkits for Real Time Digital Audio Signal Processing Teaching Laboratory


This paper describes an audio digital signal-processing toolkit that the authors develop to supplement a lecture course on digital signal processing (DSP) taught at the department of Electrical and Electronics Engineering at the University of Rwanda. In engineering education, laboratory work is a very important component for a holistic learning experience. However, even though today there is an increasing availability of programmable DSP hardware that students can largely benefit from, many poorly endowed universities cannot afford a costly full-fledged DSP laboratory. To help remedy this problem, the authors have developed C#.NET toolkits, which can be used for real-time digital audio signal processing laboratory. These toolkits can be used with any managed languages, like Visual Basic, C#, F# and managed C++. They provide frequently used modules for digital audio processing such as filtering, equalization, spectrum analysis, audio playback, and sound effects. It is anticipated that by creating a flexible and reusable components, students will not only learn fundamentals of DSP but also get an insight into the practicability of what they have learned in the classroom.

Share and Cite:

Nkurikiyeyezu, K. , Ahishakiye, F. , Nsengimana, C. and Ntagwirumugara, E. (2015) Toolkits for Real Time Digital Audio Signal Processing Teaching Laboratory. Journal of Signal and Information Processing, 6, 92-98. doi: 10.4236/jsip.2015.62009.

Conflicts of Interest

The authors declare no conflicts of interest.


[1] Feisel, L.D. and Rosa, A.J. (2005) The Role of the Laboratory in Undergraduate Engineering Educa-tion. Journal of Engineering Education, 94, 121-130.
[2] Rwanda Ministry of Finance and Economic Planning (2013) Economic Development and Poverty Reduction Strategy (EDPRS). The Republic of Rwanda, Kigali.
[3] Houston, B. and Ptersen, B. (2003) Exocortex.DSP: An Open Source C# Complex Number and FFT Library for Microsoft .NET [Online].
[4] Cook, P.R. and Scavone, G.P. (1999) The Synthesis ToolKit (STK). International Computer Music Conference, 196-199.
[5] Lazzarini, V. (2001) Sound Processing with the SndObj Library: An Overview. International Conference on Digital Audio Effect (DAFx), 4, 6-8.
[6] Heath, M. (2013) The NAudio Documentation Wiki [Online].
[7] Papetti, S. (2000) The ICST DSP Library: A Versatile and Efficient Toolset for Audio Processing and Analysis Applications.
[8] Luck, I. (2005) Un4seen Developments - 2MIDI / BASS / MID2XM / MO3 / XM-EXE / XMPlay [Online].
[9] Niedergesäß, B. (2013) BASS.NET API for the Un4seen BASS Audio Library.
[10] Chapman, S.J. (2007) MATLAB Programming for Engineers. Cengage Learning, 3.
[11] Skeet, J. (2011) C# in Depth. 2nd Edition, Manning Publications Co., Greenwich, CT.
[12] Math.NET (2005) Math.NET Iiridium.
[13] Anand, V. (2012) Dependency Injection Using Ninject.
[14] Moq: The Simplest Mocking Library for .NET and Silverlight.
[15] Cwalina, K. and Abrams, B. (2008) Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable. Net Libraries, Addison-Wesley Professional, Boston.
[16] Hanmer, R. (2013) Pattern-Oriented Software Architecture for Dummies. John Wiley & Sons, Ltd., Hoboken.
[17] Fowler, M., Rice, D., Foemmel, M., Hieatt, E., Mee, R. and Stafford, R. (2002) Patterns of Enterprise Application Architecture. Addison Wesley, Boston.
[18] Gaddis, T. (2012) Starting out with Python. Addison-Wesley, Boston, 1.
[19] Liang, D. (2013) Introduction to Programming Using Python. Prentice Hall, Englewood Cliff.

Copyright © 2023 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.