public ModulatorType(System.IO.Stream stream) { var data = StreamHelperLe.ReadUInt16(stream); Type = (SourceType)(data >> 10); Polarity = (SourcePolarityType)((data >> 9) & 0x01); Direction = (SourceDirectionType)((data >> 8) & 0x01); if (((data >> 7) & 0x01) == 0) { Source = (ControllerSourceType)(data & 0x3F); } else { Source = ControllerSourceType.MidiController; MidiSource = (MidiControllerType)(data & 0x3F); } }
/// <summary> /// Creates a new midi controller message object. /// </summary> /// <param name="channel">The (zero-based) midi channel number.</param> /// <param name="controller">The type of continuous controller.</param> /// <param name="value">The (optional) parameter (usually value) of the controller.</param> /// <returns>Returns a new instance.</returns> public MidiControllerMessage CreateControllerMessage(byte channel, MidiControllerType controller, byte value) { Contract.Ensures(Contract.Result <MidiControllerMessage>() != null); Check.IfArgumentOutOfRange <byte>(channel, 0, 15, "channel"); MidiData data = new MidiData(); data.Status = (byte)((int)MidiChannelCommand.ControlChange | channel); data.Parameter1 = (byte)controller; data.Parameter2 = value; MidiControllerMessage message = (MidiControllerMessage)this.Lookup(data); if (message == null) { message = new MidiControllerMessage(data); this.Add(message); } return(message); }
/// <summary> /// Creates a new midi controller message object. /// </summary> /// <param name="channel">The (zero-based) midi channel number.</param> /// <param name="controller">The type of continuous controller.</param> /// <param name="value">The (optional) parameter (usually value) of the controller.</param> /// <returns>Returns a new instance.</returns> public MidiControllerMessage CreateControllerMessage(byte channel, MidiControllerType controller, byte value) { Check.IfArgumentOutOfRange <byte>(channel, 0, 15, nameof(channel)); var data = new MidiData { Status = (byte)((int)MidiChannelCommand.ControlChange | channel), Parameter1 = (byte)controller, Parameter2 = value }; var message = (MidiControllerMessage)Lookup(data); if (message == null) { message = new MidiControllerMessage(data); Add(message); } return(message); }