Skip to main content

Program

Struct Program 

Source
pub struct Program {
Show 94 fields pub version_echo: u8, pub split_enabled: bool, pub kb_zones_1_2_split_point_enabled: bool, pub kb_zones_2_3_split_point_enabled: bool, pub kb_zones_3_4_split_point_enabled: bool, pub kb_zones_1_2_split_point: Selector<4>, pub kb_zones_2_3_split_point: Selector<4>, pub kb_zones_3_4_split_point: Selector<4>, pub kb_zones_1_2_split_point_xfade: Selector<2>, pub kb_zones_2_3_split_point_xfade: Selector<2>, pub kb_zones_3_4_split_point_xfade: Selector<2>, pub program_transpose_enabled: bool, pub program_transpose_amount: RangedU8<15>, pub fx_comp_global_enabled: bool, pub fx_delay_global_enabled: bool, pub fx_reverb_global_enabled: bool, pub organ_section_enabled: bool, pub piano_section_enabled: bool, pub synth_section_enabled: bool, pub organ_section_enabled_scene_2: bool, pub piano_section_enabled_scene_2: bool, pub synth_section_enabled_scene_2: bool, pub active_layer_scene: bool, pub fx_enabled: bool, pub organ_b_layer_enabled: bool, pub organ_a_layer_enabled: bool, pub organ_b_layer_enabled_scene_2: bool, pub organ_a_layer_enabled_scene_2: bool, pub organ_a_volume: Level, pub organ_a_volume_wheel: MorphTarget, pub organ_a_volume_aftertouch: MorphTarget, pub organ_a_volume_ctrl_pedal: MorphTarget, pub organ_b_volume: Level, pub organ_b_volume_wheel: MorphTarget, pub organ_b_volume_aftertouch: MorphTarget, pub organ_b_volume_ctrl_pedal: MorphTarget, pub organ_pitch_stick_enabled: bool, pub organ_rotary_speaker_enabled: bool, pub rotary_speaker_drive: Level, pub rotary_speaker_stop_position: Selector<3>, pub rotary_speaker_stop_enabled: bool, pub rotary_speaker_slow_fast: RotorSpeed, pub organ_vib_chorus_type: Level, pub piano_b_layer_enabled: bool, pub piano_a_layer_enabled: bool, pub piano_b_layer_enabled_scene_2: bool, pub piano_a_layer_enabled_scene_2: bool, pub piano_a_volume: Level, pub piano_a_volume_wheel: MorphTarget, pub piano_a_volume_aftertouch: MorphTarget, pub piano_a_volume_ctrl_pedal: MorphTarget, pub piano_b_volume: Level, pub piano_b_volume_wheel: MorphTarget, pub piano_b_volume_aftertouch: MorphTarget, pub piano_b_volume_ctrl_pedal: MorphTarget, pub synth_c_layer_enabled: bool, pub synth_b_layer_enabled: bool, pub synth_a_layer_enabled: bool, pub synth_c_layer_enabled_scene_2: bool, pub synth_b_layer_enabled_scene_2: bool, pub synth_a_layer_enabled_scene_2: bool, pub synth_a_volume: Level, pub synth_a_volume_wheel: MorphTarget, pub synth_a_volume_aftertouch: MorphTarget, pub synth_a_volume_ctrl_pedal: MorphTarget, pub synth_b_volume: Level, pub synth_b_volume_wheel: MorphTarget, pub synth_b_volume_aftertouch: MorphTarget, pub synth_b_volume_ctrl_pedal: MorphTarget, pub synth_c_volume: Level, pub synth_c_volume_wheel: MorphTarget, pub synth_c_volume_aftertouch: MorphTarget, pub synth_c_volume_ctrl_pedal: MorphTarget, pub synth_a_pan: Pan, pub synth_b_pan: Pan, pub synth_c_pan: Pan, pub synth_arp_group_enabled: bool, pub synth_kb_hold_enabled: bool, pub organ_a: OrganLayer, pub organ_b: OrganLayer, pub organ_fx: FxChain, pub piano_a: PianoLayer, pub piano_b: PianoLayer, pub piano_a_fx: FxChain, pub piano_b_fx: FxChain, pub synth_a_performance: SynthPerformance, pub synth_b_performance: SynthPerformance, pub synth_c_performance: SynthPerformance, pub synth_a_voice: SynthVoice, pub synth_b_voice: SynthVoice, pub synth_c_voice: SynthVoice, pub synth_a_fx: FxChain, pub synth_b_fx: FxChain, pub synth_c_fx: FxChain, /* private fields */
}
Expand description

