Example #1
0
        internal override void Write(MidiWriter writer, WritingSettings settings)
        {
            var component = Component;

            var componentValueMask = ComponentValueMasks[component];
            var componentValue     = ComponentValue & componentValueMask;

            var data = DataTypesUtilities.CombineAsFourBitNumbers((byte)component, (byte)componentValue);

            writer.WriteByte(data);
        }
        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.CombineAsFourBitNumbers(statusByte, channel));
        }