Development RoadmapThis is a brief idea of my plans for the development of praxis. - Praxis core
- Core API
- Component, container, root container, root hub API.
- Base asynchronous message passing API (controls, calls, arguments)
- Base synchronous message passing API (ports).
- Extension API.
- Base implementations of core API
- Core components
- Basic (property, variable, random argument) short term
- File components (random file) short term
- Math components (add, multiply, random number, threshold, scale) short term
- Time components (interpolator, governor, timer, delay) short term
- Praxis extensions
- Praxis script extension
- Basic script syntax.
- Enhanced syntax, variables, basic commands (if, while, etc) medium term
- Multiple script processes medium term
- User defined functions long term
- Asynchronous task extension - coordinate background task such as resource loading
- Embedded compiler extension (possibly using Janino) medium term
- Image / Video components (on top of RIPL library)
- Video root, server, ports API
- Default Image root, port implementations
- Basic Components
- Output, splitter, still, snapshot
- Video player and capture API (mostly done) short term
- Video player and capture implementation using GStreamer library (mostly done) short term
- Mix Components
- Composite component (with alpha and photo composite modes (Add, Sub, Difference, Multiply, Screen, etc))
- Crossfader with multiple composite modes.
- Effect Components
- Ripple effect
- Basic colour effects (negative, negative value, posterize, etc) short term
- Perspective effects medium term
- Motion components
- Frame difference component
- Simple motion detection, measurement (mostly done) short term
- Motion tracking medium term
- Enable hardware accelerated surfaces and optimise rendering using existing Java2D pipeline short term
- Hardware accelerate custom surface operations and composites (library possibilities being evaluated) medium term
- Audio components (on top of RAPL library)
- Audio root, server, ports API
- Default audio root, port implementations
- Basic components
- Sampling Components
- Mix components
- Gain
- Crossfader short term
- Mixer short term
- Effects
- Delay, comb filter, simple overdrive short term
- Filters, reverb, chorus (porting from Gervill project) short term
- Granulator medium term
- Jack bindings (using JNA)
- GUI control components (on top of Swing)
- GUI root, binding API
- Basic GUI API implementation
- Control components
- Basic - Slider, range slider, combo box, textfield, buttons, file loader
- XY controller
- Audio / Video scrubber with thumbnails medium term
- Control containers
- Horizontal and vertical panels
- Tabbed panels
- MIDI / OSC control components
- MIDI root, binding API
- Basic MIDI API implementation
- OSC API medium to long term
- Praxis Player (default distribution)
- Simple script loading / executing GUI.
- Transition player to Netbeans RCP for easier cross platform deployment and modularization. medium term
- Enhanced live scripting (multiple terminals, shortcuts, etc) medium term
- Graphical connection graph for components (using Netbeans Visual Library) long term
|