flowrs-engine/crates/flowrs-dsp/Cargo.toml
flowRS fd958c0547 flowRS engine, cut from flowRS 3451b065
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 19:04:39 -05:00

51 lines
2.1 KiB
TOML

[package]
name = "flowrs-dsp"
version.workspace = true
edition.workspace = true
publish.workspace = true
rust-version.workspace = true
authors.workspace = true
license = "MIT OR Apache-2.0"
description = "The audio/DSP join for FlowRS: windowing, FFT, spectral analysis, pitch-to-note, and onset detection over a sample buffer — the standalone, tested counterpart to the dsp.* graph widgets."
[lib]
crate-type = ["rlib"]
[features]
default = ["fft"]
# The spectral analysis (magnitude_spectrum, note_of, detect_onsets). It used to pull in
# rustfft; the transform is now this crate's own (src/fft.rs: one f64 text, flowrs-math's
# twiddles, the same bits on every machine), so the feature costs no dependency. Kept so
# consumers that name it still build.
fft = []
[dependencies]
# The one implementation of sin, exp, ln, atan2, powf and the rest, the same bits in the
# browser and in a generated program (crates/flowrs-math).
flowrs-math = { path = "../flowrs-math" }
# num-complex is used at design time (f64 pole/zero placement for the IIR cascades) by the
# filter designers, for its arithmetic only: its transcendental methods run the platform's
# library, so the designers take theirs from flowrs-math (elliptic.rs csqrt, casin).
num-complex = "0.4"
[dev-dependencies]
# Symposium (`cargo agents`): an agent working on a project that depends on this crate gets
# the flowRS skill (crates/flowrs-mcp/symposium/flowrs, rendered by flowrs-mcp's
# skills::symposium_plugin) and the flowRS MCP server under the read-only plan profile. Never
# the full profile: a dependency is not a trust root, and Symposium registers servers at user
# level. Symposium 0.5.1 parses a crate's MCP entry but does not dispatch it yet; a registry
# carrying symposium/flowrs/SYMPOSIUM.toml registers the same entry today.
[package.metadata.symposium]
[package.metadata.symposium.defaults]
skills = false
[[package.metadata.symposium.skills]]
source.path = "../flowrs-mcp/symposium/flowrs/skills/core"
[[package.metadata.symposium.mcp_servers]]
name = "flowrs"
command = "flowrs-mcp"
args = ["--profile", "plan"]
env = []