Shenidam is a free and open source software (GNU GPL-licensed) system for mapping and locating the audio of a track within a base file. It has the following use cases.

User X owns a DSLR camera which can also takes very high quality videos. He/she decides to take advantage of that to make a motion picture. The only problem with that is that the camera takes very poor sound (due to a very poor inbuilt microphone, with automatic gain control). He/she also has (or plans to buy) a portable recorder which can take high quality stereo sound, but no video. If X lived a few years ago, he/she would have had to use a clapper or fairly precise time stamping, but now these days are over. With software such as shenidam, he/she can automatically replace the bad quality audio with the matching good quality one.

User Y is a technical director for a concert. He/she has multiple cameramen filming the same concert, as well as a high quality audio recording. However the cameras are not synchronised, and synchronising them in post-production is possible, but is a time consuming task. Here also, shenidam can help. Considering the audio tracks captured by the cameras, as well as the audio recording as a base, it can find the offset (precise up to a few audio samples) that separates the tracks with the base.

That's what shenidam does, and it does it in (relatively speaking) very few lines of code. It's relatively fast (although it consumes quite a bit of memory). It works on Linux (tested on Ubuntu - amd64) and with a bit of effort, can be ported to any platform which has fftw3/libsamplerate/libsndfile.

Shenidam is composed of (so far) 4 parts.

  • libshenidam, which is the core functionality of shenidam (offset detection)
  • shenidam, which works on audio file mapping and replacement. It can take any file format supported by libsndfile.
  • shenidam-av, which is a wrapper for the shenidam executable which works with audiovisual material
  • qshenidam, which is a GUI (based on PyQT) for doing what shenidam-av does

For more information contact me (Nabil Stendardo) at (replacing .NOSPAM. by @).