Struct MidiBuilder
- Namespace
- SpessaSharp.MIDI.Utils
- Assembly
- SpessaSharp.dll
A class that helps to build a MIDI file from scratch.
public readonly record struct MidiBuilder : IEquatable<MidiBuilder>
- Implements
- Inherited Members
Properties
Midi
public Midi Midi { get; init; }
Property Value
Methods
AddEvent(Track, int, StatusByte, ArraySegment<byte>)
Adds a new MIDI Event.
public void AddEvent(Track track, int ticks, StatusByte sb, ArraySegment<byte> eventData)
Parameters
trackTrackThe track to use.
ticksintThe tick time of the event (absolute).
sbStatusByteMIDI Status byte.
eventDataArraySegment<byte>The raw event data.
AddTrack(string, int)
Adds a new MIDI track.
public void AddTrack(string name, int port = 0)
Parameters
Exceptions
- ArgumentException
MIDI with format 0
ControllerChange(Track, int, int, int, int)
Adds a new Controller Change event.
public void ControllerChange(Track track, int ticks, int channel, int controller, int value)
Parameters
trackTrackThe track to use.
ticksintThe tick time of the event.
channelintThe channel to use.
controllerintThe MIDI CC to use.
valueintThe new CC value.
New(Options?)
public static MidiBuilder New(MidiBuilder.Options? options = null)
Parameters
optionsMidiBuilder.Options?
Returns
NonRegisteredParameter(Track, int, int, int, int)
public void NonRegisteredParameter(Track track, int ticks, int channel, int parameter, int value)
Parameters
NonRegisteredParameter(int, int, int, int, int)
public void NonRegisteredParameter(int ticks, int track, int channel, int parameter, int value)
Parameters
NoteOff(Track, int, int, int, int)
public void NoteOff(Track track, int ticks, int channel, int midiNote, int velocity = 64)
Parameters
NoteOff(int, int, int, int, int)
Adds a new Note Off event.
public void NoteOff(int ticks, int track, int channel, int midiNote, int velocity = 64)
Parameters
ticksintThe tick time of the event.
trackintThe track number to use.
channelintThe channel to use.
midiNoteintThe midi note of the key release.
velocityintOptional and unsupported by SpessaSynth.
NoteOn(Track, int, int, int, int)
public void NoteOn(Track track, int ticks, int channel, int midiNote, int velocity)
Parameters
NoteOn(int, int, int, int, int)
Adds a new Note On event.
public void NoteOn(int ticks, int track, int channel, int midiNote, int velocity)
Parameters
ticksintThe tick time of the event.
trackintThe track number to use.
channelintThe channel to use.
midiNoteintThe midi note of the keypress.
velocityintThe velocity of the keypress.
OfTrack(Track)
public MidiBuilder.TrackBuilder OfTrack(Track track)
Parameters
trackTrack
Returns
OfTrack(int)
public MidiBuilder.TrackBuilder OfTrack(int track)
Parameters
trackint
Returns
PitchWheel(Track, int, int, int)
Adds a new Pitch Wheel event.
public void PitchWheel(Track track, int ticks, int channel, int pitch)
Parameters
trackTrackThe track to use.
ticksintThe tick time of the event.
channelintThe channel to use.
pitchintThe pitch (0 - 16383).
ProgramChange(Track, int, int, int)
Adds a new Program Change event.
public void ProgramChange(Track track, int ticks, int channel, int program)
Parameters
trackTrackThe track to use.
ticksintThe tick time of the event.
channelintThe channel to use.
programintThe MIDI program to use.
RegisteredParameter(Track, int, int, int, int)
Selects a new Registered Parameter Number.
public void RegisteredParameter(Track track, int ticks, int channel, int parameter, int value)
Parameters
trackTrackThe track to use.
ticksintTicks the tick time of the events.
channelintThe channel to use.
parameterintThe 14-bit registered parameter number. For example 0 is pitch wheel range.
valueintThe 14-bit value for this parameter.
RegisteredParameter(int, int, int, int, int)
Selects a new Registered Parameter Number.
public void RegisteredParameter(int ticks, int track, int channel, int parameter, int value)
Parameters
ticksintTicks the tick time of the events.
trackintThe track to use.
channelintThe channel to use.
parameterintThe 14-bit registered parameter number. For example 0 is pitch wheel range.
valueintThe 14-bit value for this parameter.
SetLoopEnd(Track, int)
public void SetLoopEnd(Track track, int ticks)
Parameters
SetLoopEnd(int, int)
public void SetLoopEnd(int track, int ticks)
Parameters
SetLoopStart(Track, int)
public void SetLoopStart(Track track, int ticks)
Parameters
SetLoopStart(int, int)
public void SetLoopStart(int track, int ticks)
Parameters
SetTempo(int, int)
Adds a new Set Tempo event.
public void SetTempo(int ticks, int tempo)