The top-level object that defines a synth editor. It includes all of the data and logic for reading and writing the various patches and banks, communicating changes to the synth via MIDI, and any extra logic needed for enhanced behavior within the editor UI (but not the code for the UI itself, which is part of the SynthModule).
{
name: String,
trussMap: [SynthPath:SomeSysexTruss],
fetchTransforms: [SynthPath:FetchTransform],
midiOuts: [SynthPath:MidiTransform],
midiChannels: [SynthPath:MidiChannelTransform],
slotTransforms?: [SynthPath:MemSlot.Transform],
extraParamOuts?: [SynthPath:ParamOutTransform]
}{
name: String,
trussMap: [[SynthPath, SysexTruss]],
fetchTransforms: [[SynthPath, FetchTransform]],
midiOuts: [[SynthPath, MidiTransform]],
midiChannels: [[SynthPath, MidiChannelTransform]],
slotTransforms: [[SynthPath, MemSlot.Transform]]?,
extraParamOuts: [[SynthPath, ParamOutTransform]]?,
}{
rolandModelId: [UInt8],
addressCount: Int,
name: String,
map: [RolandMultiSysexTrussWerk.MapItem],
deviceId?: EditorValueTransform,
midiChannels: [SynthPath:MidiChannelTransform],
slotTransforms: [SynthPath:MemSlot.Transform],
extraParamOuts?: [SynthPath:ParamOutTransform]
}{
rolandModelId: [Byte],
addressCount: Int,
name: String,
map: [RolandEditorTrussWerk.MapItem],
deviceId: EditorValueTransform?,
midiChannels: [[SynthPath, MidiChannelTransform]],
slotTransforms: [[SynthPath, MemSlot.Transform]]?,
extraParamOuts: [ParamOutTransform]?,
}