4

I want to change the tempo of a stereo audio stream in near realtime - the audio is loaded from a file and the buffer should not be longer than 1 second. I tried SoundTouch (http://www.surina.net/soundtouch/) but the quality when decreasing the tempo is very bad. Now I am looking for alternative means to time-stretch the audio signal. One method implemented in Audacity which produces very good results is based on "Subband Sinusoidal Modeling" but it is very slow.

Then there is the Rubber Band Audio processor library (http://breakfastquay.com/rubberband) and Dirac (http://www.dspdimension.com/technology-licensing/dirac/) which are both commercial / GPL and are not fully cross-platform compatible.

Can you recommend me algorithms and/or libraries which match the following criteria?:

  • Cross platform compatible (e.g. iOS, Android, Windows, Linux, MacOS)
  • Suitable for real-time processing as stated above
  • Better quality than the time-stretching method used in the SoundTouch library
  • Tempo change without affecting the pitch
Kieren Johnstone
  • 41,277
  • 16
  • 94
  • 144
Hyndrix
  • 4,282
  • 7
  • 41
  • 82

1 Answers1

2

Take a look at BASS Audio Library http://www.un4seen.com/bass.html and its companion BASS FX Extension

BASS is an audio library for use in software on several platforms. Its purpose is to provide developers with powerful and efficient sample, stream (MP3, MP2, MP1, OGG, WAV, AIFF, custom generated, and more via OS codecs and add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs), and recording functions. All in a compact DLL that won't bloat your distribution.

BASS is available for Win32, Win64, MacOS, Linux, WinCE, iOS, Android, and ARM Linux platforms.

BASS FX plugin extension provides several effects, including reverse playback and tempo & pitch control.

PA.
  • 28,486
  • 9
  • 71
  • 95
  • I had never heard of BASS before but it makes a very good impression! – danijar Apr 03 '13 at 11:36
  • I tried a sample app (http://audiops.codeplex.com/) which is using the Bass (and it's pitch/tempo plugin) library and the result sounds similar to SoundTouch library. – Hyndrix Apr 03 '13 at 11:41
  • It's unlikely you'll get better for free – Kieren Johnstone Apr 03 '13 at 14:41
  • and without some dedicated hardware – PA. Apr 03 '13 at 15:32
  • My problem here isn't that e.g. Dirac is not freeware but that it is not fully platform independent. The quality of all other remaining libraries seems to be very close to each other (all using are probably using SOLA/WSOLA). – Hyndrix Apr 04 '13 at 09:11
  • The Rubber Band Audio processor library which I mentioned in my initial post seems to work on Android and iOS as well and provides better time-stretch functionality. I will give this a closer look. – Hyndrix Apr 04 '13 at 09:46