Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make categories in TODO #92

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 30 additions & 18 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,52 @@ While most of the features are already there, there is still some work to be
done, mostly around optimizing, but also in feature summarization, feature
evaluation, and distance metrics.

Feel free to submit a PR editing this list if you have some wishes, and to
Feel free to submit a PR editing this list if you have some wishes, or to
ask questions if you want to tackle an item.

## Actual TODO

- Add a list of dependencies / installation guide for windows and mac
- bliss: A way to learn a metric with a "user survey" on their own libraries using code from the thesis
(probably reuse the interactive-playlist in blissify?)
- Maybe add playlist functions for single songs as convenience methods?
- Regularly update the python bindings with the new code
### New features

- Find a proper "objective" way to evaluate how good bliss playlists are. Probably
no better way than making mini bliss playlists and make local surveys so each
users can evaluate these playlists.
- A way to learn a metric with a "user survey" on their own libraries using code from the thesis:
in progress here https://github.com/Polochon-street/bliss-metric-learning/.
- A waypoint feature: go from song1 to song2, both picked by the users, in n songs, without any repetitions between playlist 1 and playlist 2
- A direction feature ("I want the tempo to go down or stay the same")
- Publish the genre clustering / evaluation code, and try to enhance it.
- A "song group" feature (I want to make a playlist that's in the vibe of these n songs [like 4-5])
(can probably recycle the "album" feature)
- Use genre clustering (cf already existing code) to find an appropriate M matrix, and put it as alternative.
Hopefully will make playlists not drift
- Have some presets like "upbeat music" "melancholic music", etc

### "Under-the hood" features

- Check the chroma feature for anomalies (the last 4 numbers look anomalous in most of my cases -
compare with https://www.audiolabs-erlangen.de/resources/MIR/FMP/C5/C5S2_ChordRec_Templates.html etc)
- Freebsd support? (see https://github.com/Polochon-street/bliss-rs/issues/60)
- Try to trim out the crates (it is a bit too big right now)
- grep TODO and see what can be fixed
- Better duplicate finding in the playlist module (sometimes songs have different across albums but should have the same footprint)
- Split library's test module (the file is too big right now)
- Optimize / lower RAM consumption
- Take a look at https://nnethercote.github.io/perf-book/ to see if optimizing is possible
- Find a way to differenciate classic vs contemporary music (new feature? Or better use of existing features?)
- Publish the genre clustering / evaluation code, and try to enhance it.
For instance, Cigarettes after sex / Sweet doesn't seem to give similar enough tracks?
- A waypoint feature: go from song1 to song2, both picked by the users, in n songs, without any repetitions between playlist 1 and playlist 2
- A direction feature ("I want the tempo to go down or stay the same")
- A "song group" feature (I want to make a playlist that's in the vibe of these n songs [like 4-5])
(can probably recycle the "album" feature)
- Use genre clustering (cf already existing code) to find an appropriate M matrix, and put it as alternative
Hopefully will make playlists not drift

### Maintenance tasks

- Add a list of dependencies / installation guide for windows and mac
- Maybe add playlist functions for single songs as convenience methods?
- Regularly update the python bindings with the new code
- Freebsd support? (see https://github.com/Polochon-street/bliss-rs/issues/60)
- Try to trim out the crates (it is a bit too big right now)
- grep TODO and see what can be fixed
- Split library's test module (the file is too big right now)
- Improve bliss-python somehow / use it in a small demo project maybe?
A blissify in python?
- Investigate what type SAMPLE_RATE is in Aubio - maybe u16 is enough
- Have some presets like "upbeat music" "melancholic music", etc

## Done

- Split out ffmpeg (see https://github.com/Polochon-street/bliss-rs/issues/63 and https://users.rust-lang.org/t/proper-way-to-abstract-a-third-party-provider/107076/8)
- Make ffmpeg an optional (but default) feature
- The library trait must be Decoder-agnostic, and not depend on FFmpeg
Expand Down
Loading