-
Notifications
You must be signed in to change notification settings - Fork 60
Release Plan
Colin Clark edited this page Jun 20, 2015
·
23 revisions
- ✅ Migrate website to more reliable hosting and change to stable branch
- ✅ Migrate mailing lists to the Fluid Project
- ✅ Basic, view-only version of the Flocking "live" graphical Playground
- ✅ Playground's play button should fade in and out smoothly to avoid clicks
- Ability to record to a buffer and asynchronously save it as a WAVE file
- Block-accurate scheduling
- Improved factoring of core components (merge in the graphical-ioc branch), removal of hard-coded references to
flock.environment
- Performance improvements
- Functions + state for main sample processing loop
- ✅ remove Infusion events and invokers from the main processing loop
- Upgrade to latest version of Infusion 2.0.0-alpha
- Alias
fluid.defaults
toflock.def
for easier declaration of named, shareable synths
- Complete rewrite of the Flocking interpreter (a.k.a. the parser) to be more modular
- Support the separation and naming of unit generators with wire specifications, which will enable one unit generator to be hooked up as the input to more than one other unit generator (sketches)
- Consider an expression syntax (compatible with Infusion) that will allow for a more terse means of wiring
- Refactor the Live Playground to support wire specifications
- SignalEvaluator
- JSON Specification for wiring up WebAudio nodes
- Ability to connect synths up to other synths directly, rather than depending on buses
- New scheduler API, including the ability to:
- create synths
- manipulate the environment (e.g. add synths, remove them, destroy them)
- use value expressions (e.g.
${synth.freq}
) anywhere within a change specification - Ability to inject change unit generators for sample-accuracy when scheduling value changes
- Ability to schedule WebAudio AudioParams declaratively
- "Generous" JSON parser and CodeMirror mode that supports unquoted keys, comments, and line/character index metadata
- Expression parser that supports mathematical expressions, references to constants, etc. in JSON
- Ability to load a JSON file containing a band/synthDef from the local file system or a URL
- Refactor flock.synth so its synthDef is a "live model," where all changes to the unit generator graph are mediated by the ChangeApplier and take effect on-the-fly
- Input mapper
- Finish MIDI support
- Out of the box support for OSC.js
- Rewrite the visual playground and underlying synthDef/ugenDef parsing logic
- Replace JSPlumb with Cytoscape or equivalent
- Better visual representations for unit generators, envelopes, etc. (i.e. render them directly)
- Support for rendering multiple synths and bands
- Support for rendering common Infusion IoC expressions
- Add ability to edit unit generator graphs
- Awesome getting started tutorial
- Documentation for all unit generators
- How to reuse and extend other synths
- Functions + state for all unit generators
- Further optimize all hot paths
- Support for file management
- Create, delete, save
- New view for selecting and creating
- OAuth integration with Github
- Gist persistence manager
- PouchDB-based local caching, wrapped with a similar REST-style API to Gist’s
- ✅ Sample-accurate change unit generator
- ✅ Envelope generator
- ✅ WebAudio API-based audio file decoding
- ✅ Support for MediaElementAudioSourceNode
- ✅ User-specifiable channel counts (rather than always using the max)
- ✅ Band-limited oscillators