As explained in #5, using track names as identifiers may not be a good practice.
We should use an ID for selecting and managing them.
The sequencer state could maybe store the list of track names, and use indexes to describe them, something like this:
In the server, mostly the part about the activated pads (use a list instead. of a map to allow json serialization).
In the clients, the part that translates the state to create the tracks.
Also, the state could be sent as one json instead of separating pads, track names, etc... It will make the things much simpler for manipulating and sharing states.
As explained in #5, using track names as identifiers may not be a good practice. We should use an ID for selecting and managing them. The sequencer state could maybe store the list of track names, and use indexes to describe them, something like this:
The sequencer state should be re-written.
Also, the state could be sent as one json instead of separating pads, track names, etc... It will make the things much simpler for manipulating and sharing states.