Crate mecomp_analysis

Crate mecomp_analysis 

Source
Expand description

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.

Modules§

chroma
Chroma feature extraction module.
clustering
this module contains helpers that wrap the a k-means crate to perform clustering on the data without having to choose an exact number of clusters.
decoder
errors
misc
Miscellaneous feature extraction module.
temporal
Temporal feature extraction module.
timbral
Timbral feature extraction module.
utils

Structs§

Analysis
Object holding the results of the song’s analysis.
AnalysisIndexIter
An iterator over the variants of AnalysisIndex
ResampledAudio
The resampled audio data used for analysis.

Enums§

AnalysisIndex
Indexes different fields of an Analysis.

Constants§

NUMBER_FEATURES
The number of features used in Analysis
SAMPLE_RATE
The sampling rate used for the analysis.

Type Aliases§

Feature
The Type of individual features