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.

98 lines
3.3KB

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