[package]
edition = "2021"
rust-version = "1.82"
name = "timestretch"
version = "0.5.0"
build = false
exclude = [
"samples",
"optimize",
"web",
"desktop",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure Rust audio time stretching library optimized for EDM"
readme = "README.md"
keywords = [
"audio",
"dsp",
"time-stretching",
"phase-vocoder",
"edm",
]
categories = [
"multimedia::audio",
"algorithms",
]
license = "MIT"
repository = "https://github.com/robmorgan/timestretch-rs"
[features]
cli = []
qa-harnesses = []
[lib]
name = "timestretch"
path = "src/lib.rs"
[[bin]]
name = "timestretch-cli"
path = "src/cli.rs"
required-features = ["cli"]
[[example]]
name = "basic_stretch"
path = "examples/basic_stretch.rs"
[[example]]
name = "benchmark_quality"
path = "examples/benchmark_quality.rs"
[[example]]
name = "dj_beatmatch"
path = "examples/dj_beatmatch.rs"
[[example]]
name = "dj_mix"
path = "examples/dj_mix.rs"
[[example]]
name = "generate_test_audio"
path = "test_audio/generate.rs"
[[example]]
name = "pitch_shift"
path = "examples/pitch_shift.rs"
[[example]]
name = "realtime_stream"
path = "examples/realtime_stream.rs"
[[example]]
name = "sample_halftime"
path = "examples/sample_halftime.rs"
[[test]]
name = "algorithm_edge_cases"
path = "tests/algorithm_edge_cases.rs"
[[test]]
name = "band_split"
path = "tests/band_split.rs"
[[test]]
name = "benchmarks"
path = "qa/benchmarks.rs"
required-features = ["qa-harnesses"]
[[test]]
name = "bpm_stretch"
path = "tests/bpm_stretch.rs"
[[test]]
name = "buffer_workflows"
path = "tests/buffer_workflows.rs"
[[test]]
name = "creative_effects"
path = "tests/creative_effects.rs"
[[test]]
name = "dense_material_regression"
path = "tests/dense_material_regression.rs"
[[test]]
name = "dj_workflows"
path = "tests/dj_workflows.rs"
[[test]]
name = "edge_cases"
path = "tests/edge_cases.rs"
[[test]]
name = "edm_presets"
path = "tests/edm_presets.rs"
[[test]]
name = "identity"
path = "tests/identity.rs"
[[test]]
name = "modulation_torture"
path = "tests/modulation_torture.rs"
[[test]]
name = "pitch_shift"
path = "tests/pitch_shift.rs"
[[test]]
name = "preanalysis_pipeline"
path = "tests/preanalysis_pipeline.rs"
[[test]]
name = "profile_quality"
path = "qa/profile_quality.rs"
required-features = ["qa-harnesses"]
[[test]]
name = "public_api_workflows"
path = "tests/public_api_workflows.rs"
[[test]]
name = "quality"
path = "tests/quality.rs"
[[test]]
name = "quality_benchmark"
path = "qa/quality_benchmark.rs"
required-features = ["qa-harnesses"]
[[test]]
name = "quality_gates"
path = "tests/quality_gates.rs"
required-features = ["qa-harnesses"]
[[test]]
name = "realtime_allocations"
path = "tests/realtime_allocations.rs"
[[test]]
name = "realtime_dj_conditions"
path = "tests/realtime_dj_conditions.rs"
[[test]]
name = "reference_quality"
path = "qa/reference_quality.rs"
required-features = ["qa-harnesses"]
[[test]]
name = "rubberband_comparison"
path = "qa/rubberband_comparison.rs"
required-features = ["qa-harnesses"]
[[test]]
name = "spectral_quality"
path = "tests/spectral_quality.rs"
[[test]]
name = "stream_profiles"
path = "tests/stream_profiles.rs"
[[test]]
name = "streaming"
path = "tests/streaming.rs"
[[test]]
name = "streaming_batch_parity"
path = "tests/streaming_batch_parity.rs"
[[test]]
name = "streaming_edge_cases"
path = "tests/streaming_edge_cases.rs"
[[test]]
name = "streaming_latency"
path = "tests/streaming_latency.rs"
[[test]]
name = "streaming_preanalysis"
path = "tests/streaming_preanalysis.rs"
[[test]]
name = "streaming_quality"
path = "qa/streaming_quality.rs"
required-features = ["qa-harnesses"]
[[test]]
name = "stretch_quality_regressions"
path = "tests/stretch_quality_regressions.rs"
[[test]]
name = "timeline_length"
path = "tests/timeline_length.rs"
[[test]]
name = "track_analysis_qa"
path = "qa/track_analysis_qa.rs"
required-features = ["qa-harnesses"]
[[test]]
name = "warm_start"
path = "tests/warm_start.rs"
[[test]]
name = "wav_error_paths"
path = "tests/wav_error_paths.rs"
[[test]]
name = "wav_roundtrip"
path = "tests/wav_roundtrip.rs"
[dependencies.arc-swap]
version = "1.7"
[dependencies.rustfft]
version = "6"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dev-dependencies.hound]
version = "3"
[dev-dependencies.sha2]
version = "0.10"
[dev-dependencies.toml]
version = "0.8"
[profile.release]
opt-level = 3
lto = true