|
|
@@ -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 |
|
|
|