PriorArt - pkess/beets GitHub Wiki
This page contains disorganized notes regarding what we can learn from other projects that have gone before.
Library Management
Well-respected OSS media players and how they've accomplished library management.
Banshee
Written in C#. Browse
source. Checkout: svn co http://svn.gnome.org/svn/banshee/trunk/ng-banshee
Banshee.Services/Banshee.Database/BansheeDbConnection.cs: pragma synchronous=off for speedBanshee.Services/Banshee.Database/BansheeDbFormatMigrator.cstakes care of database initialization (not just migration as name would suggest); schema in InitializeFreshDatabase- has TrackID, ArtistID, and AlbumID with correspinding CoreTracks, CoreAlbums, and CoreArtists tables for efficient access to artists/albums; CoreTracks has indexes on ArtistID and AlbumID; CoreArtists and CoreAlbums have indexes on their names
Exaile
Written in Python. Browse
source. Checkout:
bzr branch lp:exaile
- Schema in
sql/db.sql.- tracks table primary key is path (which is an integer?! -- what's going on?)
- like Banshee, also has artist, album tables
Amarok
Written in C++. Browse
source.
Checkout: svn co svn://anonsvn.kde.org/home/kde/trunk/extragear/multimedia/amarok/
- half-written architecture document
- Really convoluted. Will take some time to glean things from.
Quod Libet
et cetera
- Alexandria
- autotagmp3
- pymp3tagger (sketchy)
- music-tag-filler
- Ikulo
- "Music"
- Hystrix Audio
- zicbee
- musikCube
- moosic (command-line)
Playback
Quod Libet has a Gstreamer player module that seems highly refined. It's a very tempting playbook page to steal. They even have gapless working. Check it out.
Cloning MPD
librmpd includes a "fake" MPD server for testing. Interesting! The file.
Automatic Tagging
Related autotaggers, mostly in Python: