#music-player #audio #player #music #mecomp

mecomp-analysis

A library for creating feature vectors from audio files

2 releases

0.1.1 Oct 12, 2024
0.1.0 Oct 11, 2024

#439 in Multimedia

Download history 335/week @ 2024-10-07 54/week @ 2024-10-14 9/week @ 2024-10-21

398 downloads per month
Used in 4 crates (2 directly)

MIT and GPL-3.0 licenses

5MB
2.5K SLoC

MECOMP Analysis

The mecomp-analysis crate contains implementations of the audio-analysis algorithms used by MECOMP to create song recommendations, cluster related songs, find similar songs, etc. etc.

It is heavily influenced by the bliss-rs project, and a lot of the code is taken from there with modifications.

The reason we don't just use bliss-rs is because it does a lot of extra stuff that we don't care about, all we want is the audio features so that's all that's been ported.


lib.rs:

This library contains stuff for song analysis and feature extraction.

A lot of the code in this library is inspired by, or directly pulled from, bliss-rs. We don't simply use bliss-rs because I don't want to bring in an ffmpeg dependency, and bliss-rs also has a lot of features that I don't need. (for example, I don't need to decode tags, process playlists, etc. etc., I'm doing all of that myself already)

We use rodio to decode the audio file (overkill, but we already have the dependency for audio playback so may as well), We use rubato to resample the audio file to 22050 Hz.

Dependencies

~20–50MB
~849K SLoC