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

mecomp-analysis

A library for creating feature vectors from audio files

3 releases

new 0.1.2 Dec 3, 2024
0.1.1 Oct 12, 2024
0.1.0 Oct 11, 2024

#440 in Multimedia

Download history 110/week @ 2024-10-05 273/week @ 2024-10-12 13/week @ 2024-10-19 4/week @ 2024-10-26 9/week @ 2024-11-02 1/week @ 2024-11-09 6/week @ 2024-11-16 4/week @ 2024-11-23 196/week @ 2024-11-30

210 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–53MB
~853K SLoC