public MPTKEvent() { Command = MPTKCommand.NoteOn; //V2.82 set default value Duration = -1; Channel = 0; Delay = 0; Velocity = 127; // max }
/// <summary> /// Create a MPTK Midi event from a midi input message /// </summary> /// <param name="data"></param> public MPTKEvent(ulong data) { Source = (uint)(data & 0xffffffffUL); Command = (MPTKCommand)((data >> 32) & 0xFF); if (Command < MPTKCommand.Sysex) { Channel = (int)Command & 0xF; Command = (MPTKCommand)((int)Command & 0xF0); } byte data1 = (byte)((data >> 40) & 0xff); byte data2 = (byte)((data >> 48) & 0xff); if (Command == MPTKCommand.NoteOn && data2 == 0) { Command = MPTKCommand.NoteOff; } //if ((int)Command != 0xFE) // Debug.Log($"{data >> 32:X}"); switch (Command) { case MPTKCommand.NoteOn: Value = data1; // Key Velocity = data2; Duration = -1; // no duration are defined in Midi flux break; case MPTKCommand.NoteOff: Value = data1; // Key Velocity = data2; break; case MPTKCommand.KeyAfterTouch: Value = data1; // Key Velocity = data2; break; case MPTKCommand.ControlChange: Controller = (MPTKController)data1; Value = data2; break; case MPTKCommand.PatchChange: Value = data1; break; case MPTKCommand.ChannelAfterTouch: Value = data1; break; case MPTKCommand.PitchWheelChange: Value = data2 << 7 | data1; // Pitch-bend is transmitted with 14-bit precision. break; } }
public MPTKEvent() { Command = MPTKCommand.NoteOn; //V2.82 set default value Duration = -1; Channel = 0; Delay = 0; Velocity = 127; // max IdSession = -1; TickTime = DateTime.Now.Ticks; }
public MPTKEvent() { Command = MPTKCommand.NoteOn; }