The 824-byte program body: all three sections and the globals that route them.

Reads and writes byte-exactly. A read verifies the container checksum, gates on KNOWN_VERSIONS, and range-checks every field; unclaimed bits survive a re-encode verbatim. Placements derived from ns4decode’s published tables; values raw. Inferred from specimens; not confirmed on hardware.

Unclaimed bits, kept verbatim through a re-encode: 0..=23, 32..=39, 67..=78, 82..=315, 323..=346, 348..=400, 403, 469..=471, 473..=483, 491..=507, 511..=513, 516..=521, 529..=543, 776..=791, 1024..=1039, 1456..=1480, 1483, 1548..=1583, 1656..=1679, 1752..=1775, 2192..=2215, 2632..=2657, 2661..=2662, 2765..=2789, 2796..=2820, 2827..=2852, 2854, 2856..=2903, 3280..=3311, 3688..=3719, 4096..=4127, 4480..=4511, 4864..=4895, 5248..=5279, 5696..=5719, 6136..=6159, 6576..=6591.

The body’s map, in offset order:

bytesbitsfieldtype
0x00..0x030..=23unclaimed
0x0324..=31version_echou8
0x0432..=39unclaimed
0x05 bit 740..=40split_enabledbool
0x05 bit 641..=41kb_zones_1_2_split_point_enabledbool
0x05 bit 542..=42kb_zones_2_3_split_point_enabledbool
0x05 bit 443..=43kb_zones_3_4_split_point_enabledbool
0x05 bits 3..044..=47kb_zones_1_2_split_pointSelector<4>
0x06 bits 7..448..=51kb_zones_2_3_split_pointSelector<4>
0x06 bits 3..052..=55kb_zones_3_4_split_pointSelector<4>
0x07 bits 7..656..=57kb_zones_1_2_split_point_xfadeSelector<2>
0x07 bits 5..458..=59kb_zones_2_3_split_point_xfadeSelector<2>
0x07 bits 3..260..=61kb_zones_3_4_split_point_xfadeSelector<2>
0x07 bit 162..=62program_transpose_enabledbool
0x07 bit 0; 0x08 bits 7..563..=66program_transpose_amountRangedU8<15>
0x08 bits 4..0; 0x09 bits 7..167..=78unclaimed
0x09 bit 079..=79fx_comp_global_enabledbool
0x0a bit 780..=80fx_delay_global_enabledbool
0x0a bit 681..=81fx_reverb_global_enabledbool
0x0a bits 5..0; 0x0b bits 7..0; 0x0c bits 7..0; 0x0d bits 7..0; 0x0e bits 7..0; 0x0f bits 7..0; 0x10 bits 7..0; 0x11 bits 7..0; 0x12 bits 7..0; 0x13 bits 7..0; 0x14 bits 7..0; 0x15 bits 7..0; 0x16 bits 7..0; 0x17 bits 7..0; 0x18 bits 7..0; 0x19 bits 7..0; 0x1a bits 7..0; 0x1b bits 7..0; 0x1c bits 7..0; 0x1d bits 7..0; 0x1e bits 7..0; 0x1f bits 7..0; 0x20 bits 7..0; 0x21 bits 7..0; 0x22 bits 7..0; 0x23 bits 7..0; 0x24 bits 7..0; 0x25 bits 7..0; 0x26 bits 7..0; 0x27 bits 7..482..=315unclaimed
0x27 bit 3316..=316organ_section_enabledbool
0x27 bit 2317..=317piano_section_enabledbool
0x27 bit 1318..=318synth_section_enabledbool
0x27 bit 0319..=319organ_section_enabled_scene_2bool
0x28 bit 7320..=320piano_section_enabled_scene_2bool
0x28 bit 6321..=321synth_section_enabled_scene_2bool
0x28 bit 5322..=322active_layer_scenebool
0x28 bits 4..0; 0x29 bits 7..0; 0x2a bits 7..0; 0x2b bits 7..5323..=346unclaimed
0x2b bit 4347..=347fx_enabledbool
0x2b bits 3..0; 0x2c bits 7..0; 0x2d bits 7..0; 0x2e bits 7..0; 0x2f bits 7..0; 0x30 bits 7..0; 0x31 bits 7..0; 0x32 bit 7348..=400unclaimed
0x32 bit 6401..=401organ_b_layer_enabledbool
0x32 bit 5402..=402organ_a_layer_enabledbool
0x32 bit 4403..=403unclaimed
0x32 bit 3404..=404organ_b_layer_enabled_scene_2bool
0x32 bit 2405..=405organ_a_layer_enabled_scene_2bool
0x32 bits 1..0; 0x33 bits 7..3406..=412organ_a_volumeLevel
0x33 bits 2..0; 0x34 bits 7..3413..=420organ_a_volume_wheelMorphTarget
0x34 bits 2..0; 0x35 bits 7..3421..=428organ_a_volume_aftertouchMorphTarget
0x35 bits 2..0; 0x36 bits 7..3429..=436organ_a_volume_ctrl_pedalMorphTarget
0x36 bits 2..0; 0x37 bits 7..4437..=443organ_b_volumeLevel
0x37 bits 3..0; 0x38 bits 7..4444..=451organ_b_volume_wheelMorphTarget
0x38 bits 3..0; 0x39 bits 7..4452..=459organ_b_volume_aftertouchMorphTarget
0x39 bits 3..0; 0x3a bits 7..4460..=467organ_b_volume_ctrl_pedalMorphTarget
0x3a bit 3468..=468organ_pitch_stick_enabledbool
0x3a bits 2..0469..=471unclaimed
0x3b bit 7472..=472organ_rotary_speaker_enabledbool
0x3b bits 6..0; 0x3c bits 7..4473..=483unclaimed
0x3c bits 3..0; 0x3d bits 7..5484..=490rotary_speaker_driveLevel
0x3d bits 4..0; 0x3e bits 7..0; 0x3f bits 7..4491..=507unclaimed
0x3f bits 3..1508..=510rotary_speaker_stop_positionSelector<3>
0x3f bit 0; 0x40 bits 7..6511..=513unclaimed
0x40 bit 5514..=514rotary_speaker_stop_enabledbool
0x40 bit 4515..=515rotary_speaker_slow_fastRotorSpeed
0x40 bits 3..0; 0x41 bits 7..6516..=521unclaimed
0x41 bits 5..0; 0x42 bit 7522..=528organ_vib_chorus_typeLevel
0x42 bits 6..0; 0x43 bits 7..0529..=543unclaimed
0x44..0x61544..=775organ_aOrganLayer
0x61..0x63776..=791unclaimed
0x63..0x80792..=1023organ_bOrganLayer
0x80..0x821024..=1039unclaimed
0x82..0xb61040..=1455organ_fxFxChain
0xb6 bits 7..0; 0xb7 bits 7..0; 0xb8 bits 7..0; 0xb9 bit 71456..=1480unclaimed
0xb9 bit 61481..=1481piano_b_layer_enabledbool
0xb9 bit 51482..=1482piano_a_layer_enabledbool
0xb9 bit 41483..=1483unclaimed
0xb9 bit 31484..=1484piano_b_layer_enabled_scene_2bool
0xb9 bit 21485..=1485piano_a_layer_enabled_scene_2bool
0xb9 bits 1..0; 0xba bits 7..31486..=1492piano_a_volumeLevel
0xba bits 2..0; 0xbb bits 7..31493..=1500piano_a_volume_wheelMorphTarget
0xbb bits 2..0; 0xbc bits 7..31501..=1508piano_a_volume_aftertouchMorphTarget
0xbc bits 2..0; 0xbd bits 7..31509..=1516piano_a_volume_ctrl_pedalMorphTarget
0xbd bits 2..0; 0xbe bits 7..41517..=1523piano_b_volumeLevel
0xbe bits 3..0; 0xbf bits 7..41524..=1531piano_b_volume_wheelMorphTarget
0xbf bits 3..0; 0xc0 bits 7..41532..=1539piano_b_volume_aftertouchMorphTarget
0xc0 bits 3..0; 0xc1 bits 7..41540..=1547piano_b_volume_ctrl_pedalMorphTarget
0xc1 bits 3..0; 0xc2 bits 7..0; 0xc3 bits 7..0; 0xc4 bits 7..0; 0xc5 bits 7..01548..=1583unclaimed
0xc6..0xcf1584..=1655piano_aPianoLayer
0xcf..0xd21656..=1679unclaimed
0xd2..0xdb1680..=1751piano_bPianoLayer
0xdb..0xde1752..=1775unclaimed
0xde..0x1121776..=2191piano_a_fxFxChain
0x112..0x1152192..=2215unclaimed
0x115..0x1492216..=2631piano_b_fxFxChain
0x149 bits 7..0; 0x14a bits 7..0; 0x14b bits 7..0; 0x14c bits 7..62632..=2657unclaimed
0x14c bit 52658..=2658synth_c_layer_enabledbool
0x14c bit 42659..=2659synth_b_layer_enabledbool
0x14c bit 32660..=2660synth_a_layer_enabledbool
0x14c bits 2..12661..=2662unclaimed
0x14c bit 02663..=2663synth_c_layer_enabled_scene_2bool
0x14d bit 72664..=2664synth_b_layer_enabled_scene_2bool
0x14d bit 62665..=2665synth_a_layer_enabled_scene_2bool
0x14d bits 5..0; 0x14e bit 72666..=2672synth_a_volumeLevel
0x14e bits 6..0; 0x14f bit 72673..=2680synth_a_volume_wheelMorphTarget
0x14f bits 6..0; 0x150 bit 72681..=2688synth_a_volume_aftertouchMorphTarget
0x150 bits 6..0; 0x151 bit 72689..=2696synth_a_volume_ctrl_pedalMorphTarget
0x151 bits 6..02697..=2703synth_b_volumeLevel
0x1522704..=2711synth_b_volume_wheelMorphTarget
0x1532712..=2719synth_b_volume_aftertouchMorphTarget
0x1542720..=2727synth_b_volume_ctrl_pedalMorphTarget
0x155 bits 7..12728..=2734synth_c_volumeLevel
0x155 bit 0; 0x156 bits 7..12735..=2742synth_c_volume_wheelMorphTarget
0x156 bit 0; 0x157 bits 7..12743..=2750synth_c_volume_aftertouchMorphTarget
0x157 bit 0; 0x158 bits 7..12751..=2758synth_c_volume_ctrl_pedalMorphTarget
0x158 bit 0; 0x159 bits 7..32759..=2764synth_a_panPan
0x159 bits 2..0; 0x15a bits 7..0; 0x15b bits 7..0; 0x15c bits 7..22765..=2789unclaimed
0x15c bits 1..0; 0x15d bits 7..42790..=2795synth_b_panPan
0x15d bits 3..0; 0x15e bits 7..0; 0x15f bits 7..0; 0x160 bits 7..32796..=2820unclaimed
0x160 bits 2..0; 0x161 bits 7..52821..=2826synth_c_panPan
0x161 bits 4..0; 0x162 bits 7..0; 0x163 bits 7..0; 0x164 bits 7..32827..=2852unclaimed
0x164 bit 22853..=2853synth_arp_group_enabledbool
0x164 bit 12854..=2854unclaimed
0x164 bit 02855..=2855synth_kb_hold_enabledbool
0x165..0x16b2856..=2903unclaimed
0x16b..0x19a2904..=3279synth_a_performanceSynthPerformance
0x19a..0x19e3280..=3311unclaimed
0x19e..0x1cd3312..=3687synth_b_performanceSynthPerformance
0x1cd..0x1d13688..=3719unclaimed
0x1d1..0x2003720..=4095synth_c_performanceSynthPerformance
0x200..0x2044096..=4127unclaimed
0x204..0x2304128..=4479synth_a_voiceSynthVoice
0x230..0x2344480..=4511unclaimed
0x234..0x2604512..=4863synth_b_voiceSynthVoice
0x260..0x2644864..=4895unclaimed
0x264..0x2904896..=5247synth_c_voiceSynthVoice
0x290..0x2945248..=5279unclaimed
0x294..0x2c85280..=5695synth_a_fxFxChain
0x2c8..0x2cb5696..=5719unclaimed
0x2cb..0x2ff5720..=6135synth_b_fxFxChain
0x2ff..0x3026136..=6159unclaimed
0x302..0x3366160..=6575synth_c_fxFxChain
0x336..0x3386576..=6591unclaimed

