diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b9ab60..83df922 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ #Changelog +## bliss 0.5.0 +* Remove all traces of the "analyse" word vs "analyze" to make the codebase + more coherent. + ## bliss 0.4.6 * Bump ffmpeg crate version to allow for cross-compilation. diff --git a/Cargo.lock b/Cargo.lock index 4321d03..86e8da4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,9 +37,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.53" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" +checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27" [[package]] name = "atty" @@ -72,7 +72,7 @@ dependencies = [ "peeking_take_while", "proc-macro2", "quote", - "regex 1.5.4", + "regex 1.5.5", "rustc-hash", "shlex", ] @@ -85,7 +85,7 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bliss-audio" -version = "0.4.5" +version = "0.5.0" dependencies = [ "anyhow", "bliss-audio-aubio-rs", @@ -196,9 +196,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.72" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" dependencies = [ "jobserver", ] @@ -279,9 +279,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" +checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" dependencies = [ "cfg-if", "crossbeam-utils", @@ -300,10 +300,11 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" +checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" dependencies = [ + "autocfg", "cfg-if", "crossbeam-utils", "lazy_static 1.4.0", @@ -313,9 +314,9 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd435b205a4842da59efd07628f921c096bc1cc0a156835b4fa0bcb9a19bcce" +checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2" dependencies = [ "cfg-if", "crossbeam-utils", @@ -323,9 +324,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" +checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" dependencies = [ "cfg-if", "lazy_static 1.4.0", @@ -364,7 +365,7 @@ dependencies = [ "atty", "humantime", "log", - "regex 1.5.4", + "regex 1.5.5", "termcolor", ] @@ -376,9 +377,9 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" [[package]] name = "ffmpeg-next" -version = "5.0.2" +version = "5.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a1fc87054b079ade0b081b023c5fef309cd4bbcb569c09eed2aa39b25a0a11" +checksum = "585e5eaf57eceaa199ba6f6a1f46bdad7992930bb7b45b40275d9445b5ba2bc8" dependencies = [ "bitflags", "ffmpeg-sys-next", @@ -473,9 +474,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" +checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" dependencies = [ "cfg-if", "libc", @@ -520,9 +521,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "indexmap" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" +checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" dependencies = [ "autocfg", "hashbrown", @@ -582,9 +583,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.118" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e509672465a0504304aa87f9f176f2b2b716ed8fb105ebe5c02dc6dce96a94" +checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f" [[package]] name = "libloading" @@ -598,9 +599,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.14" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8" dependencies = [ "cfg-if", ] @@ -652,9 +653,9 @@ checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" [[package]] name = "mime_guess" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" dependencies = [ "mime", "unicase", @@ -730,13 +731,12 @@ dependencies = [ [[package]] name = "nom" -version = "7.1.0" +version = "7.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d11e1ef389c76fe5b81bcaf2ea32cf88b62bc494e19f493d0b30e7a930109" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" dependencies = [ "memchr 2.4.1", "minimal-lexical", - "version_check", ] [[package]] @@ -882,9 +882,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "ppv-lite86" @@ -925,9 +925,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58" dependencies = [ "proc-macro2", ] @@ -1008,9 +1008,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.4" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" dependencies = [ "aho-corasick 0.7.18", "memchr 2.4.1", @@ -1153,9 +1153,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.86" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" +checksum = "704df27628939572cd88d33f171cd6f896f4eaca85252c6e0a72d8d8287ee86f" dependencies = [ "proc-macro2", "quote", @@ -1164,9 +1164,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" dependencies = [ "winapi-util", ] diff --git a/Cargo.toml b/Cargo.toml index 3095300..b2e9891 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bliss-audio" -version = "0.4.6" +version = "0.5.0" authors = ["Polochon-street "] edition = "2018" license = "GPL-3.0-only" diff --git a/README.md b/README.md index 51820d8..55b9b0f 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![build](https://github.com/Polochon-street/bliss-rs/workflows/Rust/badge.svg)](https://github.com/Polochon-street/bliss-rs/actions) [![doc](https://docs.rs/bliss-audio/badge.svg)](https://docs.rs/bliss-audio/) -# bliss music analyser - Rust version +# bliss music analyzer - Rust version bliss-rs is the Rust improvement of [bliss](https://github.com/Polochon-street/bliss), a library used to make playlists by analyzing songs, and computing distance between them. @@ -24,7 +24,7 @@ different, more accurate values, based on ## Examples For simple analysis / distance computing, take a look at `examples/distance.rs` and -`examples/analyse.rs`. +`examples/analyze.rs`. If you simply want to try out making playlists from a folder containing songs, [this example](https://github.com/Polochon-street/bliss-rs/blob/master/examples/playlist.rs) diff --git a/examples/analyse.rs b/examples/analyze.rs similarity index 85% rename from examples/analyse.rs rename to examples/analyze.rs index 0a9db25..fb6fc9c 100644 --- a/examples/analyse.rs +++ b/examples/analyze.rs @@ -4,7 +4,7 @@ use std::env; /** * Simple utility to print the result of an Analysis. * - * Takes a list of files to analyse an the result of the corresponding Analysis. + * Takes a list of files to analyze an the result of the corresponding Analysis. */ fn main() { let args: Vec = env::args().skip(1).collect(); diff --git a/examples/distance.rs b/examples/distance.rs index 3d0489c..ade704d 100644 --- a/examples/distance.rs +++ b/examples/distance.rs @@ -4,7 +4,7 @@ use std::env; /** * Simple utility to print distance between two songs according to bliss. * - * Takes two file paths, and analyse the corresponding songs, printing + * Takes two file paths, and analyze the corresponding songs, printing * the distance between the two files according to bliss. */ fn main() -> Result<(), String> { diff --git a/src/lib.rs b/src/lib.rs index 7e443b3..2041a43 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -114,7 +114,7 @@ pub type BlissResult = Result; /// When making an extension for an audio player, prefer /// implementing the `Library` trait. #[doc(hidden)] -pub fn bulk_analyse(paths: Vec) -> Vec> { +pub fn bulk_analyze(paths: Vec) -> Vec> { let mut songs = Vec::with_capacity(paths.len()); let num_cpus = num_cpus::get(); @@ -161,8 +161,8 @@ mod tests { } #[test] - fn test_bulk_analyse() { - let results = bulk_analyse(vec![ + fn test_bulk_analyze() { + let results = bulk_analyze(vec![ String::from("data/s16_mono_22_5kHz.flac"), String::from("data/s16_mono_22_5kHz.flac"), String::from("nonexistent"), @@ -181,7 +181,7 @@ mod tests { .collect(); errored_songs.sort_by(|a, b| a.cmp(b)); - let mut analysed_songs: Vec = results + let mut analyzed_songs: Vec = results .iter() .filter_map(|x| { x.as_ref() @@ -189,7 +189,7 @@ mod tests { .map(|x| x.path.to_str().unwrap().to_string()) }) .collect(); - analysed_songs.sort_by(|a, b| a.cmp(b)); + analyzed_songs.sort_by(|a, b| a.cmp(b)); assert_eq!( vec![ @@ -206,7 +206,7 @@ mod tests { String::from("data/s16_mono_22_5kHz.flac"), String::from("data/s16_stereo_22_5kHz.flac"), ], - analysed_songs, + analyzed_songs, ); } } diff --git a/src/song.rs b/src/song.rs index ced7006..e6f31f3 100644 --- a/src/song.rs +++ b/src/song.rs @@ -254,13 +254,13 @@ impl Song { album: raw_song.album, track_number: raw_song.track_number, genre: raw_song.genre, - analysis: Song::analyse(raw_song.sample_array)?, + analysis: Song::analyze(raw_song.sample_array)?, features_version: FEATURES_VERSION, }) } /** - * Analyse a song decoded in `sample_array`, with one channel @ 22050 Hz. + * Analyze a song decoded in `sample_array`, with one channel @ 22050 Hz. * * The current implementation doesn't make use of it, * but the song can also be streamed wrt. @@ -270,7 +270,7 @@ impl Song { * Useful in the rare cases where the full song is not * completely available. **/ - fn analyse(sample_array: Vec) -> BlissResult { + fn analyze(sample_array: Vec) -> BlissResult { let largest_window = vec![ BPMDesc::WINDOW_SIZE, ChromaDesc::WINDOW_SIZE, @@ -625,13 +625,13 @@ mod tests { #[test] fn test_analysis_too_small() { - let error = Song::analyse(vec![0.]).unwrap_err(); + let error = Song::analyze(vec![0.]).unwrap_err(); assert_eq!( error, BlissError::AnalysisError(String::from("empty or too short song.")) ); - let error = Song::analyse(vec![]).unwrap_err(); + let error = Song::analyze(vec![]).unwrap_err(); assert_eq!( error, BlissError::AnalysisError(String::from("empty or too short song.")) @@ -639,7 +639,7 @@ mod tests { } #[test] - fn test_analyse() { + fn test_analyze() { let song = Song::new(Path::new("data/s16_mono_22_5kHz.flac")).unwrap(); let expected_analysis = vec![ 0.3846389, diff --git a/src/utils.rs b/src/utils.rs index 72444ae..5251837 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -101,8 +101,7 @@ pub(crate) fn geometric_mean(input: &[f32]) -> f32 { let mut exponents: i32 = 0; let mut mantissas: f64 = 1.; for ch in input.chunks_exact(8) { - let mut m; - m = (ch[0] as f64 * ch[1] as f64) * (ch[2] as f64 * ch[3] as f64); + let mut m = (ch[0] as f64 * ch[1] as f64) * (ch[2] as f64 * ch[3] as f64); m *= 3.273390607896142e150; // 2^500 : avoid underflows and denormals m *= (ch[4] as f64 * ch[5] as f64) * (ch[6] as f64 * ch[7] as f64); if m == 0. {