|  | # Carla TODO
# ----------------------------------------------------------------------------
# in short
4. custom "plugin slots" skins, ala Reason (also define set of keys for a new LV2 extension, 50% done)
5. internal patchbay processing mode
7. direct support for csound files (as plugins, inspired by 'cabbage')
8. OSX builds
Ideas for later:
9a. Carla plugin working as X11 embed
9b. Carla as VST plugin (needs #9a)
10. easier canvas connections by using smart key shortcuts
11. Mobile version (using Android Patchfield for example)
12. Mobile OSC Control app
13. Port good JACK-only apps as internal plugins (zita stuff would be nice)
# ----------------------------------------------------------------------------
# current work
FRONTEND:
 - more skins
 - testing stuff
BACKEND:
 - noexcept wherever possible
OTHER:
 - create tests for all utils code
 - fix reported bugs
# ----------------------------------------------------------------------------
# more detailed
GENERAL:
 - add direct program access on ui-dialogs (needed for standalone bridges), maybe add extra buttons too (reset plugin, fix ui size)
 - implement midi-learn (new dialog)
 - implement favorite plugins, add in new tab near file-browser
 - blender style canvas theme
 - make it possible to use backend as fake standalone app (using pipes) instead of a shared library
 - smarter carla-single script (LV2 must only need URI for example, and ignore all other hints)
 - artwork about tab
 - randomize button
 - all-params to default button
 - NSM rework
FRONTEND:
 - options for UIs on top of carla (managed)
 - make always-on-top depend on it^
 - complete zynfx, knob values on top
 - synth skin
 - samplers skin
ENGINE:
 - allow to change position of plugins (up/down)
 - allow to add plugins when engine is stopped
 - complete RtAudio+RtMidi support (only MIDI out missing)
 - complete Juce engine driver support
 - implement Haiku Media support (based from JACK?, LATER)
 - implement latency in continuous-rack mode
 - implement internal patchbay mode (once Juce move is complete)
 - internal patchbay mode, based on Juce graph code
 - handle sample-rate changes in JACK (made possible by switch-master)
 - add MIDI-bank change type (GM, GS, XG and MMA). See fluidsynth and los docs
 - allow to use static OSC ports
 - save engine info
 - switch engine modes when opening project
 - don't pass audio buffers to plugin process, make them request via ports
PLUGINS:
 - add control-out rate/freq option in frames (or just a regular block-size option?)
 - control/midi-out in singleProcess() calls, use timeoutFrames var
 - implement midi-cc automation special rules (invert, half, logarithmic, etc)
 - implement LSCP file support (new native plugin?)
 - implement Csound file support
Native:
 - Cleanup API
 - Document API from daz
 - update zynaddsubfx
LADSPA:
DSSI:
 - custom chunk-data extension, publish on kx website when complete
LV2:
 - revisit all extensions
 - strict bounds recheck
FluidSynth:
 - per-channel volume control
 - proper buffer-size/sample-rate change (needs testing)
LinuxSampler:
 - per-channel volume pan&control
 - proper buffer-size/sample-rate change (needs testing)
 |