Fields§

§version_echo: u8

Bits 24..=31 (byte 0x03, bits 7..0).

§split_enabled: bool

Bits 40..=40 (byte 0x05, bit 7).

§kb_zones_1_2_split_point_enabled: bool

Bits 41..=41 (byte 0x05, bit 6).

§kb_zones_2_3_split_point_enabled: bool

Bits 42..=42 (byte 0x05, bit 5).

§kb_zones_3_4_split_point_enabled: bool

Bits 43..=43 (byte 0x05, bit 4).

§kb_zones_1_2_split_point: Selector<4>

Bits 44..=47 (byte 0x05, bits 3..0).

§kb_zones_2_3_split_point: Selector<4>

Bits 48..=51 (byte 0x06, bits 7..4).

§kb_zones_3_4_split_point: Selector<4>

Bits 52..=55 (byte 0x06, bits 3..0).

§kb_zones_1_2_split_point_xfade: Selector<2>

Bits 56..=57 (byte 0x07, bits 7..6).

§kb_zones_2_3_split_point_xfade: Selector<2>

Bits 58..=59 (byte 0x07, bits 5..4).

§kb_zones_3_4_split_point_xfade: Selector<2>

Bits 60..=61 (byte 0x07, bits 3..2).

§program_transpose_enabled: bool

