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
ChannelsDictionary<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.
- Clear - all MIDI messages for this channel, such as Note On are removed.
- Key: the MIDI channel number.
DrumSetupParamsMidiEditor.Parameter<object>The drum parameter changes.
- Clear - all existing drum change MIDI messages are removed.
- Null - not yet implemented.
- Clear - all existing drum change MIDI messages are removed.
MidiParamsDictionary<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.
ReverbParamsMidiEditor.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.
- Clear - all existing parameter change MIDI messages are removed.
ChorusParamsMidiEditor.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.
- Clear - all existing parameter change MIDI messages are cleared.
DelayParamsMidiEditor.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.
- Clear - all existing parameter change MIDI messages are cleared.
InsertionParamsMidiEditor.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.
- Clear - all existing parameter change MIDI messages are cleared.
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.
- Clear - all MIDI messages for this channel, such as Note On are removed.
public Dictionary<int, MidiEditor.Parameter<MidiEditor.ChannelModification>>? Channels { get; init; }
Property Value
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
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
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
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
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
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; }