Everybody knows those goofy special graphical effects generated by media player when you listen to a song. I never really liked them because they seem random and don't seem to synchronize with the music track tempo at all.

In a concert, sometimes you see light effects switching on and off, synchronized with some instrument tempo, it seems they're either wired to the instruments or controlled by some guy.

I wonder if a software could do the same if you "circle" a certain part of the song which has a single musical note which is repeated in the song, so that the software can scan through the entire song to find similar notes to generate a tempo file, so that I can then wire this to some light effects or some 3D thing.

I know how to make C++ application, I was taught the physics of signals and how electronic filters work (I also remember a little about fourier series), but I've no ideas what sort of libraries exists and if there are algorithms dedicated to this kind of thing.

So the goal of that application would be to identify more or less similar parts of a given part of a song. In a sense it works a little like voice recognition software.

Are there (open source) C++ signal processing libraries doing this type of stuff, am I the first guy to think about this, and how hard is it to do ?

  • This is interesting. My thought was to build a standard library of pre-trainned sounds so that you don't have to pinpoint the individuals.
    – Yadli
    Commented May 28, 2014 at 3:08
  • yeah you'd have to do that for each song though, but often notes are played on top of others... not to mention guitar solos and occasional notes. I still wish there was way to recognize and isolate one sound in particular, filter it get its amplitude, and wire it some visual effect of some sort. I guess there are many ways to transform sound into light...
    – jokoon
    Commented May 28, 2014 at 9:03
  • 1
    This question appears to be off-topic because it is about programming and really belongs on StackOverflow. It has nothing to do with Sound Design.
    – AJ Henderson
    Commented May 28, 2014 at 14:52
  • This also is not a particularly new concept and you are overcomplicating it, it mostly just involves looking for regular peaks in the audio (beats) and syncing with them. Generally, just looking at the average high point and looking for when that average is exceeded ends up corresponding to the beat.
    – AJ Henderson
    Commented May 28, 2014 at 14:53
  • beats are not enough, some tunes might have some longer period...
    – jokoon
    Commented May 28, 2014 at 21:51

1 Answer 1


DJ software like Native Instruments Traktor is pretty good at guessing the tempo by analysing a music track. It can also send out a MIDI clock signal that can be used to sync lights or something to.

Ableton Live and some other programs can do Audio-To-Midi, with varying success: it works better on simple soundfiles and much worse on full musical songs with lots of instruments.

These solutions are all proprietary unfortunately, but creating pattern recognition for audio is very much possible, just be prepared to really dive into the world of signal processing and audio analysis. Complicated stuff (any pattern recognition on complex signals is).

Not the answer you're looking for? Browse other questions tagged or ask your own question.