Bits 62..=62 (byte 0x07, bit 1).

§program_transpose_amount: RangedU8<15>

Bits 63..=66 (byte 0x07, bit 0; byte 0x08, bits 7..5).

§fx_comp_global_enabled: bool

Bits 79..=79 (byte 0x09, bit 0).

§fx_delay_global_enabled: bool

Bits 80..=80 (byte 0x0a, bit 7).

§fx_reverb_global_enabled: bool

Bits 81..=81 (byte 0x0a, bit 6).

§organ_section_enabled: bool

Bits 316..=316 (byte 0x27, bit 3).

§piano_section_enabled: bool

Bits 317..=317 (byte 0x27, bit 2).

§synth_section_enabled: bool

Bits 318..=318 (byte 0x27, bit 1).

§organ_section_enabled_scene_2: bool

Bits 319..=319 (byte 0x27, bit 0).

§piano_section_enabled_scene_2: bool

Bits 320..=320 (byte 0x28, bit 7).

§synth_section_enabled_scene_2: bool

Bits 321..=321 (byte 0x28, bit 6).

§active_layer_scene: bool

Bits 322..=322 (byte 0x28, bit 5).

§fx_enabled: bool

Bits 347..=347 (byte 0x2b, bit 4).

§organ_b_layer_enabled: bool

