mecomp-analysis 0.7.1

A library for creating feature vectors from audio files.
Documentation
[package]
name = "mecomp-analysis"
version.workspace = true
edition.workspace = true
authors.workspace = true
description = "A library for creating feature vectors from audio files."
repository.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "README.md"
license.workspace = true
exclude = ["data/"]

[features]
default = []
# plot_gap = ["dep:plotters"]

# Hardware acceleration features for ONNX inference (opt-in, requires additional setup)
# These require the user to have the appropriate drivers/libraries installed
cuda = [ # NVIDIA CUDA (requires CUDA 12 + cuDNN 9.x)
    "ort/cuda",
    "ort/copy-dylibs",
]
tensorrt = [ # NVIDIA TensorRT (requires TensorRT + CUDA)
    "ort/tensorrt",
    "ort/copy-dylibs",
]

[dependencies]
bliss-audio-aubio-rs = { version = "0.2.4", features = ["static"] }
linfa = "0.8.1"
linfa-clustering = "0.8.1"
linfa-reduction = "0.8.1"
linfa-tsne = "0.8.1"
linfa-nn = "0.8.1"
log = { workspace = true }
ndarray = "0.16.1"
ndarray-rand = "0.15.0"
ndarray-stats = { version = "0.6.0" }
noisy_float = { version = "0.2.0" }
object-pool = { workspace = true }
# plotters = { version = "0.3.0", optional = true }
rand.workspace = true
rayon = "1.11.0"
rubato = { workspace = true }
symphonia = { workspace = true }
rustfft = { version = "6.4.1" }
strum.workspace = true
thiserror = { workspace = true }
likely_stable.workspace = true
bitvec.workspace = true

# Platform-specific zero-dependency hardware acceleration for ONNX inference
## MacOS: CoreML built-in on macOS 11+
[target.'cfg(target_os = "macos")'.dependencies.ort]
version = "=2.0.0-rc.11"
default-features = false
features = ["std", "download-binaries", "coreml", "tls-rustls"]
## Windows: DirectML ships with Windows 10+, no extra dependencies needed
[target.'cfg(target_os = "windows")'.dependencies.ort]
version = "=2.0.0-rc.11"
features = ["copy-dylibs", "directml", "download-binaries", "std", "tls-rustls"]
default-features = false
## Linux and other platforms: CPU only by default (CUDA/TensorRT available via features)
[target.'cfg(not(any(target_os = "macos", target_os = "windows")))'.dependencies.ort]
version = "=2.0.0-rc.11"
default-features = false
features = ["std", "download-binaries", "tls-rustls"]


# if we're building on macos, we need to link against the system's fftw3
# library, which is not available on linux
[target.'cfg(target_os = "macos")'.dependencies.bliss-audio-aubio-rs]
version = "0.2.4"
features = ["static", "bindgen"]

[dev-dependencies]
ndarray-npy = { version = "0.9.1", default-features = false }
adler32 = { version = "1.2.0", default-features = false }
pretty_assertions = { workspace = true }
rstest = { workspace = true }
criterion = { workspace = true }

[lib]
bench = false

[[bench]]
name = "analysis"
harness = false

[[bench]]
name = "chroma"
harness = false

[[bench]]
name = "decoder"
harness = false

[[bench]]
name = "decoder_steps"
harness = false

[[bench]]
name = "descriptors"
harness = false

[[bench]]
name = "embeddings"
harness = false

[[bench]]
name = "utils"
harness = false