Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds a new crate for working with dynamic audio graphs.
From the new docs:
This work has been a long-time coming and is the result of many
discussions in the rust audio community and many lessons learned over
the last few years of working with rust and audio. In particular:
dasp_graph
is of course not a one-size-fits-all solution. Instead, itis designed specifically to work well alongside (and fill a gap within)
the rest of the
dasp
crate ecosystem. Please refer to the "Comparingdasp_signal
" section of thedasp_graph
root documentation for a moredetailed overview of the design choices between the two, what
applications each are best suited toward and how the two best
interoperate together.
A small suite of node implementations are provided out of the box
including a
Delay
,Sum
,Pass
,GraphNode
andBoxedNode
, all ofwhich can be enabled/disabled via their associated features.
Following this, I have some ideas for adding an optional
sync
moduleto the crate, aimed at controlling and monitoring a dasp graph and it's
nodes from a separate thread (i.e. for convenient use alongside a GUI)
in a non-dynamically-allocating, non-blocking manner. The work so far
has been performed with these plans in mind. The ideas are for the most
part based on the discussion at RustAudio/dsp-chain#141.
Also,
no_std
support fordasp_graph
is currently blocked on petgraphsupport for
no_std
. A PR is open for addingno_std
support atpetgraph/petgraph#238. In the meantime, the
std
feature must beenabled to use the new
dasp::graph
module. This is also noted in theupdated docs.
For more information about the crate and inner workings feel free to
read through the new
dasp_graph
docs. I'm yet to add examples, buthopefully the added tests can give a good idea of how to use the crate
in the meantime.