datomusic / duo-imxrt

MIT License
2 stars 0 forks source link

Clarify MIDI Start and Continue behaviour #162

Open ggVGc opened 6 months ago

ggVGc commented 6 months ago

Current behaviour

Action Output
Pressed play button Sends Continue
Received Start or Continue Starts sequencer and outputs Start.
Disables internal clock and waits for MIDI Clock .

Questions / Suggestions

Should we respond in the same way to Start and Continue?

It would make more sense to me to start the sequencer from the beginning when receiving Start, and have current behaviour from Continue. Either way it feels inconsistent to output Start when started from a MIDI message, and Continue when started from the play button.

Should we output Start instead of Continue? (Comparison to Volca)

The Volca drum remembers MIDI clock state and starts from where it left off when receving Continue. This means that with the current implementation we're out of phase if we stop and start the Duo, unless the Volca is manually reset to the first step.

DavidMenting commented 5 months ago

We've chosen to implement start as continue when pressing the play button as there is no clear first step on the DUO. This in contrast to the Volca's that have a linear sequencer. You can use the BOOST button to choose which step to continue from.

The behaviour when receiving a MIDI start or continue message is also deliberate but the case can be made to have start restart from the first step. Again, as the DUO has no clear first step I don't think there is a clear benefit.

ggVGc commented 5 months ago

@DavidMenting Yeah, I think that makes sense. The only remaining question for me is why we output Start both when receiving Start and Continue. I think it would make sense to either output Continue (as we do when starting from play button), or repeat the incoming message.

DavidMenting commented 5 months ago

you are right. Passing on the received message seems the most logical thing to do