[package]
edition = "2024"
rust-version = "1.85"
name = "timestretch"
version = "0.16.0"
build = false
exclude = [
"samples",
"optimize",
"desktop",
"docs",
"tools",
"benchmarks/artifacts",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "timestretch audio time and pitch processing with host-driven streaming"
readme = "README.md"
keywords = [
"audio",
"dsp",
"time-stretching",
"pitch-shifting",
]
categories = [
"multimedia::audio",
"algorithms",
]
license = "MIT"
repository = "https://github.com/robmorgan/timestretch-rs"
resolver = "2"
[features]
accelerate = ["timestretch-core/accelerate"]
analysis = ["dep:timestretch-analysis"]
cli = [
"io",
"analysis",
]
default = ["accelerate"]
io = ["dep:serde_json"]
qa = [
"analysis",
"io",
"timestretch-core/qa",
]
[lib]
name = "timestretch"
path = "src/lib.rs"
[[bin]]
name = "timestretch-cli"
path = "src/cli.rs"
required-features = ["cli"]
[[example]]
name = "ab_render"
path = "examples/ab_render.rs"
required-features = ["io"]
[[example]]
name = "annotate_rigid_grid"
path = "examples/annotate_rigid_grid.rs"
required-features = [
"analysis",
"io",
]
[[example]]
name = "basic_stretch"
path = "examples/basic_stretch.rs"
[[example]]
name = "generate_test_audio"
path = "test_audio/generate.rs"
[[example]]
name = "realtime_stream"
path = "examples/realtime_stream.rs"
[[example]]
name = "worker_stream"
path = "examples/worker_stream.rs"
[[test]]
name = "analysis_artifacts"
path = "tests/analysis_artifacts.rs"
[[test]]
name = "beat_tracking"
path = "tests/beat_tracking.rs"
required-features = ["analysis"]
[[test]]
name = "bpm_accuracy"
path = "qa/bpm_accuracy.rs"
required-features = ["qa"]
[[test]]
name = "dense_material_regression"
path = "tests/dense_material_regression.rs"
[[test]]
name = "parser_robustness"
path = "tests/parser_robustness.rs"
[[test]]
name = "pitch_quality"
path = "tests/pitch_quality.rs"
[[test]]
name = "quality"
path = "tests/quality.rs"
[[test]]
name = "realtime_allocations"
path = "tests/realtime_allocations.rs"
[[test]]
name = "rubberband_comparison"
path = "qa/rubberband_comparison.rs"
required-features = ["qa"]
[[test]]
name = "rubberband_reference_gate"
path = "qa/rubberband_reference_gate.rs"
required-features = ["qa"]
[[test]]
name = "session_contracts"
path = "tests/session_contracts.rs"
[[test]]
name = "session_soak"
path = "tests/session_soak.rs"
[[test]]
name = "spectral_quality"
path = "tests/spectral_quality.rs"
[[test]]
name = "stereo_coherence"
path = "tests/stereo_coherence.rs"
[[test]]
name = "stretch_quality_regressions"
path = "tests/stretch_quality_regressions.rs"
[[test]]
name = "tonal_purity_characterization"
path = "tests/tonal_purity_characterization.rs"
[[test]]
name = "track_analysis_qa"
path = "qa/track_analysis_qa.rs"
required-features = ["qa"]
[[test]]
name = "unity_quality"
path = "tests/unity_quality.rs"
[[test]]
name = "wav_error_paths"
path = "tests/wav_error_paths.rs"
required-features = ["io"]
[[test]]
name = "wav_roundtrip"
path = "tests/wav_roundtrip.rs"
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.timestretch-analysis]
version = "0.16.0"
optional = true
[dependencies.timestretch-core]
version = "0.16.0"
default-features = false
[dev-dependencies.hound]
version = "3"
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.sha2]
version = "0.10"
[dev-dependencies.symphonia]
version = "0.5"
features = [
"mp3",
"aiff",
"pcm",
]
default-features = false
[dev-dependencies.toml]
version = "0.8"
[profile.release]
opt-level = 3
lto = true