/// <summary> /// Create midi message /// </summary> /// <param name="portID">port id</param> /// <param name="statusByte">status byte</param> /// <param name="data1">data 1</param> /// <param name="data2">data 2</param> public OscMidiMessage(byte portID, byte statusByte, byte data1, byte data2) { FullMessage = 0; Note = OscMidiNote.C0; PortID = portID; StatusByte = statusByte; Data1 = (byte)(data1 & 0x7F); Data2 = (byte)(data2 & 0x7F); }
/// <summary> /// Parse a midi message from a single 4 byte integer /// </summary> /// <param name="value">4 byte integer portID | (type | channel) | data1 | data2</param> public OscMidiMessage(uint value) { PortID = 0; StatusByte = 0; Data1 = 0; Note = OscMidiNote.C0; Data2 = 0; FullMessage = value; }
/// <summary> /// Create midi message /// </summary> /// <param name="portID">the id of the destination port</param> /// <param name="type">the type of message</param> /// <param name="channel">the channel</param> /// <param name="data1">data argument 1</param> /// <param name="data2">data argument 2</param> public OscMidiMessage(byte portID, OscMidiMessageType type, byte channel, byte data1, byte data2) { if (channel >= 16) { throw new ArgumentOutOfRangeException("channel"); } FullMessage = 0; Note = OscMidiNote.C0; PortID = portID; StatusByte = (byte)((int)type | (int)channel); Data1 = (byte)(data1 & 0x7F); Data2 = (byte)(data2 & 0x7F); }