/// <summary> /// Create midi message /// </summary> /// <param name="portID">port id</param> /// <param name="type">midi message type</param> /// <param name="channel">midi channel</param> /// <param name="value">14 bit data value</param> public OscMidiMessage( byte portID, OscMidiMessageType type, byte channel, ushort value) : this(portID, type, channel, (byte)(value & 0x7F), (byte)((value & 0x3F80) >> 7)) { }
/// <summary> /// Create midi message /// </summary> /// <param name="portID">port id</param> /// <param name="type">midi message type</param> /// <param name="channel">midi channel</param> /// <param name="data1">data 1</param> public OscMidiMessage( byte portID, OscMidiMessageType type, byte channel, byte data1) : this(portID, type, channel, data1, 0) { }
/// <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; PortID = portID; StatusByte = (byte)((int)type | (int)channel); Data1 = (byte)(data1 & 0x7F); Data2 = (byte)(data2 & 0x7F); }
public void OscMidiMessageConstructorTest() { OscMidiMessage expected = new OscMidiMessage(0x03962200); byte portID = 3; OscMidiMessageType type = OscMidiMessageType.NoteOn; byte channel = 6; byte data1 = 34; OscMidiMessage target = new OscMidiMessage(portID, type, channel, data1); Assert.Equal(expected, target); Assert.Equal(target.PortID, portID); Assert.Equal(target.Channel, channel); Assert.Equal(target.MessageType, type); Assert.Equal(target.Data1, data1); Assert.Equal(target.Data2, 0); }