Bits 401..=401 (byte 0x32, bit 6).

§organ_a_layer_enabled: bool

Bits 402..=402 (byte 0x32, bit 5).

§organ_b_layer_enabled_scene_2: bool

Bits 404..=404 (byte 0x32, bit 3).

§organ_a_layer_enabled_scene_2: bool

Bits 405..=405 (byte 0x32, bit 2).

§organ_a_volume: Level

Bits 406..=412 (byte 0x32, bits 1..0; byte 0x33, bits 7..3).

§organ_a_volume_wheel: MorphTarget

Bits 413..=420 (byte 0x33, bits 2..0; byte 0x34, bits 7..3).

§organ_a_volume_aftertouch: MorphTarget

Bits 421..=428 (byte 0x34, bits 2..0; byte 0x35, bits 7..3).

§organ_a_volume_ctrl_pedal: MorphTarget

Bits 429..=436 (byte 0x35, bits 2..0; byte 0x36, bits 7..3).

§organ_b_volume: Level

Bits 437..=443 (byte 0x36, bits 2..0; byte 0x37, bits 7..4).

§organ_b_volume_wheel: MorphTarget

Bits 444..=451 (byte 0x37, bits 3..0; byte 0x38, bits 7..4).

§organ_b_volume_aftertouch: MorphTarget

Bits 452..=459 (byte 0x38, bits 3..0; byte 0x39, bits 7..4).

§organ_b_volume_ctrl_pedal: MorphTarget

Bits 460..=467 (byte 0x39, bits 3..0; byte 0x3a, bits 7..4).

§organ_pitch_stick_enabled: bool

