Play it slowly
Play it slowly is a software to play back audio files at a different speed or pitch. It does also allow you to loop over a certain part of a file. It's intended to help you learn or transcribe songs. It can also play videos thanks to gstreamer. Play it slowly is intended to be used on a GNU/Linux system like Ubuntu. If you'd like to have a windows version, write a comment.
Features
- Plays every file gstreamer does (mp3, ogg vorbis, midi, even flv!)
- Can use alsa and jack
- Change speed and pitch
- Loop over certain parts
- Export to wav
Screenshot
Download
- playitslowly-1.2.1.tar.gz (37 kb)
Hi, I'm very interested in playitslowly, but it don't work on my archlinux.
gst.ElementNotFoundError: pitch
I have python-2.6, pygtk 2.13, and pygst 0.10.13 on my system. Any hint ?
great work !
Comment by Fernando Henrique — 1/4/09 11:56 PM | # - re
Hi Fernando,
Archlinux doesn't have the gstreamer pitch element. You can easily compile that yourself:
pacman -S soundtouch
cd /tmp
wget gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-0.10.9.tar.gz
tar xzf gst-plugins-bad-0.10.9.tar.gz
./configure --prefix=/usr
cd ext/soundtouch
make && make install
test with:
gst-inspect-0.10
I hope that helps!
Comment by Jonas Wagner — 1/5/09 2:59 AM | # - re
Nice, works on my Ubuntu once I installed the GST plugins. Didn't know they can do that. I have some suggestions:
Comment by Sam — 1/5/09 2:14 PM | # - re
Hi Sam,
"try before you install" is possible, just extract the archive and execute ./bin/playitslowly. I already asked the getdeb.net guys to create a .deb package.
Regarding the pitch makes perfect sense, I was just to lazy to do that so far.
Cheers,
Jonas
Comment by Jonas Wagner — 1/5/09 2:37 PM | # - re
Hello, I am trying to run playitslowly on Ubuntu Hardy, and I get no sound and this on the terminal:
-----------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/playitslowly/playitslowly.py", line 246, in updateposition position, fmt = self.pipeline.playbin.queryposition(TIME_FORMAT, None)
gst.QueryError: query failed
-----------------------------------
Can You help me how to solve this? I guess I have installed everything I need..
Thanks
Tomas
Comment by ElPraga — 1/8/09 11:10 AM | # - re
Hi ElPraga,
That should work in the new version.
Can you try this please?
Comment by Jonas Wagner — 1/8/09 3:49 PM | # - re
Hello Jonas! Thanks a lot!! The version 1.1 is working fine. I have one feature request though. It would be quite useful, if one could invoke playitslowly via "playitslowly file.mp3" (at least I did not find a way how to do it :-) ) It is not a big deal, but it would be nice.
Tomas
Comment by ElPraga — 1/9/09 12:05 AM | # - re
Hi Tomas,
I'll add that feature this evening.
Cheers,
Jonas
Comment by Jonas Wagner — 1/9/09 12:14 PM | # - re
Hallo, this is great programm, I use at home linux, but at work only windows. So version for win suits me well.
Thanks
Comment by chacal — 1/12/09 1:46 PM | # - re
Hi, I can use "playit" by learning languages, but I wasn't successfull with the compilation. I am a current user. I use Mandriva from 2002, so for me could be rpm packages the solution. I Hope, it will be made in time.
Comment by Pavel — 1/15/09 7:50 PM | # - re
it is cool.
Comment by chris — 1/25/09 3:11 AM | # - re
Hi Jonas. First of all great little program. Thanks! I post this just if someone else needs to output on a different soundcard than the default one. You can do it by running:
playitslowly --sink="alsalink device=hw:1"
the part in the brackets was the hard part to find...
Btw, I understand that the start/stop sliders are limited to 0.1sec increments. It would be nice to be able to create perfect loops hence requiring a finer resolution. An idea would be to use keyboard shortcuts to precisely set start and stop positions. What do you think?
Comment by Claudio — 3/23/09 8:56 AM | # - re
Hi Claudio,
it might make sense to add a textbox to the left. Although the the timing of the stop slider is not that accurate anyway (right now). By the way it is playitslowly --sink="alsasink device=hw:1"
Cheers,
Jonas
Comment by Jonas Wagner — 3/24/09 11:54 AM | # - re
Hi Jonas.
Very nice little program, thank you.
I'd like to make two suggestions:
The install script scans for dependencies, so that you find out what you're missing while in install mental mode, not while running it, and:
It would be really helpful if the "position" was in h:m:s, in case I've marked times in an interview, or are switching between different programs.
Cheers.
Comment by Dubito — 5/6/09 10:12 PM | # - re
Hi Dubito,
Thanks for the suggestions. I'll see what I can do.
Jonas
Comment by Jonas Wagner — 5/8/09 12:17 PM | # - re
Hi, Jonas,
Thanks for your Program, I use it quiet often - I play guitar too and I like it especially because the Soundtouch library doesn't change the sound and volume that much when slowing down - compared to the plugin for audacious.
Unfortunately after my last update on my Ubuntu 9.04 your program didn't start anymore complaining it can't load your mygtk library ( on playitslowly.py at line 43).
I helped myself by changing the line from:
from playitslowly import mygt
to
import mygtk
Now it runs perfect again.
Maybe that helps anybody having the same problems as I did.
Cheers,
Christian
Comment by Christian — 5/8/09 6:31 PM | # - re
Thanks for the comment christian. I'll check it out.
Comment by Jonas Wagner — 5/10/09 10:31 PM | # - re
I've spend quite some time looking for a suitable player for transcription of the interviews and was glad to discover playitslowly. I would be happy to start using it right now, however I see at least two essential features missing in the latest version.
1) rewind/forward action. It would be nice to have even two implementations of these with different increments (say 1 and 5 sec).
2) global controls. These can be implemented either through some kind of playitslowly-remote with command line switches (--play-pause, --rw1sec, --fw1sec, --slower --faster), or through dbus interface. However, from my experience the latter is so slow that it will be almost useless for this purpose.
with those features implemented playitslowly would be an ideal tool for my task.
While searching I also found another project, which is supposed to serve the same purpose as yours. It is nicely made, even thought not very stable on my system. I'm sorry to see that it looks like abandoned since 2006, but perhaps you can borrow some ideas from there.
Anyhow, thanks for the good job and would be nice to see this project developing further.
Comment by atenrok — 5/11/09 11:09 PM | # - re
ups. Here is the link to the projects sourceforge.net/projects/opentranscribe
Comment by atenrok — 5/12/09 1:23 AM | # - re
Hi atenrok,
Thank you for the kind words. I'm very busy right now. But I'll consider your proposals as soon as I work on playitslowly again.
Cheers,
Jonas
Comment by Jonas Wagner — 5/12/09 10:02 PM | # - re
Fedora user here, the program installed but wouldn't launch. I followed the advice of #129 Christian above and it works. /usr/lib/python2.6/site-packages/playitslowly/playitslowly.py edited line 43 Also, on Fedora, gstreamer-plugins-bad is divided into two (I needed gstreamer-plugins-bad-extras).
Comment by Patrick — 5/14/09 12:50 AM | # - re
Traceback (most recent call last): File "/usr/lib/python2.6/runpy.py", line 122, in _run_module_as_main "__main__", fname, loader, pkg_name) File "/usr/lib/python2.6/runpy.py", line 34, in _run_code exec code in run_globals File "/home/burned/Desktop/playitslowly-1.1.0/playitslowly/playitslowly.py", line 43, in <module> from playitslowly import mygtk File "playitslowly/playitslowly.py", line 43, in <module>
from playitslowly import mygtk
ImportError: cannot import name mygtk
can someone help me with this problem?
Comment by burned — 5/21/09 2:02 PM | # - re
git snapshot is working (maybe you should update the link in this post) ;)
Comment by burned — 5/21/09 2:07 PM | # - re
Ich hab glesn du sprichst ja deutsch^^ ich hab in letzter zeit nach programmen gesucht bei denen ich die möglichkeit hab den das tempo zu ändern ohne dass sich der pitch ändert.... dein programm hat mir da sehr geholfen...ich hab es jetzt ein wenig abgeändert damit ich nur einen slider hab für pitch und speed...ich werde versuchen da noch irgendwie so eine art medienbibliothek für zu basteln (naja...mal schaun^^...bis jetzt kann ich ja eig noch fast gar kein python) ich finde das programm aber echt klasse! gute arbeit! danke! mfg burned
Comment by burned — 5/22/09 6:56 PM | # - re
This program works well on sound, but not on video. That is, I can watch a video while slowing down the soundtrack, but the video will play at normal speed. I'm running it in Ubuntu Ibex.
Comment by funky_uncle — 5/26/09 10:13 PM | # - re
Can't run playitslowly 1.2.0 on my OSX (Python 2.5.4) or Ubuntu (Python 2.5.2):
I get the following when I 'sudo python setup.py install'...
... byte-compiling /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/playitslowly/metronome.py to metronome.pyc File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/playitslowly/metronome.py", line 24
class MetronomeSource(gst.BaseSrc):
^
SyntaxError: invalid syntax
Comment by Lyon Lebrun — 5/27/09 3:00 AM | # - re
Awhh, that looks like I broke support for python2.5 by using a class decorator in the metronome, that's not even used right now. I've fixed it in 1.2.1 earlier today :)
Can you please confirm me that it works now?
Thanks,
Jonas
Comment by Jonas Wagner — 5/27/09 8:46 AM | # - re
Hello,
I created a packages for Ubuntu Hardy and Jaunty.
Download from my repository:
Ubuntu Hardy Python 2.5
download.tuxfamily.org/ufs/dists/hardy/main/binary-all/sound/
Ubuntu Jaunty Python 2.6
download.tuxfamily.org/ufs/dists/jaunty/main/binary-all/sound/
This tools is very good :-)
Thanks,
ElGeneralMidi
Comment by elgeneralmidi — 5/27/09 9:13 AM | # - re
Hi,
I heard about this cool tool from my friend. I would like to give it a try but cannot get it to work under gentoo. I'm hopeless. Maybe you could tell where the problem can be. Here is a thread on forums.gentoo.org: forums.gentoo.org/viewtopic-p-5939010.html#5939010
Comment by luboss — 8/21/09 12:29 PM | # - re
Thank you Jonas for the solution. Playitslowly finally works (btw except manual soundtouch compilating I had to download gst-plugins-good and gst-plugins-ffmpeg). The tempo fine-tuner works awesome but I had problems with playback. I cannot even pause or rewind (the button doesn't work at all). I tried gst-inspect-0.10 playback and I can see that it's available (gst-plugins-base).
Comment by luboss — 8/21/09 6:14 PM | # - re
Btw, I would like to ask if it is able to tune the pitch more finer than just whole tones. I mean now only I can is change the pitch from 0 to +1 +2 but cannot do something like +0.25 which would be very helpful. For example in case that guitar tunning is slightly different than the song's one (for example 440 vs. 460). If not I would like to suggest it for the next release.
Comment by luboss — 8/21/09 6:16 PM | # - re
Actually the pitch is currently changed in semitones, not whole tones. I'll think about a solution to your problem when I create the next version.
Cheers,
Jonas
Comment by Jonas Wagner — 8/24/09 8:07 PM | # - re
This is one of the apps I really miss in GNU/Linux after try Transcribe! ( www.seventhstring.com ) But I have an error message that it's annoying me after 2 hours of looking for a solution :(
[code]
playitslowly
sizeof eq: 164
/usr/lib/python2.6/dist-packages/gst-0.10/gst/__init__.py:194: Warning: g_param_spec_internal: assertion `(name[0] >= 'A' && name[0] <= 'Z') || (name[0] >= 'a' && name[0] <= 'z')' failed from _gst import *
ERROR: Caught a segmentation fault while loading plugin file: /usr/lib/gstreamer-0.10/libgstladspa.so
Please either:
Traceback (most recent call last):
File "/usr/lib/python2.6/runpy.py", line 122, in _run_module_as_main "__main__", fname, loader, pkg_name) File "/usr/lib/python2.6/runpy.py", line 34, in _run_code exec code in run_globals File "/var/lib/python-support/python2.6/playitslowly/app.py", line 37, in <module> import gst File "/usr/lib/python2.6/dist-packages/gst-0.10/gst/__init__.py", line 194, in <module> from _gst import *RuntimeError: can't initialize module gst: Error al volver a escanear el registro , child terminated by signal [/code]
Comment by scofield — 9/27/09 2:58 PM | # - re
When i run the app, under Kubuntu 9.04. KDE 4.3, i get this error message: "An error has occured: GError('no element "autoaudiosink"',)" Can anyone tell me what's wrong ?
Comment by Ronen — 9/30/09 7:01 AM | # - re
Hi,
I am VERY GLAD I found this application ! I always liked those raise speed/pitch options (I mean being able to listen to the male version of popular girl singers is hilarious ! haha) + the quality of the sound is a lot better when changing pitch or speed only compared to many software plugins or other softwares similar to this one.
The option of saving the results into a Wav file is AMAZING ! Maybe it's just a little feature, but it makes a whole lot difference =).
THUMBS UP ALL THE WAY ! =)
Comment by Mathias — 10/6/09 5:15 PM | # - re
V interested in trying this out but unfortunately only run windows :(
Comment by Jonathan — 10/19/09 4:30 PM | # - re
Hi!
I really like your program; I just finished an article for the german ubuntuusers-wiki (see wiki.ubuntuusers.de/Baustelle/PlayItSlowly ). Perhaps you could have a look at it and tell me if it's ok for you?
I've noticed one minor "bug": The wave-files produced as output are not properly recognised by kd3 and other cd burning applications - any ideas why?
Otherwise: thumps up! ;-)
so long
hank AKA Heinrich Schwietering
Comment by Heinrich Schwietering — 11/9/09 6:48 PM | # - re
Hello,
is the source code available anywhere?
Comment by Luca — 1/7/10 11:13 AM | # - re
Sure, it's in the download. ;)
Comment by Jonas Wagner — 1/7/10 1:14 PM | # - re
I would most definitely like a windows version
Comment by Jaron — 1/16/10 9:00 PM | # - re
Nice useful program! I've been looking for something like this. For the next update, it would be nice if there were scroll controls on either end of the sliders to bump them just a bit. If there were buttons on to hit to set the start and end positions it might be a bit easier to set up a loop section, If tuning was in cents (1/100 of a semitone) that would match the readout of many tuners- but that's not essential. I'm using it to learn celtic tunes for a slow session I attend- playing 1-key flute or fiddle.
Comment by Coupedefleur — 2/4/10 1:08 AM | # - re