-
Notifications
You must be signed in to change notification settings - Fork 60
Release Plan
Colin Clark edited this page May 8, 2016
·
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
- ✅ Upgrade to latest version of Infusion 2.0.0-beta
- Improved factoring of core components
- ✅ Merge in the graphical-ioc branch
- ✅ Remove all hard-coded references to
flock.environment
- Performance improvements
- ✅ remove Infusion events and invokers from the main processing loop
- ✅ Functions + state for main sample processing loop
- Better error reporting in new Playground
- Comprehensive, basic tutorial for using Flocking, including:
** How to create synths
** How to start and stop the environment and add/remove synths in the environment
** How to sequence and schedule in-graph changes (using
flock.sequencer
andflock.change
) ** How to schedule other events using the bare Schedule API (i.e.once()
,repeat()
, andclear()
- Reference documentation for all unit generators
- Block-accurate scheduling (via Bergson)
- Declarative means to perform all major actions in Flocking via the scheduler (and eventually via OSC-style remoting), including: ** Create, add, remove, and destroy synths ** Update synth values ** Start and stop the environment
- Improvements to
flock.modelSynth
, which will become the default - Improved MIDI support
- Out of the box support for OSC.js
- 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
- 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
- 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
- Ability to inject change unit generators for sample-accuracy when scheduling value changes
- 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