Bits 468..=468 (byte 0x3a, bit 3).

§organ_rotary_speaker_enabled: bool

Bits 472..=472 (byte 0x3b, bit 7).

§rotary_speaker_drive: Level

Bits 484..=490 (byte 0x3c, bits 3..0; byte 0x3d, bits 7..5).

§rotary_speaker_stop_position: Selector<3>

Bits 508..=510 (byte 0x3f, bits 3..1).

§rotary_speaker_stop_enabled: bool

Bits 514..=514 (byte 0x40, bit 5).

§rotary_speaker_slow_fast: RotorSpeed

Bits 515..=515 (byte 0x40, bit 4).

§organ_vib_chorus_type: Level

⚠️ Seven bits and knob-spaced values in the corpus (0, 21, 42, 59, 75, 89, 91), not a six-way index — what maps them onto the panel’s C1–V3 is open.

Bits 522..=528 (byte 0x41, bits 5..0; byte 0x42, bit 7).

§piano_b_layer_enabled: bool

Bits 1481..=1481 (byte 0xb9, bit 6).

§piano_a_layer_enabled: bool

Bits 1482..=1482 (byte 0xb9, bit 5).

§piano_b_layer_enabled_scene_2: bool

Bits 1484..=1484 (byte 0xb9, bit 3).

§piano_a_layer_enabled_scene_2: bool

Bits 1485..=1485 (byte 0xb9, bit 2).

§piano_a_volume: Level

Bits 1486..=1492 (byte 0xb9, bits 1..0; byte 0xba, bits 7..3).

§piano_a_volume_wheel: MorphTarget

Bits 1493..=1500 (byte 0xba, bits 2..0; byte 0xbb, bits 7..3).

§piano_a_volume_aftertouch: MorphTarget

Bits 1501..=1508 (byte 0xbb, bits 2..0; byte 0xbc, bits 7..3).

§piano_a_volume_ctrl_pedal: MorphTarget

Bits 1509..=1516 (byte 0xbc, bits 2..0; byte 0xbd, bits 7..3).

§piano_b_volume: Level

Bits 1517..=1523 (byte 0xbd, bits 2..0; byte 0xbe, bits 7..4).

§piano_b_volume_wheel: MorphTarget

Bits 1524..=1531 (byte 0xbe, bits 3..0; byte 0xbf, bits 7..4).

§piano_b_volume_aftertouch: MorphTarget

Bits 1532..=1539 (byte 0xbf, bits 3..0; byte 0xc0, bits 7..4).

§piano_b_volume_ctrl_pedal: MorphTarget

Bits 1540..=1547 (byte 0xc0, bits 3..0; byte 0xc1, bits 7..4).

§synth_c_layer_enabled: bool

Bits 2658..=2658 (byte 0x14c, bit 5).

§synth_b_layer_enabled: bool

Bits 2659..=2659 (byte 0x14c, bit 4).

§synth_a_layer_enabled: bool

Bits 2660..=2660 (byte 0x14c, bit 3).

§synth_c_layer_enabled_scene_2: bool

Bits 2663..=2663 (byte 0x14c, bit 0).

§synth_b_layer_enabled_scene_2: bool

Bits 2664..=2664 (byte 0x14d, bit 7).

§synth_a_layer_enabled_scene_2: bool

Bits 2665..=2665 (byte 0x14d, bit 6).

§synth_a_volume: Level

Bits 2666..=2672 (byte 0x14d, bits 5..0; byte 0x14e, bit 7).

§synth_a_volume_wheel: MorphTarget

Bits 2673..=2680 (byte 0x14e, bits 6..0; byte 0x14f, bit 7).

§synth_a_volume_aftertouch: MorphTarget

Bits 2681..=2688 (byte 0x14f, bits 6..0; byte 0x150, bit 7).

§synth_a_volume_ctrl_pedal: MorphTarget

Bits 2689..=2696 (byte 0x150, bits 6..0; byte 0x151, bit 7).

§synth_b_volume: Level

Bits 2697..=2703 (byte 0x151, bits 6..0).

§synth_b_volume_wheel: MorphTarget

Bits 2704..=2711 (byte 0x152, bits 7..0).

§synth_b_volume_aftertouch: MorphTarget

Bits 2712..=2719 (byte 0x153, bits 7..0).

