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.
References
[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]. http://www.exocortex.org/dsp/
[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]. http://naudio.codeplex.com/documentation
[7]
Papetti, S. (2000) The ICST DSP Library: A Versatile and Efficient Toolset for Audio Processing and Analysis Applications.
Anand, V. (2012) Dependency Injection Using Ninject. http://www.codeproject.com/Articles/424749/Dependency-Injection-Using-Ninject
[14]
Moq: The Simplest Mocking Library for .NET and Silverlight. https://github.com/Moq/moq4
[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.