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: Slowing down media is useful for:

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: Useful links: