protected static byte[] PolyphonicKeyPressureMessage(Channel channel, Key key = Key.Key0, int pressure = 0)
 => new[]
 {
     StructHelper.StatusByte(Midi.Status.PolyphonicKeyPressureBitmask, channel),
     StructHelper.DataByte(key),
     StructHelper.DataByte(pressure)
 };
 protected static byte[] ControlChangeMessage(Channel channel, int control, int value)
 => new[]
 {
     StructHelper.StatusByte(Midi.Status.ControlChangeBitmask, channel),
     StructHelper.DataByte(control),
     StructHelper.DataByte(value)
 };
 protected static byte[] NoteOnMessage(Channel channel, Key key = Key.Key0, int velocity = 0)
 => new[]
 {
     StructHelper.StatusByte(Midi.Status.NoteOnBitmask, channel),
     StructHelper.DataByte(key),
     StructHelper.DataByte(velocity)
 };
 protected static byte[] ChannelPressureMessage(Channel channel, int pressure)
 => new[]
 {
     StructHelper.StatusByte(Midi.Status.ChannelPressureBitmask, channel),
     StructHelper.DataByte(pressure)
 };
 protected static byte[] ProgramChangeMessage(Channel channel, int program)
 => new[]
 {
     StructHelper.StatusByte(Midi.Status.ProgramChangeBitmask, channel),
     StructHelper.DataByte(program)
 };