internal override void Write(MidiWriter writer, WritingSettings settings) { var component = Component; var componentValueMask = ComponentValueMasks[component]; var componentValue = ComponentValue & componentValueMask; var data = DataTypesUtilities.Combine((FourBitNumber)(byte)component, (FourBitNumber)(byte)componentValue); writer.WriteByte(data); }
public byte GetStatusByte(MidiEvent midiEvent) { var eventType = midiEvent.GetType(); byte statusByte; if (!StandardEventTypes.Channel.TryGetStatusByte(eventType, out statusByte)) { Debug.Fail($"No status byte defined for {eventType}."); } return(DataTypesUtilities.Combine((FourBitNumber)statusByte, ((ChannelEvent)midiEvent).Channel)); }
public byte GetStatusByte(MidiEvent midiEvent) { byte statusByte = 0; switch (midiEvent.EventType) { case MidiEventType.NoteOff: statusByte = EventStatusBytes.Channel.NoteOff; break; case MidiEventType.NoteOn: statusByte = EventStatusBytes.Channel.NoteOn; break; case MidiEventType.ControlChange: statusByte = EventStatusBytes.Channel.ControlChange; break; case MidiEventType.PitchBend: statusByte = EventStatusBytes.Channel.PitchBend; break; case MidiEventType.ChannelAftertouch: statusByte = EventStatusBytes.Channel.ChannelAftertouch; break; case MidiEventType.ProgramChange: statusByte = EventStatusBytes.Channel.ProgramChange; break; case MidiEventType.NoteAftertouch: statusByte = EventStatusBytes.Channel.NoteAftertouch; break; } var channel = ((ChannelEvent)midiEvent).Channel; return(DataTypesUtilities.Combine((FourBitNumber)statusByte, channel)); }
public void Write(MidiEvent midiEvent, MidiWriter writer, WritingSettings settings, bool writeStatusByte) { if (writeStatusByte) { var eventType = midiEvent.GetType(); byte statusByte; if (!StandardEventTypes.Channel.TryGetStatusByte(eventType, out statusByte)) { Debug.Fail($"Unable to write the {eventType} event."); } var channel = ((ChannelEvent)midiEvent).Channel; var totalStatusByte = DataTypesUtilities.Combine((FourBitNumber)statusByte, channel); writer.WriteByte(totalStatusByte); } // midiEvent.Write(writer, settings); }
internal override short ToInt16() { return((short)-DataTypesUtilities.Combine((byte)Format, Resolution)); }