- add more messages

- change base ctor
master
Simon G 5 years ago
parent 348883a4d3
commit bce47735c5
  1. 42
      Lib.Midi/Messages/Factories/MidiMessageFactory.cs
  2. 6
      Lib.Midi/Messages/MidiMessage.cs
  3. 17
      Lib.Midi/Messages/NoteMessage.cs
  4. 11
      Lib.Midi/Messages/NoteOnMessage.cs
  5. 10
      Lib.Midi/Messages/PitchWheelChangeMessage.cs

@ -2,7 +2,6 @@
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using System;
using Lib.Midi.Messages.Interfaces;
using NAudio.Midi;
@ -12,41 +11,12 @@ namespace Lib.Midi.Messages.Factories
{
public IMidiMessage Create(MidiInMessageEventArgs midiInMessageEventArgs)
{
switch (midiInMessageEventArgs.MidiEvent.CommandCode)
{
case MidiCommandCode.NoteOff:
break;
case MidiCommandCode.NoteOn:
break;
case MidiCommandCode.KeyAfterTouch:
break;
case MidiCommandCode.ControlChange:
break;
case MidiCommandCode.PatchChange:
break;
case MidiCommandCode.ChannelAfterTouch:
break;
case MidiCommandCode.PitchWheelChange:
return new PitchWheelChangeMessage(midiInMessageEventArgs);
case MidiCommandCode.Sysex:
break;
case MidiCommandCode.Eox:
break;
case MidiCommandCode.TimingClock:
break;
case MidiCommandCode.StartSequence:
break;
case MidiCommandCode.ContinueSequence:
break;
case MidiCommandCode.StopSequence:
break;
case MidiCommandCode.AutoSensing:
break;
case MidiCommandCode.MetaEvent:
break;
default:
throw new ArgumentOutOfRangeException();
}
if (midiInMessageEventArgs.MidiEvent is PitchWheelChangeEvent pitchWheelChangeEvent)
return new PitchWheelChangeMessage(pitchWheelChangeEvent, midiInMessageEventArgs.RawMessage);
else if (midiInMessageEventArgs.MidiEvent is NoteOnEvent noteOnEvent)
return new NoteOnMessage(noteOnEvent, midiInMessageEventArgs.RawMessage);
else if (midiInMessageEventArgs.MidiEvent is NoteEvent noteEvent)
return new NoteMessage(noteEvent, midiInMessageEventArgs.RawMessage);
return null;
}

@ -9,10 +9,10 @@ namespace Lib.Midi.Messages
{
public abstract class MidiMessage : IMidiMessage
{
protected MidiMessage(MidiInMessageEventArgs midiInMessageEventArgs)
protected MidiMessage(MidiEvent midiEvent, int rawMessage)
{
ChannelNumber = midiInMessageEventArgs.MidiEvent.Channel;
RawMessage = midiInMessageEventArgs.RawMessage;
ChannelNumber = midiEvent.Channel;
RawMessage = rawMessage;
}
protected MidiMessage()

@ -0,0 +1,17 @@
// Author: Simon Gockner
// Created: 2021-04-10
// Copyright(c) 2021 SimonG. All Rights Reserved.
using NAudio.Midi;
namespace Lib.Midi.Messages
{
public class NoteMessage : MidiMessage
{
public NoteMessage(NoteEvent noteEvent, int rawMessage)
: base(noteEvent, rawMessage) =>
NoteNumber = noteEvent.NoteNumber;
public int NoteNumber { get; }
}
}

@ -8,10 +8,15 @@ namespace Lib.Midi.Messages
{
public class NoteOnMessage : MidiMessage
{
public NoteOnMessage(MidiInMessageEventArgs midiInMessageEventArgs)
: base(midiInMessageEventArgs)
{
public NoteOnMessage(NoteOnEvent noteOnEvent, int rawMessage)
: base(noteOnEvent, rawMessage) =>
NoteNumber = noteOnEvent.NoteNumber;
public NoteOnMessage()
{
// NoteOnEvent noteOnEvent = new NoteOnEvent()
}
public int NoteNumber { get; }
}
}

@ -8,11 +8,9 @@ namespace Lib.Midi.Messages
{
public class PitchWheelChangeMessage : MidiMessage
{
public PitchWheelChangeMessage(MidiInMessageEventArgs midiInMessageEventArgs)
: base(midiInMessageEventArgs)
{
}
public PitchWheelChangeMessage(PitchWheelChangeEvent pitchWheelChangeEvent, int rawMessage)
: base(pitchWheelChangeEvent, rawMessage) =>
Pitch = pitchWheelChangeEvent.Pitch;
public PitchWheelChangeMessage(long absoluteTime, int channelNumber, int pitch)
{
@ -20,5 +18,7 @@ namespace Lib.Midi.Messages
ChannelNumber = channelNumber;
RawMessage = pitchWheelChangeEvent.GetAsShortMessage();
}
public int Pitch { get; }
}
}
Loading…
Cancel
Save