Project Overview
ScaleTempo improves variable speed playback for major open source media players (MPlayer, GStreamer, Xine, VLC, Totem, RhythmBox, Amorak, Miro, etc.) by providing an easy to use UI to play audio and video faster or slower than the recorded speed without changing pitch (i.e. no chipmunk effect).
Speeding through media while still understanding speech is a great way to:
- decrease viewing time,
- review previously viewed material,
- find segments of interests,
- increase speech rate of slow speakers, and
- increase the tempo of your music
Slowing down media is useful for:
- transcribing speech,
- learning a new language,
- clarifying garbled speech, and
- slowing down the tempo of your music
Unlike academic approaches based on signal processing and FFT, scaletempo scales the audio in real-time in sync with video with only a slight increase in processing power. Unlike SoundTouch (C++ library), scaletempo (C patch/plugin) natively integrates with media frameworks like GStreamer, Xine, VLC. ScaleTempo also produces better quality sound than existing implementations (xmms/audacious or xine-lib).
While some video players and most frameworks support variable speed *video* playback, all but MythTV lack proper and convenient audio support (fine grain adjustments and preserved pitch). For example, xmms/audacious bury the controls in a plugin preferences dialog, vlc only scales by large amounts, and xine-ui suffers both problems
The ScaleTempo project aims to add this feature where it does not exist and improve the quality and ease of use where it does.
Project founder implemented the scaletempo filter for MPlayer (available in SVN).
Tasks
Port backend to GStreamer
Todo |
|
Environments |
C, GStreamer, GObject, CVS |
Status |
- Plugin complete
- Demo app available
- Patch submitted for inclusion in gst-plugins-bad
|
Port backend to Xine-lib
Todo |
|
Environments |
C, Mecurial, Xine-lib |
Status |
Patch submitted |
Port backend to VLC
Todo |
|
Environments |
C, SVN, VLC |
Status |
Patch accepted |
Update gmplayer UI
Todo |
- add preference to enable/disable scaletempo
- add setting for scaletempo's performance and quality parameters
- (possibly) add GUI to adjust playback speed
|
Environments |
C, SVN, mplayer, Gtk |
Status |
available from command line and mplayer.conf |
Update Totem UI
Todo |
- add UI to adjust playback speed
- add setting for audio playback speed (off when scaled, scale pitch to match speed, or maintain pitch at recorded speed)
- add setting for scaletempo's performance and quality parameters
- (possibly) add UI for reverse playback (GStreamer backend only)
|
Environments |
C, Gtk, GStreamer, Xine-lib |
Status |
- depends on backend port to GStreamer or Xine-lib
- only plays media at recorded speed
- for GSoC 2007, GStreamer developers suggested adding this feature
|
Update Xine-ui
Todo |
- switch or add UI to use small scale playback speed adjustments
- update setting for audio playback speed (off when scaled, scale pitch to match speed, or maintain pitch at recorded speed)
- add setting for scaletempo's performance and quality parameters
|
Environments |
C, CVS, Xine-lib |
Status |
- depends on backend port to Xine-lib
- fast-forward and slow-motion only
- option to enable audio playback when fast or slow (distorts pitch)
- post-processing plugin exists
- hidden under menus and dialog box
- poor sound quality
- poor UI - controlled via generic dialog box
|
Update Miro UI
Todo |
- add UI to adjust playback speed
- add setting for audio playback speed (off when scaled, scale pitch to match speed, or maintain pitch at recorded speed)
- (possibly) add setting for scaletempo's performance and quality parameters
|
Environments |
python, pyGtk, GStreamer, Xine-lib, VLC |
Status |
- depends on backend port to GStreamer or Xine-lib or VLC
- only plays media at recorded speed
|
Update RhythmBox UI
Todo |
- add UI to adjust playback speed
- add setting for audio playback speed (off when scaled, scale pitch to match speed, or maintain pitch at recorded speed)
- add setting for scaletempo's performance and quality parameters
|
Environments |
C, Gtk, GStreamer |
Status |
- depends on backend port to GStreamer
- only plays media at recorded speed
|
Update Amarok UI
Todo |
- add UI to adjust playback speed
- add setting for audio playback speed (off when scaled, scale pitch to match speed, or maintain pitch at recorded speed)
- add setting for scaletempo's performance and quality parameters
|
Environments |
C++, Qt, KDE, Xine-lib |
Status |
- depends on backend port to Xine-lib
- only plays media at recorded speed
|
Update VLC UI
Todo |
|
Environments |
C, SVN, WxWidgets, Qt |
Status |
already available in Qt interface |
Exposes developers to:
- C, C++, Python
- Git, CVS, SVN, Mecurial
- GStreamer, Gtk, GObjects, WxWidgets, Qt, KDE
- media processing and playback
- UI design and implementation
- project management and team collaboration
- Object oriented programming
Useful links: