[sdiy] Handling MIDI Running Status from Power-up
nitro2k01 at gmail.com
Fri Nov 15 03:11:17 CET 2019
On Thu, 14 Nov 2019 at 19:43, Next Expanse <nextexpanse at gmail.com> wrote:
> The right way to solve this would be to have a bidirectional protocol, some sort of way for the receiver to detect when it’s been disconnected, and to have a way for the module to query the controller’s state. Nothing else will fix the problem, so unless there are some serious changes, we have to live with it.
The issue could be mitigated somewhat by some cleverness on both the
sending and receiving side.
Sender: Schedule the status byte to be resent periodically. Running
status is really mostly useful when the line is congested. At times
when the line is not congested, a status byte could be sent safely.
Receiver: Be clever about active sensing. (Or I guess use AS as
intended.) You'd have to keep track of the current AS state and time
from the last AS message.
The default mode is "no AS". In this mode, all messages are received
normally. This mode is intended for sending devices that don't support
AS. If an AS message is received, you enter AS mode.
In AS mode, you run a timer of maybe 2 seconds (above the typical AS
interval with margin.) When the timer runs out, the status mode is set
to "null" where all data messages are ignored until the status is set
again, and all notes are killed. The mode is also changed to "no AS".
Of course, this may not be trivial and might cause unforeseen issues.
More information about the Synth-diy