# Carla TODO # ---------------------------------------------------------------------------- # in short 4. custom "plugin slots" skins, ala Reason (also define set of keys for a new LV2 extension, 80% done) 7. direct support for csound files (as plugins, inspired by 'cabbage') Ideas for later: 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 - artwork about tab - 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 - 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 - 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) # ---------------------------------------------------------------------------- # //tb/150118 misc -allow to open instruments via file/open menu (same as drag from left-side tree) -allow drag of sfz/sf2/gig etc. also to patchbay (same effect as dragging to rack) -action "remove all" in toolbar and plugin menu: add confirm dialog /!\ -action "remove folder": add confirm dialog -add plugin macro "reset parameters" -allow re-ordering of rack components -setting: auto-connect to physical output when new instrument loaded (for quick audition) -for instruments: highlight keys with assigned samples or unhighlight keys without assigned sample -allow in-line edit window (i.e. right of rack/canvas) -> shows as soon as plugin/instr. is selected -indicate engine at work top right -if engine is jack, show load top right (percent and/or gauge) -don't show jack transport on start -allow to re-open jack transport, i.e. settings/show ... and/or via toolbar -warn on quit if unsaved patchbay -allow click a, click b port connections -allow multiple port selection + connection (i.e. with enter) -allow to select connections with lasso (to delete)