Flocking has for been largely stagnant for a long time and my attention has been focused on Signaletic, which I hope will form the long-term basis for future Flocking-like work across multiple platforms, including the Web and Eurorack/embedded hardware.
However, Flocking still contains tons of useful and interesting work, which I (and maybe others?) would like to have access to in a more focused AudioWorklet-compatible environment. There's enough technical debt and dead design branches that we should simple prune a lot of it off and just focus on the core identity of Flocking: its unit generators, declarative format for expressing signal graphs, and support for visual renderings of signal graphs.
My intent with this refactoring will be to remove anything that isn't directly supportive of running Flocking within an AudioWorklet and idiomatically interfacing it with the rest of the Web Audio API. The following things will be removed:
All overarching framework functionality that tries to abstract away the Web Audio API (Environments, the Audio System, the Output Manager)
Older leaky abstractions such as the Scheduler
Wrappers around Web Audio API nodes such as audio input, media sources, etc.
The imperative (i.e. JavaScript) playground
Moving forward, the focus will be on:
Defining AudioWorklets that run a Flocking unit generator graph
Mapping AudioParams and inputs/outputs to the Flocking graph (for zero garbage realtime parameter updates)
Modifying a Worklet's unit generator graph declaratively (for on-the-fly modification of a graph as in the Live Playground)
Integrating with Signaletic signals, and slowly replacing Flocking's unit generators with Signaletic Signals as appropriate
Flocking has for been largely stagnant for a long time and my attention has been focused on Signaletic, which I hope will form the long-term basis for future Flocking-like work across multiple platforms, including the Web and Eurorack/embedded hardware.
However, Flocking still contains tons of useful and interesting work, which I (and maybe others?) would like to have access to in a more focused AudioWorklet-compatible environment. There's enough technical debt and dead design branches that we should simple prune a lot of it off and just focus on the core identity of Flocking: its unit generators, declarative format for expressing signal graphs, and support for visual renderings of signal graphs.
My intent with this refactoring will be to remove anything that isn't directly supportive of running Flocking within an AudioWorklet and idiomatically interfacing it with the rest of the Web Audio API. The following things will be removed:
Moving forward, the focus will be on: