Skip to content

RIG/RACK mod for MOD sdk/ui server #157

@o-murphy

Description

@o-murphy

Currently, the use of mod-host and mod-ui is almost impossible as a stand-alone device due to the inability of creating pedalboards, namely plug-in switching via the web interface and the lack of automatic switching when changing plugins.

I’m trying to develop my own api/ws client for mod-ui that allows you to create a linear RACK/RIG-like pedalboard with auto-connection of plugins based on the slot system and information about hardware and plugin ports.

I can download plugins and automatically linearly connect them in mono/stereo modes, with some simple additional configuration. But I can’t achieve full compatibility with web ui. That is, I have to rely on the “optimistic client” and “make before brake” concepts.

It would not be bad if the mod server provided RACK/RIG mode along with pedalboard. This is already possible with the current API with the only difference - you need a slot-like automatic linear connection system. It would also be useful for the MOD DWARF project.

So far I have succeeded:

  • Define hardware ports and plug-in ports, params
  • Create a RIG with a given number of slots, the first and last slots are hardware, the rest are plugins
  • Add, remove plugins in slots
  • Automatically connect slots to the chain based on position in rig, the number and type of ports (one2one, many2many, one2many, many2one connection), with support for paired connection of stereo IO.
  • Manage plugin params
  • Receive feedback on changing plugin params
  • Receive feedback on the change in the structure of the pedalboard (so that the changes in the pedalboard is determined by the client and not from outside)

What I plan to finish:

  • Saving the rig state for recovery in case of restart or structure change via external interfaces as mod-ui
  • Make before brake - when adding/replacing/removing plugins - with connecting its neighbors before detach without a noticeable click
  • Add support for modi ports and midi plug-ins (possibly with the same logic I got for audio)
  • Make possible a variable number of slots in the rig chain
  • Make synchronization between multiple clients on the master-slave model to use multiple physical devices like esp32 or similar as separate cheap controllers.

Notice

In general there will be good to have this feature as a built-in part of MOD UI.
But if you are not plan to implement it, it would be great to have simple API/WS client (micropython compatible) that is able to be realtime synced with current web server state, can get and send state updates seamless between few slave clients (not between few UI clients only)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions