Audio plugin host https://kx.studio/carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
3.6KB

  1. # Carla TODO
  2. # ----------------------------------------------------------------------------
  3. # in short
  4. 1. move backend from Qt to Juce (80% done)
  5. 2. move frontend from PyQt4 to PyQt5, rewrite to share widget code (60% done)
  6. 3. allow to use old Qt code (except graphics) for non-Juce-supported OSes (BSD, Haiku, Solaris, etc)
  7. 4. custom "plugin slots" skins, ala Reaper (also define set of keys for a new LV2 extension)
  8. 5. internal patchbay processing mode (needs #1)
  9. 6. Carla as an LV2 plugin (needs #5)
  10. 7. direct support for csound files (as plugins, inspired by 'cabbage')
  11. 8. OSX builds (needs #1 and #2)
  12. Ideas for later:
  13. 9. Carla as VST plugin (will have to be a custom UI)
  14. 10. easier canvas connections by using smart key shortcuts
  15. 11. Mobile version (using Android Patchfield for example)
  16. 12. Mobile OSC Control app
  17. 13. Port good JACK-only apps as internal plugins (zita stuff would be nice)
  18. # ----------------------------------------------------------------------------
  19. # more detailed
  20. GENERAL:
  21. - finalize Juce backend move
  22. - finalize PyQt5 move
  23. - add back old Qt code for when Juce is not available (or disabled by user)
  24. - add direct program access on ui-dialogs (needed for standalone bridges), maybe add extra buttons too (reset plugin, fix ui size)
  25. - implement midi-learn (new dialog)
  26. - custom skins for plugin slots, design for 8 types + instruments (gig, sf2, sfz)
  27. - custom skins for internal plugins
  28. - implement favorite plugins, add in new tab near file-browser
  29. - blender style canvas theme
  30. - make it possible to run forced (and only) rack or patchbay mode
  31. - make it possible to use backend as fake standalone app (using pipes) instead of a shared library
  32. - create startup scripts for carla-rack, carla-patchbay, carla-settings, etc
  33. - smarter carla-single script (LV2 must only need URI for example, and ignore all other hints)
  34. - alternate, simpler UI for mobile and/or VST version
  35. ENGINE:
  36. - allow to change position of plugins (up/down)
  37. - allow to add plugins when engine is stopped
  38. - save&restore canvas connections (optional, must not be used under SM)
  39. - complete RtAudio+RtMidi support (only MIDI out missing + save&restore)
  40. - complete Juce engine driver support
  41. - implement Haiku Media support (based from JACK?, LATER)
  42. - implement latency in continuous-rack mode
  43. - implement internal patchbay mode (once Juce move is complete)
  44. - engine as internal plugin
  45. - internal patchbay mode, based on Juce graph code
  46. - handle sample-rate changes in JACK (made possible by switch-master)
  47. - add MIDI-bank change type (GM, GS, XG and MMA). See fluidsynth docs
  48. - allow to use static OSC ports
  49. PLUGINS:
  50. - add control-out rate/freq option in frames (or just a regular block-size option?)
  51. - control/midi-out in singleProcess() calls, use timeoutFrames var
  52. - implement midi-cc automation special rules (invert, half, logarithmic, etc)
  53. - implement Juce plugin hosting (provides AU and VST2/3 support; will replace current VST hosting if Juce is used)
  54. - implement LSCP file support (new native plugin)
  55. - implement Csound file support
  56. Native:
  57. - Cleanup API
  58. - Document API
  59. LADSPA:
  60. DSSI:
  61. - custom chunk-data extension, publish on kx website when complete
  62. LV2:
  63. - complete lv2-worker support
  64. - handle in-process graphics via Juce
  65. - no in-process UI support if juce disabled
  66. - revisit all extensions
  67. - option to set lv2 preset folder
  68. - only load LV2 bundles on request, never load full LV2 world
  69. VST: (non-Juce build)
  70. - no UI support
  71. - simplify code (because of no Juce)
  72. FluidSynth:
  73. - per-channel volume control
  74. - proper buffer-size/sample-rate change
  75. LinuxSampler:
  76. - multi-program
  77. - 16outs (depends on multi-program)
  78. - proper buffer-size/sample-rate change