Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung |
Deadline: 27 January 2006, 6 p.m. (I have to grade the assignments over the following weekend!)
Submit the files via e-mail to jlovisca AT informatik.hs-bremen.de. That mail server is configured somewhat picky to suppress spam. If your mail bounces, use j.loviscach AT computer.org.
Deliver a cleaned-up Visual Studio project with no superfluous files or commented code experiements. Take care of freeing memory correctly and ensure that several copies of the plug-ins may run at the same time with no problems. Use modern C++ style: no #define and no global variables if possible, declare items as const or private if possible, etc. Try to write code that's comprehensible to me with a minimum number of code comments, possibly none at all. This concerns for instance using meaningful names for variables and functions. Try to not duplicate code (left/right, process/processReplacing) because that's easy to break. Use subroutines or loops instead.
Write an mini-essay of approximately 300 words about the how the signal processing in your solution works. Don't copy text or images from the Internet. I can use Google, too.
Some optional extensions for bonus points:
The free audio editor Audacity (with the VST Enabler) may be the ideal application to use the plug-ins. However, you may want to use a more lightweight software for testing, such as:
The easiest way to create audio material for testing is to convert MP3 files to .wav files, for instance through Audacity. Another option is to grab audio from CDs, for instance with CDex. A simple library to read and write a huge variety of audio file formats is Libsndfile. To build it, start the Make.bat batch file. Then put the generated libsndfile.dll file into the System32 folder and include the sndfile.h and libsndfile.lib files in your Visual Studio project file.
Interactive Digital Filter Design is nice Web-based solution to create filters. The code that it creates is far from efficient in several respects (Which?), but obviously works. In contrast to that, DSPlay offers a nice display and can apply its filters to waves. However, it generates code that is broken in many respects: Neither the reset of the counters for the ring buffer not the computation with xcoeffs is done right.