Struct MidiEditor.Options

Namespace
SpessaSharp.MIDI.Utils
Assembly
SpessaSharp.dll

Allows easy editing of the file by removing channels, changing programs, changing controllers and transposing channels. Note that this modifies the MIDI in-place.

public readonly record struct MidiEditor.Options : IEquatable<MidiEditor.Options>
Implements
Inherited Members

Constructors

Options(Dictionary<int, Parameter<ChannelModification>>?, Parameter<object>?, Dictionary<Type, Parameter<GlobalMidiParameter>>?, Parameter<ReverbProcessorSnapshot>?, Parameter<ChorusProcessorSnapshot>?, Parameter<DelayProcessorSnapshot>?, Parameter<InsertionProcessorSnapshot>?)

Allows easy editing of the file by removing channels, changing programs, changing controllers and transposing channels. Note that this modifies the MIDI in-place.

public Options(Dictionary<int, MidiEditor.Parameter<MidiEditor.ChannelModification>>? Channels, MidiEditor.Parameter<object>? DrumSetupParams, Dictionary<GlobalMidiParameter.Type, MidiEditor.Parameter<GlobalMidiParameter>>? MidiParams, MidiEditor.Parameter<Effect.ReverbProcessorSnapshot>? ReverbParams, MidiEditor.Parameter<Effect.ChorusProcessorSnapshot>? ChorusParams, MidiEditor.Parameter<Effect.DelayProcessorSnapshot>? DelayParams, MidiEditor.Parameter<Effect.InsertionProcessorSnapshot>? InsertionParams)

Parameters

Channels Dictionary<int, MidiEditor.Parameter<MidiEditor.ChannelModification>>

The channel changes.

  • Key: the MIDI channel number.
  • value:
    • Clear - all MIDI messages for this channel, such as Note On are removed.
    • ChannelModification - modifies the channel.
DrumSetupParams MidiEditor.Parameter<object>

The drum parameter changes.

  • Clear - all existing drum change MIDI messages are removed.
  • Null - not yet implemented.
MidiParams Dictionary<GlobalMidiParameter.Type, MidiEditor.Parameter<GlobalMidiParameter>>

The global MIDI parameter changes.

  • Key: the MIDI parameter name.
  • value:
    • Clear - all changes for this parameter are removed.
    • Specific value - clear + sets the new parameter at the start of the song, effectively locking them to the set value.

Please note that clear is not supported for the system parameter, as it may cause issues with the MIDI system detection and reset insertion.

ReverbParams MidiEditor.Parameter<Effect.ReverbProcessorSnapshot>

The desired GS reverb parameters.

  • Clear - all existing parameter change MIDI messages are removed.
  • ReverbProcessorSnapshot - clear + the new parameters are set via System Exclusive messages.
ChorusParams MidiEditor.Parameter<Effect.ChorusProcessorSnapshot>

The GS chorus parameters.

  • Clear - all existing parameter change MIDI messages are cleared.
  • ChorusProcessorSnapshot - clear + the new parameters are set via System Exclusive messages.
DelayParams MidiEditor.Parameter<Effect.DelayProcessorSnapshot>

The GS delay parameters.

  • Clear - all existing parameter change MIDI messages are cleared.
  • DelayProcessorSnapshot - clear + the new parameters are set via System Exclusive messages.
InsertionParams MidiEditor.Parameter<Effect.InsertionProcessorSnapshot>

The GS Insertion Effect parameters.

  • Clear - all existing parameter change MIDI messages are cleared.
  • InsertionProcessorSnapshot - clear + the new parameters are set via System Exclusive messages.

Properties

Channels

The channel changes.

  • Key: the MIDI channel number.
  • value:
    • Clear - all MIDI messages for this channel, such as Note On are removed.
    • ChannelModification - modifies the channel.
public Dictionary<int, MidiEditor.Parameter<MidiEditor.ChannelModification>>? Channels { get; init; }

Property Value

Dictionary<int, MidiEditor.Parameter<MidiEditor.ChannelModification>>

ChorusParams

The GS chorus parameters.

  • Clear - all existing parameter change MIDI messages are cleared.
  • ChorusProcessorSnapshot - clear + the new parameters are set via System Exclusive messages.
public MidiEditor.Parameter<Effect.ChorusProcessorSnapshot>? ChorusParams { get; init; }

Property Value

MidiEditor.Parameter<Effect.ChorusProcessorSnapshot>

DelayParams

The GS delay parameters.

  • Clear - all existing parameter change MIDI messages are cleared.
  • DelayProcessorSnapshot - clear + the new parameters are set via System Exclusive messages.
public MidiEditor.Parameter<Effect.DelayProcessorSnapshot>? DelayParams { get; init; }

Property Value

MidiEditor.Parameter<Effect.DelayProcessorSnapshot>

DrumSetupParams

The drum parameter changes.

  • Clear - all existing drum change MIDI messages are removed.
  • Null - not yet implemented.
public MidiEditor.Parameter<object>? DrumSetupParams { get; init; }

Property Value

MidiEditor.Parameter<object>

InsertionParams

The GS Insertion Effect parameters.

  • Clear - all existing parameter change MIDI messages are cleared.
  • InsertionProcessorSnapshot - clear + the new parameters are set via System Exclusive messages.
public MidiEditor.Parameter<Effect.InsertionProcessorSnapshot>? InsertionParams { get; init; }

Property Value

MidiEditor.Parameter<Effect.InsertionProcessorSnapshot>

MidiParams

The global MIDI parameter changes.

  • Key: the MIDI parameter name.
  • value:
    • Clear - all changes for this parameter are removed.
    • Specific value - clear + sets the new parameter at the start of the song, effectively locking them to the set value.

Please note that clear is not supported for the system parameter, as it may cause issues with the MIDI system detection and reset insertion.

public Dictionary<GlobalMidiParameter.Type, MidiEditor.Parameter<GlobalMidiParameter>>? MidiParams { get; init; }

Property Value

Dictionary<GlobalMidiParameter.Type, MidiEditor.Parameter<GlobalMidiParameter>>

ReverbParams

The desired GS reverb parameters.

  • Clear - all existing parameter change MIDI messages are removed.
  • ReverbProcessorSnapshot - clear + the new parameters are set via System Exclusive messages.
public MidiEditor.Parameter<Effect.ReverbProcessorSnapshot>? ReverbParams { get; init; }

Property Value

MidiEditor.Parameter<Effect.ReverbProcessorSnapshot>