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

mecomp-analysis

A library for creating feature vectors from audio files

30 releases

Uses new Rust 2024

0.7.2 Mar 9, 2026
0.7.0 Jan 26, 2026
0.6.4 Dec 14, 2025
0.5.9 Oct 30, 2025
0.1.1 Oct 12, 2024

#2261 in Audio


Used in 6 crates (3 directly)

MIT and GPL-3.0 licenses

1MB
3.5K SLoC

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.


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.

Dependencies

~27MB
~531K SLoC