web synth docs

2021-12-10

MAIN GOAL: Plan out work items to make the [looper] functional and move towards working live multi-instrument performances with web synth.

It has been a long time since I created one of these daily notes, but I've been working agan on web synth for quite some time - a couple of months or something like that, I think. In that time, I've already made substantial progress of tying up a lot of various loose ends and making it a useful tool as a whole.

Right now, my main focus is on the looper. Yesterday, I did a ton of work and created a generic [preset] saver and loader with backend integration and tags and integrated it with the looper. I plan to hook that generic preset saver/loader up to the [midi-editor] today to facilitate saving and categorizing lots of MIDI compositions and using them within the looper.


Let me try to create a quick list of high-level TODO items to follow up yesterday's work:

  • Integrate generic preset saver/loader with the [midi-editor] including work to up-level the backend to support tagging MIDI compositions
  • Handle re-connecting renamed connectables for the [looper] when modules are renamed. Should create a helper function for that since the exact same functionality already exists for generic MIDI control params in the [midi-keyboard].
  • Update generic preset loader to add filtering/search functionality by preset name, description, and tags
  • Update looper to include support for setting lengths of various loops, showing the actual length of loaded compositions
  • Add support to the looper for switching between banks in different modules via different modes. More notes on this: [2021-12-11]
    • Via the looper UI itself
    • Via external gate events
    • Via pre-defined state machines with options for randomness and other things, we have thoughts on that
  • Fix issue with switching between banks with different lengths; need to store an offset when computing phase so switched-to banks start playing at their beginnings. What will things look like once those two things are done?

We will be able to go over to the MIDI editor, create a composition, save it as a preset, tab over to the looper, load it, route it, and press play. The looper can be configured to play the different loaded compositions in various ways, switching between them in pre-determined fashions of dynamically via the looper UI itself or something like the [control-panel-module].

The main issue I forsee at this point is that there may be too many [view-context]s to manage easily with the existing tab-based view context switcher. To be clear, this is a great problem to have, I am very excited to get to this point, and I already have solutions planned for it. That solution is an instanced [graph-editor] and view context switcher with controls for switching between different slices of the full graph to make things more managable. Can expose inter-slice connection points.

2021-12-10