foo. bar. baz. quux.

Schemep3

From WikiBazQuux

(Difference between revisions)
Jump to: navigation, search
Revision as of 20:18, 8 July 2008
Cwbowron (Talk | contribs)
(Dependencies)
← Previous diff
Revision as of 20:20, 8 July 2008
Cwbowron (Talk | contribs)
(Features)
Next diff →
Line 10: Line 10:
* '''SQLite Database''' * '''SQLite Database'''
** Track last played and play count ** Track last played and play count
-* '''Tags''' - ''will be switching to taglib''+* '''Tags via TagLib'''
-** FLAC+** FFI interface to C wrapper functions
-*** tag parser+** scheme extension for id3v2 frame blocks
-*** duration+** scheme extension for flac comments
-** mp3+
-*** id3v1 tag reader+
-*** id3v2 tag reader+
-*** estimates playback length (hacky)+
* '''Playback''' * '''Playback'''
** Uses external mplayer process ** Uses external mplayer process
Line 38: Line 34:
*** space -> pause *** space -> pause
*** n,N -> next *** n,N -> next
-* '''TagLib''' 
-** FFI interface to C wrapper functions 
-** scheme extension for id3v2 frame blocks 
-** scheme extension for flac comments 
* '''Misc''' * '''Misc'''
** Export to m3u (playlist context menu) ** Export to m3u (playlist context menu)
** Store preferences in db ( scrobbler username, password ) ** Store preferences in db ( scrobbler username, password )
** last.fm submission ** last.fm submission
-** id3lib ffi - ''deprecated for taglib'' 
* '''OS Specific''' * '''OS Specific'''
** Windows ** Windows
*** Pause on terminal lock *** Pause on terminal lock
*** global hotkeys (C-A-Space => Pause, C-A-Right Arrow => Next ) *** global hotkeys (C-A-Space => Pause, C-A-Right Arrow => Next )
 +* Deprecated
 +** id3lib ffi - ''deprecated for taglib''
 +** FLAC
 +*** tag parser
 +*** duration
 +** mp3
 +*** id3v1 tag reader
 +*** id3v2 tag reader
 +*** estimates playback length (hacky)
=== To Do === === To Do ===

Revision as of 20:20, 8 July 2008

Schemep3 is a mp3 and flac playback system and database.

schemep3 is written in MzScheme and uses the MrEd GUI toolkit.

It is built on top of Jay McCarthy's sqlite module. It uses a slave mplayer process for audio playback.

If you are interested in the code, please email me at chris SQUIGGLE bowron dizzot us.

Contents

Features

  • SQLite Database
    • Track last played and play count
  • Tags via TagLib
    • FFI interface to C wrapper functions
    • scheme extension for id3v2 frame blocks
    • scheme extension for flac comments
  • Playback
    • Uses external mplayer process
    • playback seek by clicking on progress bar
  • Playlist
    • Accepts dropped files or results from database query
    • Configurable format
    • Marks the current playing file in the playlist
    • Playlist ordering using meta-up, meta-down
    • Saved / restored using database
  • Playback Queue
    • Play next option
    • Add to queue option
  • GUI
    • Optional album art display (folder.jpg)
    • UI for changing ratings
    • Progress bar
    • keyboard controls
      • enter -> play
      • space -> pause
      • n,N -> next
  • Misc
    • Export to m3u (playlist context menu)
    • Store preferences in db ( scrobbler username, password )
    • last.fm submission
  • OS Specific
    • Windows
      • Pause on terminal lock
      • global hotkeys (C-A-Space => Pause, C-A-Right Arrow => Next )
  • Deprecated
    • id3lib ffi - deprecated for taglib
    • FLAC
      • tag parser
      • duration
    • mp3
      • id3v1 tag reader
      • id3v2 tag reader
      • estimates playback length (hacky)

To Do

in no particular order

  • database updates from file (add currently works)
  • dropping an m3u loads all the files contained in it
  • multiple playlists
  • playlist tree - primitive prototype working
  • store / restore queries
  • scheme based queries...
  • playback queue viewer
  • copy to mp3 player (and convert -> mp3)
    • converter
      • input -> pcm -> mp3 via mplayer and lame is working
  • audioscrobbler caching
  • file management?
    • automatically move files into their correct spot in my hierarchy
      • mostly working

Screenshots

Dependencies

Personal tools