So, here's a slightly odd thought I was having: I'd like to be able to take songs (ie, off of CDs), and change their tempo, preferably without having to do much work, so that I can reasonably do fairly significant batches of this. So, there are a few steps to this, and I'm wondering if anyone has advice for any of them.
- I need to find out the current tempo in some way, to know how much it needs to change to meet a particular target. So far the only thing I've found for doing this is the "tap this button when you hear the beat" feature in Jokosher. This gets the job done (and is actually pretty nifty in its own right), but is susceptible to human error and a bit clumsy/time-consuming for many files, so if there was some magic way for a program to detect it that would be really nice.
- I need to actually do the actual speed adjustment. Audacity seems to do this pretty well, so this may be the easiest step actually.
- I need to adjust the pitch to bring it back to where it was before step 2, so I don't get a bunch of "Alvin and the Chipmunks" covers of my music instead. I found some plugins for Audacity that claim to accomplish this in the swh-plugins package, but the quality of the result is very sub-optimal. There seem to be a bunch of other such plugins packages, so maybe one of them contains something better.
Now, in a perfect world, I would run a command that took as arguments the target tempo, input directory, and output directory, and just did its thing. That's probably more complicated to code than I can reasonably expect, but hey, maybe I'll get lucky - anyone know of such a thing?
Bookmark/Search this post with:
Comments
why?
Just out of curiosity, why do you want to change the tempo on songs?
Try soundstretch
http://www.surina.net/soundtouch/soundstretch.html
cheers,
Martijn van der Kwast
Sax can manage both 2 and 3
Sax can manage both 2 and 3 from your list, is open source and command-line based, hence you can script it to your hearts content.
I love Mixxx
I love Mixxx http://mixxx.sourceforge.net/
It's a nice Qt app for Dj or just play some songs in a party, see their bpm, equalize or make them sound faster. Unfortunately I think you can not modify the songs, just play them
More people looking for
More people looking for this: http://blog.markvdb.be/2008/01/oh-flying-spaghetti-monster-music.html
Change song speed contact
Hi Tony,
I know of a class mate of mine who graduated for his master's in AI on this subject (adapt song speeds for work out purposes) while doing an internship at Philips Reseach. You might be able to get some info from him. His web adress is http://www.redant.nl/g.l.wijnalda/
The website is out of date but the contact details should be current.
Good luck! and let me know if you find out how to do it with free software.
Ruud Schellekens
(ruudschellekens AT google's mail service DOT com, you know: GMAIL ;-) )
GStreamer
GStreamer can manage this, provided you're content to specify the new tempo as a percentage of the old value rather than an absolute bpm. It's not ideal, but it does make it easy to script.
It could even rip straight from CD to slowed-down Ogg/MP3/whatever files. :)
GStreamer does do it
Try this:
gst-launch filesrc location="file.mp3" ! decodebin ! audioconvert ! speed speed=1.5 ! audioconvert ! alsasink
It is from memory (I did it some time ago) but it's definitely a variation on that. location needs to be a URI, so you may need to use file:///home/something/music/file.mp3 or something to that effect. speed is a float between 0.0 and 2.0.
HTH,
Kris
Use Audacity
Audacity can handle this fine. There's something like a "change tempo" menu option somewhere that doesn't adjust the pitch. There's also a "change pitch" option which doesn't change tempo. I used the latter option to transpose a recording for my sister when she wanted to play a piece along with the recording, but her sheet music was in a different key.
Jeremy
http://jeremy.visser.name/
(P.S. enable OpenID on your blog, pretty please)
Timestretching
There is a perfect software for that: Ableton Live, but its only on Windows and isn`t cheap.
EnergyXT 2 can do the same thing, but doesn`t have the precission of Live. EnergyXT 2 is cheaper
and has a native Linux version...