timestretch 0.7.0

Pure Rust audio time stretching library optimized for EDM
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.82"
name = "timestretch"
version = "0.7.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 = "beat_tracking"
path = "tests/beat_tracking.rs"

[[test]]
name = "benchmarks"
path = "qa/benchmarks.rs"
required-features = ["qa-harnesses"]

[[test]]
name = "bpm_accuracy"
path = "qa/bpm_accuracy.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 = "engine_ab"
path = "qa/engine_ab.rs"
required-features = ["qa-harnesses"]

[[test]]
name = "engine_ab_matrix"
path = "qa/engine_ab_matrix.rs"
required-features = ["qa-harnesses"]

[[test]]
name = "engine_keylock"
path = "qa/engine_keylock.rs"
required-features = ["qa-harnesses"]

[[test]]
name = "engine_latency"
path = "tests/engine_latency.rs"

[[test]]
name = "engine_modulation_torture"
path = "tests/engine_modulation_torture.rs"

[[test]]
name = "engine_realtime_allocations"
path = "tests/engine_realtime_allocations.rs"

[[test]]
name = "engine_transients"
path = "qa/engine_transients.rs"
required-features = ["qa-harnesses"]

[[test]]
name = "engine_wcet"
path = "qa/engine_wcet.rs"
required-features = ["qa-harnesses"]

[[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 = "varispeed_keylock"
path = "qa/varispeed_keylock.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.symphonia]
version = "0.5"
features = [
    "mp3",
    "aiff",
    "pcm",
]
default-features = false

[dev-dependencies.toml]
version = "0.8"

[profile.release]
opt-level = 3
lto = true