§synth_b_volume_ctrl_pedal: MorphTarget

Bits 2720..=2727 (byte 0x154, bits 7..0).

§synth_c_volume: Level

Bits 2728..=2734 (byte 0x155, bits 7..1).

§synth_c_volume_wheel: MorphTarget

Bits 2735..=2742 (byte 0x155, bit 0; byte 0x156, bits 7..1).

§synth_c_volume_aftertouch: MorphTarget

Bits 2743..=2750 (byte 0x156, bit 0; byte 0x157, bits 7..1).

§synth_c_volume_ctrl_pedal: MorphTarget

Bits 2751..=2758 (byte 0x157, bit 0; byte 0x158, bits 7..1).

§synth_a_pan: Pan

Bits 2759..=2764 (byte 0x158, bit 0; byte 0x159, bits 7..3).

§synth_b_pan: Pan

Bits 2790..=2795 (byte 0x15c, bits 1..0; byte 0x15d, bits 7..4).

§synth_c_pan: Pan

Bits 2821..=2826 (byte 0x160, bits 2..0; byte 0x161, bits 7..5).

§synth_arp_group_enabled: bool

Bits 2853..=2853 (byte 0x164, bit 2).

§synth_kb_hold_enabled: bool

Bits 2855..=2855 (byte 0x164, bit 0).

§organ_a: OrganLayer

Bytes 0x44..0x61.

§organ_b: OrganLayer

Bytes 0x63..0x80.

§organ_fx: FxChain

Bytes 0x82..0xb6.

§piano_a: PianoLayer

Bytes 0xc6..0xcf.

§piano_b: PianoLayer

Bytes 0xd2..0xdb.

§piano_a_fx: FxChain

Bytes 0xde..0x112.

§piano_b_fx: FxChain

Bytes 0x115..0x149.

§synth_a_performance: SynthPerformance

Bytes 0x16b..0x19a.

§synth_b_performance: SynthPerformance

Bytes 0x19e..0x1cd.

§synth_c_performance: SynthPerformance

Bytes 0x1d1..0x200.

§synth_a_voice: SynthVoice

Bytes 0x204..0x230.

§synth_b_voice: SynthVoice

Bytes 0x234..0x260.

§synth_c_voice: SynthVoice

Bytes 0x264..0x290.

§synth_a_fx: FxChain

Bytes 0x294..0x2c8.

§synth_b_fx: FxChain

Bytes 0x2cb..0x2ff.

§synth_c_fx: FxChain

Bytes 0x302..0x336.

Implementations§

Source§

impl Program

Source

pub fn field_values(&self) -> Vec<FieldValue>

Every registered field’s current value, under its full path, in declaration order — nested bodies inline where their field sits. Describes the same fields as Self::field_specs, so callers may zip the two positionally.

Source

pub fn field_specs() -> Vec<FieldSpec>

Source

pub fn fields(&self) -> Vec<Field>

Every settable field, described under its full path.

Source

pub fn set_field(&mut self, path: &str, value: &str) -> Result<(), FieldError>

Set one field by its full path.

Trait Implementations§

Source§

impl Body for Program

Source§

const LEN: Option<u64>

Fixed body length, when the format has one; checked on read and write.
Source§

fn read<R: Read + Seek>( r: &mut BodyReader<'_, R>, _: &Header, ) -> Result<Self, Error>

Decode from r, which is scoped to the body: position 0 is the first body byte and BodyReader::len is known. header is for version gating and location/aux interpretation, not for layout — the container already consumed the header bytes.
Source§

fn write<W: Write + Seek>(&self, w: &mut BodyWriter<'_, W>) -> Result<(), Error>

Encode to w in one forward pass.
Source§

impl BodyLayout for Program

Source§

fn layout() -> &'static [LayoutField]

Every placed field, in declaration order. Bits no field claims are preserved by the codec but have no entry here — there is no name to report them under.
Source§

impl Debug for Program

The decoded values; the backing bytes are not printed.

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<&Program> for [u8; 824]

Source§

fn from(p: &Program) -> Self

Converts to this type from the input type.
Source§

impl TryFrom<[u8; 824]> for Program

Source§

type Error = ParseError

The type returned in the event of a conversion error.
Source§

fn try_from(raw: [u8; 824]) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.