Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Slowing down the playback of an audio file without changing its pitch?

Tags:

java

audio

media

I am working on an application for college music majors. A feature i am considering is slowing down music playback without changing its pitch. I have seen this done in commercial software, but cannot find any libraries or open source apps that do anything like this.

  1. Are there libraries out there?
  2. How could this be done from scratch from various file formats?

Note: I am working in java but am not oppossed to changing languages.

like image 433
Joe Cannatti Avatar asked Sep 12 '08 20:09

Joe Cannatti


2 Answers

Timestretching is quite hard. The more you slow down or speed up the sound the more artifacts you get. If you want to know what they sound like listen to "The Rockafeller Skank" by Fat Boy Slim. There are a lot of ways to do it that all have their own strengths and weaknesses. The math can get really complex. That's why there are so many proprietary algorithms.

This page explains things a bit clearer than I can and links to the Dirac library. http://www.dspdimension.com/admin/time-pitch-overview/

I found this link for java code to do pitch shifting/timestretching http://www.adetorres.com/keychanger/KeyChangerReadme.html

like image 199
Mendelt Avatar answered Oct 21 '22 03:10

Mendelt


I use soundstretch to speed up podcasts which is works quite well, haven't tried it on music though.

like image 26
Mr Shark Avatar answered Oct 21 '22 03:10

Mr Shark