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

Midi

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

track Track

The track to use.

ticks int

The tick time of the event (absolute).

sb StatusByte

MIDI Status byte.

eventData ArraySegment<byte>

The raw event data.

AddTrack(string, int)

Adds a new MIDI track.

public void AddTrack(string name, int port = 0)

Parameters

name string

The new track's name.

port int

The new track's port.

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

track Track

The track to use.

ticks int

The tick time of the event.

channel int

The channel to use.

controller int

The MIDI CC to use.

value int

The new CC value.

New(Options?)

public static MidiBuilder New(MidiBuilder.Options? options = null)

Parameters

options MidiBuilder.Options?

Returns

MidiBuilder

NonRegisteredParameter(Track, int, int, int, int)

public void NonRegisteredParameter(Track track, int ticks, int channel, int parameter, int value)

Parameters

track Track
ticks int
channel int
parameter int
value int

NonRegisteredParameter(int, int, int, int, int)

public void NonRegisteredParameter(int ticks, int track, int channel, int parameter, int value)

Parameters

ticks int
track int
channel int
parameter int
value int

NoteOff(Track, int, int, int, int)

public void NoteOff(Track track, int ticks, int channel, int midiNote, int velocity = 64)

Parameters

track Track
ticks int
channel int
midiNote int
velocity int

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

ticks int

The tick time of the event.

track int

The track number to use.

channel int

The channel to use.

midiNote int

The midi note of the key release.

velocity int

Optional and unsupported by SpessaSynth.

NoteOn(Track, int, int, int, int)

public void NoteOn(Track track, int ticks, int channel, int midiNote, int velocity)

Parameters

track Track
ticks int
channel int
midiNote int
velocity int

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

ticks int

The tick time of the event.

track int

The track number to use.

channel int

The channel to use.

midiNote int

The midi note of the keypress.

velocity int

The velocity of the keypress.

OfTrack(Track)

public MidiBuilder.TrackBuilder OfTrack(Track track)

Parameters

track Track

Returns

MidiBuilder.TrackBuilder

OfTrack(int)

public MidiBuilder.TrackBuilder OfTrack(int track)

Parameters

track int

Returns

MidiBuilder.TrackBuilder

PitchWheel(Track, int, int, int)

Adds a new Pitch Wheel event.

public void PitchWheel(Track track, int ticks, int channel, int pitch)

Parameters

track Track

The track to use.

ticks int

The tick time of the event.

channel int

The channel to use.

pitch int

The 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

track Track

The track to use.

ticks int

The tick time of the event.

channel int

The channel to use.

program int

The 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

track Track

The track to use.

ticks int

Ticks the tick time of the events.

channel int

The channel to use.

parameter int

The 14-bit registered parameter number. For example 0 is pitch wheel range.

value int

The 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

ticks int

Ticks the tick time of the events.

track int

The track to use.

channel int

The channel to use.

parameter int

The 14-bit registered parameter number. For example 0 is pitch wheel range.

value int

The 14-bit value for this parameter.

SetLoopEnd(Track, int)

public void SetLoopEnd(Track track, int ticks)

Parameters

track Track
ticks int

SetLoopEnd(int, int)

public void SetLoopEnd(int track, int ticks)

Parameters

track int
ticks int

SetLoopStart(Track, int)

public void SetLoopStart(Track track, int ticks)

Parameters

track Track
ticks int

SetLoopStart(int, int)

public void SetLoopStart(int track, int ticks)

Parameters

track int
ticks int

SetTempo(int, int)

Adds a new Set Tempo event.

public void SetTempo(int ticks, int tempo)

Parameters

ticks int

The tick number of the event.

tempo int

The tempo in beats per minute (BPM).