sparklemotion icon indicating copy to clipboard operation
sparklemotion copied to clipboard

MIDI support

Open xian opened this issue 2 years ago • 2 comments

xian avatar Jun 03 '22 21:06 xian

@SiriusZael — omg sorry I keep trying to attack this and I keep running into questions about how to model it that get my head spinning. Just gonna dump some of the stuff I keep trudging into here, maybe we can talk it out and figure out how to simplify.

So there's the question of where the midi device is attached, direct to Pinky or to the client UI device (e.g. iPad). Shouldn't make much difference, right, ideally both would work. For just counting keypresses/sustain pedal state, easy enough (and probably makes most sense direct to Pinky).

Now let's say we're getting into binding midi events to UI elements (sliders, buttons, etc.). They should still be equivalent, so far so good. But transitions [#358]! The client UI will have a cue mode where state can be changed locally, and it'll affect the preview, but won't show up live. In this case, I think midi devices attached to the client should only affect client local state, while midi devices attached direct to Pinky should still affect live output. Err, that's assuming transitions are implemented such that each client has its own local state when it's in cue mode, and Pinky really knows nothing about it.

I'd like to implement a midi device simulator when running in simulator mode, which could then potentially be hooked up to either Pinky or the client. Also, the simulator could be talking direct to a real browser-connected midi device, which itself could be hooked into either side. 🤯

Definitely we don't need anything that complex to get started, but it's what I keep getting stuck on here. Sorry again I haven't gotten in a review, let's talk it over quick and get a good-enough first pass in.

xian avatar Aug 02 '23 08:08 xian

There's a lot of stuff it'd be nice to clean up some more here: a simulator for midi devices, allowing the simulator to hook up to real midi devices, yada yada, but let's get this in now and fix that after BRC. <3

xian avatar Aug 16 '23 04:08 xian