Continue cleanup
[carla.git] / doc / Carla-TODO
blob747140ff24f32e72ef904e4631e735f69d109ec3
1 # Carla TODO
3 # ----------------------------------------------------------------------------
4 # in short
6 4. custom "plugin slots" skins, ala Reason (also define set of keys for a new LV2 extension, 80% done)
7 7. direct support for csound files (as plugins, inspired by 'cabbage')
9 Ideas for later:
11 10. easier canvas connections by using smart key shortcuts
12 11. Mobile version (using Android Patchfield for example)
13 12. Mobile OSC Control app
14 13. Port good JACK-only apps as internal plugins (zita stuff would be nice)
16 # ----------------------------------------------------------------------------
17 # current work
19 FRONTEND:
20  - more skins
21  - testing stuff
23 BACKEND:
24  - noexcept wherever possible
26 OTHER:
27  - create tests for all utils code
28  - fix reported bugs
30 # ----------------------------------------------------------------------------
31 # more detailed
33 GENERAL:
34  - add direct program access on ui-dialogs (needed for standalone bridges), maybe add extra buttons too (reset plugin, fix ui size)
35  - implement midi-learn (new dialog)
36  - implement favorite plugins, add in new tab near file-browser
37  - blender style canvas theme
38  - NSM rework
40 FRONTEND:
41  - make always-on-top depend on it^
42  - complete zynfx, knob values on top
43  - synth skin
44  - samplers skin
46 ENGINE:
47  - allow to change position of plugins (up/down)
48  - allow to add plugins when engine is stopped
49  - implement Haiku Media support (based from JACK?, LATER)
50  - implement latency in continuous-rack mode
51  - add MIDI-bank change type (GM, GS, XG and MMA). See fluidsynth and los docs
52  ~ allow to use static OSC ports
53  - switch engine modes when opening project
54  - don't pass audio buffers to plugin process, make them request via ports
56 PLUGINS:
57  - add control-out rate/freq option in frames (or just a regular block-size option?)
58  - control/midi-out in singleProcess() calls, use timeoutFrames var
59  - implement midi-cc automation special rules (invert, half, logarithmic, etc)
60  - implement LSCP file support (new native plugin?)
61  - implement Csound file support
64 LADSPA:
66 DSSI:
67  - custom chunk-data extension, publish on kx website when complete
69 LV2:
70  - revisit all extensions
71  - strict bounds recheck
73 FluidSynth:
74  - per-channel volume control
75  - proper buffer-size/sample-rate change (needs testing)
77 LinuxSampler:
78  - per-channel volume pan&control
79  - proper buffer-size/sample-rate change (needs testing)
81 # ----------------------------------------------------------------------------
82 # //tb/150118
84 misc
85 -allow to open instruments via file/open menu (same as drag from left-side tree)
86 -allow drag of sfz/sf2/gig etc. also to patchbay (same effect as dragging to rack)
87 -action "remove all" in toolbar and plugin menu: add confirm dialog /!\
88 -action "remove folder": add confirm dialog
89 -add plugin macro "reset parameters"
90 -allow re-ordering of rack components
91 -setting: auto-connect to physical output when new instrument loaded (for quick audition)
92 -for instruments: highlight keys with assigned samples or unhighlight keys without assigned sample
93 -allow in-line edit window (i.e. right of rack/canvas) -> shows as soon as plugin/instr. is selected
94 -indicate engine at work top right
95 -if engine is jack, show load top right (percent and/or gauge)
96 -warn on quit if unsaved
98 patchbay
99 -allow click a, click b port connections
100 -allow multiple port selection + connection (i.e. with enter)
101 -allow to select connections with lasso (to delete)