Skip to content

Commit

Permalink
Add build instructions / deps
Browse files Browse the repository at this point in the history
  • Loading branch information
Polochon-street committed Aug 13, 2024
1 parent 342cf19 commit f8084d6
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 4 deletions.
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,24 @@ used by C-bliss, since it uses
different, more accurate values, based on
[actual literature](https://lelele.io/thesis.pdf). It is also faster.

## Dependencies

To use bliss-rs, you'll need a few packages: a C linker, `ffmpeg`, and the associated
development packages (libavformat, libavutil, libavcodec, libavfilter, libavdevice),
as well as the clang development packages. These steps are necessary for e.g. run the
examples below.

On Ubuntu:

$ sudo apt install build-essential pkg-config libavutil-dev libavformat-dev \
libavfilter-dev libavdevice-dev libclang-dev

On Archlinux:

$ sudo pacman -S base-devel clang ffmpeg sqlite

## Examples

For simple analysis / distance computing, take a look at `examples/distance.rs` and
`examples/analyze.rs`.

Expand All @@ -47,6 +64,7 @@ this behavior by using `-a <path>` to store this file in a specific place.
Ready to use code examples:

### Compute the distance between two songs

```
use bliss_audio::decoder::bliss_ffmpeg::FFmpeg as Decoder;
use bliss_audio::decoder::Decoder as DecoderTrait;
Expand All @@ -62,6 +80,7 @@ fn main() -> Result<(), BlissError> {
```

### Make a playlist from a song

```
use bliss_audio::decoder::bliss_ffmpeg::FFmpeg as Decoder;
use bliss_audio::decoder::Decoder as DecoderTrait;
Expand Down
7 changes: 3 additions & 4 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ ask questions if you want to tackle an item.

## Actual TODO

- The album playlist should take into account multi-CDs albums
- Add a list of dependencies / installation guide
- 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
- Check the chroma feature for anomalies (the last 4 numbers look anomalous in most of my cases -
Expand All @@ -32,8 +33,6 @@ ask questions if you want to tackle an item.
(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
- 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?)
- Improve bliss-python somehow / use it in a small demo project maybe?
A blissify in python?

Expand All @@ -44,4 +43,4 @@ ask questions if you want to tackle an item.
- Make the tests that don't need it not dependent of ffmpeg
- Make the Song::from_path a trait that is by default implemented with the
ffmpeg feature (so you can theoretically implement the library trait without ffmpeg)

- The album playlist should take into account multi-CDs albums

0 comments on commit f8084d6

Please sign in to comment.