commit 328ffa576ef9923de7a0229535e50ec0bf9685ec from: mtmn date: Wed May 6 00:29:49 2026 UTC feat: rename `--write`, rustfmt, cargo.lock commit - a6546430e05fb631e2d609102cf5c8aabc6b96de commit + 328ffa576ef9923de7a0229535e50ec0bf9685ec blob - 68c0a8584531fa207ef9e0045d3054959d43ded9 blob + afd517dcb6e8ef778e38fc9c14d7ee395e333f71 --- Cargo.lock +++ Cargo.lock @@ -138,7 +138,7 @@ dependencies = [ "ffmpeg-sys-next", "log", "ndarray 0.16.1", - "ndarray-stats 0.6.0", + "ndarray-stats", "noisy_float", "rcue", "rustfft", @@ -268,7 +268,6 @@ source = "registry+https://github.com/rust-lang/crates checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", - "clap_derive", ] [[package]] @@ -284,18 +283,6 @@ dependencies = [ ] [[package]] -name = "clap_derive" -version = "4.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] name = "clap_lex" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -308,18 +295,6 @@ source = "registry+https://github.com/rust-lang/crates checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] -name = "console" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" -dependencies = [ - "encode_unicode", - "libc", - "unicode-width", - "windows-sys", -] - -[[package]] name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -435,12 +410,6 @@ source = "registry+https://github.com/rust-lang/crates checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] -name = "encode_unicode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" - -[[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -615,19 +584,6 @@ dependencies = [ ] [[package]] -name = "indicatif" -version = "0.18.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25470f23803092da7d239834776d653104d551bc4d7eacaf31e6837854b8e9eb" -dependencies = [ - "console", - "portable-atomic", - "unicode-width", - "unit-prefix", - "web-time", -] - -[[package]] name = "is-terminal" version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -823,21 +779,6 @@ dependencies = [ ] [[package]] -name = "ndarray-stats" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6e54a8b65764f71827a90ca1d56965ec0c67f069f996477bd493402a901d1f" -dependencies = [ - "indexmap", - "itertools 0.13.0", - "ndarray 0.17.2", - "noisy_float", - "num-integer", - "num-traits", - "rand", -] - -[[package]] name = "noisy_float" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1315,18 +1256,6 @@ source = "registry+https://github.com/rust-lang/crates checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] -name = "unicode-width" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" - -[[package]] -name = "unit-prefix" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" - -[[package]] name = "utf8parse" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1348,11 +1277,8 @@ dependencies = [ "chrono", "clap", "csv", - "indicatif", "lofty", "ndarray 0.17.2", - "ndarray-stats 0.7.0", - "noisy_float", "rayon", "serde", "walkdir", @@ -1439,16 +1365,6 @@ dependencies = [ ] [[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] name = "winapi-util" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" blob - 2d3a77f14cc41e1b1e896f34f3c6b6e468d7f7d5 blob + 38c7294c408df2003e57f8ad6fab5c4622695ec1 --- README.md +++ README.md @@ -28,7 +28,7 @@ cargo build --release ### Options -* `-w`, `--write-tags`: Write detected BPM and Key to audio file metadata. +* `-w`, `--write`: Write detected BPM and Key to audio file metadata. * `-f`, `--force`: Re-analyze files even if they already have BPM/Key tags. * `-j`, `--jobs `: Number of threads to use (0 = all cores). * `-r`, `--report`: Generate a CSV report with timestamped filename. @@ -42,10 +42,10 @@ cargo build --release ./target/release/virittaa /path/to/track.mp3 # Analyze a directory and write metadata tags -./target/release/virittaa --write-tags /path/to/music/ +./target/release/virittaa --write /path/to/music/ # Re-analyze files that already have tags -./target/release/virittaa --force --write-tags /path/to/music/ +./target/release/virittaa --force --write /path/to/music/ # Limit to 4 threads ./target/release/virittaa -j 4 /path/to/music/ blob - ca6288f5a4f20571a00c352f520d2d93791861c8 blob + bd5f7d44d827b82979fa5033891a243819f17d6c --- src/audio_processing.rs +++ src/audio_processing.rs @@ -1,12 +1,12 @@ +use crate::constants::{ + BPM_HOP_SIZE, BPM_MAX, BPM_MIN, BPM_OFFSET, BPM_WINDOW_SIZE, CHROMA_BINS, KEY_HOP_SIZE, + KEY_WINDOW_SIZE, SAMPLE_RATE, TUNING_PRECISION, +}; use anyhow::Result; use bliss_audio::chroma::bench::{chroma_stft, estimate_tuning}; use bliss_audio::utils::bench::stft; use bliss_audio_aubio_rs::{OnsetMode, Tempo}; use ndarray::Array1; -use crate::constants::{ - SAMPLE_RATE, BPM_HOP_SIZE, BPM_MAX, BPM_MIN, BPM_OFFSET, BPM_WINDOW_SIZE, CHROMA_BINS, - KEY_HOP_SIZE, KEY_WINDOW_SIZE, TUNING_PRECISION, -}; /// Calculate the BPM of a track. /// blob - dd539a636b25a4a1243f86de881bacc5969a6066 blob + df5ebd1c2c9850ed62f88d11866e7df4933e7483 --- src/file_io.rs +++ src/file_io.rs @@ -9,8 +9,8 @@ use std::path::Path; use crate::audio_processing::{calculate_bpm, calculate_key}; use crate::types::{TrackError, TrackInfo}; -use bliss_audio::decoder::ffmpeg::FFmpegDecoder as Decoder; use bliss_audio::decoder::Decoder as DecoderTrait; +use bliss_audio::decoder::ffmpeg::FFmpegDecoder as Decoder; #[derive(Debug, Default)] pub struct FileMetadata { blob - f012d0bd044a6001ed7e79ccb3905061c3d4ffef blob + a43e2ffb51b2630b4de2de890b90dcc752562174 --- src/main.rs +++ src/main.rs @@ -28,9 +28,9 @@ fn main() -> Result<()> { .version(clap::crate_version!()) .arg(Arg::new("path").required(true).num_args(1..)) .arg( - Arg::new("write-tags") + Arg::new("write") .short('w') - .long("write-tags") + .long("write") .action(clap::ArgAction::SetTrue) .help("Write BPM and Key to file metadata"), ) @@ -58,7 +58,7 @@ fn main() -> Result<()> { ) .get_matches(); - let write_tags = matches.get_flag("write-tags"); + let write_tags = matches.get_flag("write"); let force = matches.get_flag("force"); let jobs = *matches.get_one::("jobs").unwrap(); let generate_report = matches.get_flag("report");