[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 = []