[package]
edition = "2024"
name = "spectrograms"
version = "0.2.0"
authors = ["Jack Geraghty (jmg049) <jgeraghty049@gmail.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance FFT-based computations for audio and image processing"
readme = "README.md"
keywords = [
"fft",
"spectrogram",
"audio",
"image",
"signal-processing",
]
categories = [
"multimedia::audio",
"multimedia::images",
"science",
]
license = "MIT"
repository = "https://github.com/jmg049/Spectrograms"
[package.metadata.docs.rs]
all-features = false
features = [
"realfft",
"serde",
"python",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = ["realfft"]
fftw = ["dep:fftw-sys"]
python = [
"dep:pyo3",
"dep:numpy",
]
realfft = [
"dep:realfft",
"dep:rustfft",
]
serde = ["dep:serde"]
[lib]
name = "spectrograms"
crate-type = [
"lib",
"cdylib",
]
path = "src/lib.rs"
[[example]]
name = "amplitude_scales"
path = "examples/amplitude_scales.rs"
[[example]]
name = "basic_linear"
path = "examples/basic_linear.rs"
[[example]]
name = "compare_windows"
path = "examples/compare_windows.rs"
[[example]]
name = "fft2d_basic"
path = "examples/fft2d_basic.rs"
[[example]]
name = "fft_padding_demo"
path = "examples/fft_padding_demo.rs"
[[example]]
name = "image_blur_fft"
path = "examples/image_blur_fft.rs"
[[example]]
name = "image_edge_detection"
path = "examples/image_edge_detection.rs"
[[example]]
name = "mel_spectrogram"
path = "examples/mel_spectrogram.rs"
[[example]]
name = "reuse_plan"
path = "examples/reuse_plan.rs"
[[example]]
name = "serde_example"
path = "examples/serde_example.rs"
[[example]]
name = "stft_batch"
path = "examples/stft_batch.rs"
[[example]]
name = "stft_multichannel"
path = "examples/stft_multichannel.rs"
[[example]]
name = "stft_streaming"
path = "examples/stft_streaming.rs"
[[test]]
name = "builder_tests"
path = "tests/builder_tests.rs"
[[test]]
name = "chroma_tests"
path = "tests/chroma_tests.rs"
[[test]]
name = "cqt_tests"
path = "tests/cqt_tests.rs"
[[test]]
name = "fft2d_tests"
path = "tests/fft2d_tests.rs"
[[test]]
name = "fft_padding_tests"
path = "tests/fft_padding_tests.rs"
[[test]]
name = "images_ops_tests"
path = "tests/images_ops_tests.rs"
[[test]]
name = "mfcc_tests"
path = "tests/mfcc_tests.rs"
[[test]]
name = "params_tests"
path = "tests/params_tests.rs"
[[test]]
name = "serde_tests"
path = "tests/serde_tests.rs"
[[test]]
name = "spectrogram_tests"
path = "tests/spectrogram_tests.rs"
[[test]]
name = "stft_plan_tests"
path = "tests/stft_plan_tests.rs"
[[test]]
name = "streaming_tests"
path = "tests/streaming_tests.rs"
[[test]]
name = "window_tests"
path = "tests/window_tests.rs"
[[bench]]
name = "fft1d_benchmarks"
path = "benches/fft1d_benchmarks.rs"
harness = false
[[bench]]
name = "fft2d_benchmarks"
path = "benches/fft2d_benchmarks.rs"
harness = false
[[bench]]
name = "image_ops_benchmarks"
path = "benches/image_ops_benchmarks.rs"
harness = false
[[bench]]
name = "planner_benchmarks"
path = "benches/planner_benchmarks.rs"
harness = false
[[bench]]
name = "spectrogram_benchmarks"
path = "benches/spectrogram_benchmarks.rs"
harness = false
[[bench]]
name = "stft_benchmarks"
path = "benches/stft_benchmarks.rs"
harness = false
[dependencies.bincode2]
version = "2.0.1"
optional = true
[dependencies.fftw-sys]
version = "0.8.0"
optional = true
[dependencies.ndarray]
version = ">=0.17"
features = ["serde"]
[dependencies.non-empty-slice]
version = "0.5.1"
features = ["serde"]
[dependencies.num-complex]
version = "0.4.6"
features = ["serde"]
[dependencies.numpy]
version = "0.27"
optional = true
[dependencies.once_cell]
version = "1.19"
[dependencies.pyo3]
version = "0.27"
features = [
"extension-module",
"experimental-inspect",
]
optional = true
[dependencies.realfft]
version = "3.5.0"
optional = true
[dependencies.regex]
version = "1.12.2"
[dependencies.rustfft]
version = "6.4.1"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
[dependencies.thiserror]
version = "2.0.18"
[dev-dependencies.bincode2]
version = "2.0.1"
[dev-dependencies.criterion]
version = "0.8.1"
features = ["html_reports"]
[dev-dependencies.num-format]
version = "0.4.4"
[dev-dependencies.rmp-serde]
version = "1.1"
[dev-dependencies.serde_json]
version = "1.0"
[build-dependencies.pkg-config]
version = "0.3"
[profile.bench]
opt-level = 3
lto = true
codegen-units = 1
debug = 0
strip = "symbols"