Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Signal processing to music audio -- synthesis, effects, and analysis. (columbia.edu)
81 points by gourneau on April 26, 2011 | hide | past | favorite | 13 comments


I study music information retrieval (MIR). Here are some of my bookmarks:

MIR Tools: http://www.music-ir.org/evaluation/tools.html

MIR How-Tos: http://www.ifs.tuwien.ac.at/mir/howtos.html

MIR Data Sets: http://grh.mur.at/sites/default/files/mir_datasets_0.html

MIR Toolbox (Matlab): https://www.jyu.fi/hum/laitokset/musiikki/en/research/coe/ma...

Million Song Dataset: http://labrosa.ee.columbia.edu/millionsong/

The "music" tag on Stack Overflow has some basic discussions on MIR: http://stackoverflow.com/questions/tagged/music


those interested in this will probably also be interested in the publications of Julius O. Smith https://ccrma.stanford.edu/~jos/pubs.html.


Thanks for this!


This looks great! Haven't watched the videos yet, but the lecture slides are good.

Side note, this may disappear after the course is over. For anyone who is interested in going through this on their own later, might I recommend

wget -rkp -np --cut-dirs=1 http://www.ee.columbia.edu/~dpwe/e4896/

(Warning, this includes the lecture videos so will be multi-GB)


Thanks for the pointer - I've been looking for something similar (DSP being to general).

While this course describes the mathematical background of music signal processing, does anyone know of a practical extension to it - i.e. resources that demonstrate the basics like FFT, parametric EQs and so on in such a way that one can write a time-efficient implementation of them?


The website by Julius O Smith noted above is a goldmine for a lot of theoretically grounded but practical descriptions of many algorithms. Then, you have http://www.musicdsp.org which has a lot of code snippets, + the ML is frequented by some of the most gifted programmers in the area of music softwares.

I have noticed that papers by Jon Dattorro are now online: Jon Dattorro is the guy behind a lot of ensoniq and lexicon stuff, and he knows a lot about both practical and theoretical aspects (look for "Jon Dattorro aes" for his seris in the journal of AES).


For a simple and straightforward FFT implementation, I would recommend taking a look at the Kiss FFT source code. http://sourceforge.net/projects/kissfft/


Have you tried this site/book?

http://www.dspguide.com/



Hackers wanting to get their hands dirty with audio processing might be interested in the Pure Data programming environment: http://puredata.info/


If you really want to get your hands nasty, gross, and smelly, I would suggest learning to program using either an OS's native audio library (CoreAudio, ALSA/Jack, etc.) or using a cross platform library (PortAudio, RTAudio). One might consider using some toolkit (CLAM, STk) if they would not like to have to mess with reading headers.

pd seems too much of a musician's solution, though people are writing advanced plug-ins all the time for it in C/C++. (Max/MSP has support for Java). If you really just want to get your feet wet slightly damp, I'd recommend SuperCollider.

Then again, there's always matlab.

I for one would rather just program a Basic Stamp to drive a DAC made from resistors on a breadboard. Now that's hackin'!


I'd position pd not against low-level stuff but as a complementary to them, just as Matlab. It is easier to prototype new ideas and algorithms in an environment with higher abstraction level. After you know what you want, HC-implementation can begin.. :-)

I can certainly appreciate your appetite to drive DACs on a breadboard!

For likeminded hackers with an itch to solder, I suggest also looking at some analog synth projects, such as the great x0xb0x: http://www.ladyada.net/make/x0xb0x/ It's a precise clone of the legendary acid synth Roland TB-303 and what's best, it's completely open source! :-) I'm building mine just now..


This is what I was searching for! Thank you!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: