[package]
edition = "2021"
rust-version = "1.75"
name = "math-sonify"
version = "1.4.0"
authors = ["Matt Busel <matt@mattbusel.com>"]
build = false
exclude = [
"release/",
"screenshots/",
"docs/bifurcation.png",
"docs/portrait_*.png",
"patch_*.py",
"build_release.bat",
"math_sonify_vision.pdf",
"plugin/",
"fuzz/",
"dist/",
".claude/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Real-time procedural audio from mathematical dynamical systems (Lorenz, Rossler, Double Pendulum, and more)"
homepage = "https://github.com/Mattbusel/math-sonify"
documentation = "https://docs.rs/math-sonify"
readme = "README.md"
keywords = [
"audio",
"chaos",
"dynamical-systems",
"synthesis",
"generative",
]
categories = [
"multimedia::audio",
"science",
"simulation",
]
license = "MIT"
repository = "https://github.com/Mattbusel/math-sonify"
[features]
osc = ["rosc"]
[lib]
name = "math_sonify"
path = "src/lib.rs"
[[bin]]
name = "math-sonify"
path = "src/main.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[dependencies.anyhow]
version = "1"
[dependencies.cpal]
version = "0.15"
[dependencies.crossbeam-channel]
version = "0.5"
[dependencies.eframe]
version = "0.27"
features = ["default"]
[dependencies.egui]
version = "0.27"
[dependencies.env_logger]
version = "0.11"
[dependencies.hound]
version = "3.5"
[dependencies.log]
version = "0.4"
[dependencies.midir]
version = "0.9"
[dependencies.midly]
version = "0.5"
[dependencies.notify]
version = "6"
[dependencies.parking_lot]
version = "0.12"
[dependencies.png]
version = "0.17"
[dependencies.rayon]
version = "1"
[dependencies.rosc]
version = "0.10"
optional = true
[dependencies.rustfft]
version = "6"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "1"
[dependencies.toml]
version = "0.8"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[lints.clippy]
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
derivable_impls = "allow"
indexing_slicing = "allow"
manual_clamp = "allow"
module_name_repetitions = "allow"
too_many_arguments = "allow"
too_many_lines = "allow"
[profile.bench]
opt-level = 3
lto = "thin"
[profile.dev]
opt-level = 1
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
panic = "abort"
strip = "debuginfo"