These are some ideas I had for improving IMMS, roughly in the order of priority. If you have some ideas not listed here, feel free to add them to the Wish List.
TODO
There's lots planned for the next release. I don't know where I am gonna get the time to do it all.
Next version:
- "pressure"
- "negative" acoustic references
- make fast double skip work
Long term possibilities:
- Major cleanup needed - getting really hacky.
- Do some fancy freedb action to figure out human readable song titles for a future GUI
- Write an utility to integrate such a journal from one database to another (for using IMMS between multiple machines)
DONE
- as of 3.0
- Major acoustic similarity rewrite
- Totally new statistical rating system
- as of 2.0.1
- Implement a mechanism to speed up the introduction of new songs into the collection
- as of 2.0
- Turn IMMS into a generic adaptive playlist framework by further decoupling it from XMMS.
- as of 1.2
- Use transactions to speed up multiple updates
- Add indexes where appropriate
- Use pre-compiled queries
- Keep a "journal" of songs played in the last N days
- Split up the acoustic analyzer into a separate application.
- Don't even try to guess the numeric bpm, instead just correlate beat frequency breakdowns (using EMD?)
- as of 1.1
- XMMS plugin interface really sucks. There should be a native way to retrive the next song, and ideally there should be some event subscription/delivery mechanism.
- Write a database cleaning thingy, and a IMMS disabling thingy.
- as of 0.9.8
- Though "mood" support was kind of added in 0.9.2, it is not very good. It only uses first order correlations between files, so training a corpus with many files can take a very long time. Find a way to use second/third order correlations as well.
- as of 0.9.2
- Improve song information parsing using regex, and comparing the structure of the current filename to others in the same directory.
- "Mood" support. Keep track of which songs go together well and which don't.
- as of 0.8.0
- Keep track of when particular song (not file! there can be several files with the same song, eg: remixes) was played and make sure we don't play the same song too often. This is mostly to work around XMMS's horrible shuffle algorithm.