Learning Resources - Holzhaus/mixxx GitHub Wiki
Learning resources
This page has some resources to learn background information that may help you contribute to Mixxx.
Basics
We recommend you review these sections of the Qt documentation to get familiar with aspects of Qt that we use heavily:
If you're not familiar with C++, The Cherno Project on YouTube has a good series dedicated to the core concepts.
As a start, we highly recommend these resources from the Xiph.org Foundation for background information on digital and analog signal processing:
Software Engineering For Realtime Audio
- Time Waits For Nothing: brief introduction to the challenges of writing realtime code (for audio or other purposes)
- C++ in the Audio
Industry
- one-hour talk from CppCon describing the challenges of audio software engineering.
- Programming with Lightweight Asynchronous Messages: Some Basic
Patterns
- blog post from Ross Bencina (PortAudio author) about common audio signal processing patterns.
- Real-time 101, a two-hour talk about real-time development. Focuses on issues of real-time threads and their communication with the outside world. Part I: Investigating the real-time problem space and Part II: The real-time audio developer’s toolbox.
Signal theory
These resources go more in depth about signal processing. Unless you're writing effects code, you probably don't need to know this much detail to work on Mixxx.
- Ethan Winer's book The Audio Expert explains everything from decibels to digital-to-analog converters to equalizers.
- MIT OpenCourseWare lectures:
* [http://ocw.mit.edu/resources/res-6-008-digital-signal-processing-spring-2011/index.htm](/Holzhaus/mixxx/wiki/Digital-Signal-Processing): Video lecture. There's also lecture notes, proposed exercises and their solutions for each video.
- Coursera courses:
* [https://www.coursera.org/course/audio](/Holzhaus/mixxx/wiki/Audio-Signal-Processing-for-Music-Applications)
* [https://www.coursera.org/course/dsp](/Holzhaus/mixxx/wiki/Digital-Signal-Processing)
- Julius O. Smith (CCRMA) online books:
* [https://ccrma.stanford.edu/~jos/mdft/](/Holzhaus/mixxx/wiki/Mathematics-of-the-Discrete-Fourier-Transform-(DFT))
* [https://ccrma.stanford.edu/~jos/filters/](/Holzhaus/mixxx/wiki/Introduction-to-Digital-Filters)
* [https://ccrma.stanford.edu/~jos/pasp/](/Holzhaus/mixxx/wiki/Physical-Audio-Signal-Processing)
* [https://ccrma.stanford.edu/~jos/sasp/](/Holzhaus/mixxx/wiki/Spectral-Audio-Signal-Processing)
- Do-It-Yourself Digital Signal Processing. Site with a huge list of online lectures, FAQs and other resources for learning DSP for music applications.
* [http://diydsp.com/livesite/pages/home#DSP_Theory](/Holzhaus/mixxx/wiki/DSP-Theory)
* [http://diydsp.com/livesite/pages/home#DSP_FAQs](/Holzhaus/mixxx/wiki/DSP-FAQs)
* [http://diydsp.com/livesite/pages/home#DSP_Books](/Holzhaus/mixxx/wiki/DSP-Books)
- Music DSP. Site with a huge database of DSP code.
- The Art of VA Filter Design by Vadim Zavalishin (Native Instruments)