From 09c7167c0d4b6745adee6c92c6e58b7be0084dcb Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 17 Dec 2013 16:53:35 +0000 Subject: [PATCH] Update TODO file --- doc/Carla-TODO | 74 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 11 deletions(-) diff --git a/doc/Carla-TODO b/doc/Carla-TODO index 35ee4dafe..d9ecb8556 100644 --- a/doc/Carla-TODO +++ b/doc/Carla-TODO @@ -1,20 +1,66 @@ # Carla TODO +# ---------------------------------------------------------------------------- +# in short + +1. move backend from Qt to Juce (80% done) +2. move frontend from PyQt4 to PyQt5, rewrite to share widget code (60% done) +3. allow to use old Qt code (except graphics) for non-Juce-supported OSes (BSD, Haiku, Solaris, etc) +4. custom "plugin slots" skins, ala Reaper (also define set of keys for a new LV2 extension) +5. internal patchbay processing mode (needs #1) +6. Carla as an LV2 plugin (needs #5) +7. direct support for csound files (as plugins, inspired by 'cabbage') +8. OSX builds (needs #1 and #2) + +Ideas for later: + + 9. Carla as VST plugin (will have to be a custom UI) +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) + +# ---------------------------------------------------------------------------- +# more detailed + GENERAL: + - finalize Juce backend move + - finalize PyQt5 move + - add back old Qt code for when Juce is not available (or disabled by user) - 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 midi-cc automation special rules (invert, half, logarithmic, etc) - - allow to change position of plugins (up/down) - - add control-out rate/freq option in frames (or just a regular block-size option?) - - control/midi-out in singleProcess() calls, use timeoutFrames var + - custom skins for plugin slots, design for 8 types + instruments (gig, sf2, sfz) + - custom skins for internal plugins + - implement favorite plugins, add in new tab near file-browser + - blender style canvas theme + - make it possible to run forced (and only) rack or patchbay mode + - make it possible to use backend as fake standalone app (using pipes) instead of a shared library + - create startup scripts for carla-rack, carla-patchbay, carla-settings, etc + - smarter carla-single script (LV2 must only need URI for example, and ignore all other hints) + - alternate, simpler UI for mobile and/or VST version ENGINE: + - allow to change position of plugins (up/down) + - allow to add plugins when engine is stopped + - save&restore canvas connections (optional, must not be used under SM) - complete RtAudio+RtMidi support (only MIDI out missing + save&restore) - - implement Haiku Media support (based from JACK?) + - complete Juce engine driver support + - implement Haiku Media support (based from JACK?, LATER) - implement latency in continuous-rack mode - - DSSI/LV2/VST version (needs add-new support on control side) - - Handle sample-rate changes in JACK (made possible by switch-master) - - Add MIDI-bank change type (GM, GS, XG and MMA). See fluidsynth docs + - implement internal patchbay mode (once Juce move is complete) + - engine as internal plugin + - 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 docs + - allow to use static OSC 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 Juce plugin hosting (provides AU and VST2/3 support; will replace current VST hosting if Juce is used) + - implement LSCP file support (new native plugin) + - implement Csound file support Native: - Cleanup API @@ -23,13 +69,19 @@ Native: LADSPA: DSSI: + - custom chunk-data extension, publish on kx website when complete LV2: - complete lv2-worker support + - handle in-process graphics via Juce + - no in-process UI support if juce disabled + - revisit all extensions + - option to set lv2 preset folder + - only load LV2 bundles on request, never load full LV2 world -VST: - - add support for old X11 UIs - - implement cockos extensions +VST: (non-Juce build) + - no UI support + - simplify code (because of no Juce) FluidSynth: - per-channel volume control