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:
| bytes | bits | field | type |
|---|---|---|---|
0x00..0x03 | 0..=23 | — | unclaimed |
0x03 | 24..=31 | version_echo | u8 |
0x04 | 32..=39 | — | unclaimed |
0x05 bit 7 | 40..=40 | split_enabled | bool |
0x05 bit 6 | 41..=41 | kb_zones_1_2_split_point_enabled | bool |
0x05 bit 5 | 42..=42 | kb_zones_2_3_split_point_enabled | bool |
0x05 bit 4 | 43..=43 | kb_zones_3_4_split_point_enabled | bool |
0x05 bits 3..0 | 44..=47 | kb_zones_1_2_split_point | Selector<4> |
0x06 bits 7..4 | 48..=51 | kb_zones_2_3_split_point | Selector<4> |
0x06 bits 3..0 | 52..=55 | kb_zones_3_4_split_point | Selector<4> |
0x07 bits 7..6 | 56..=57 | kb_zones_1_2_split_point_xfade | Selector<2> |
0x07 bits 5..4 | 58..=59 | kb_zones_2_3_split_point_xfade | Selector<2> |
0x07 bits 3..2 | 60..=61 | kb_zones_3_4_split_point_xfade | Selector<2> |
0x07 bit 1 | 62..=62 | program_transpose_enabled | bool |
0x07 bit 0; 0x08 bits 7..5 | 63..=66 | program_transpose_amount | RangedU8<15> |
0x08 bits 4..0; 0x09 bits 7..1 | 67..=78 | — | unclaimed |
0x09 bit 0 | 79..=79 | fx_comp_global_enabled | bool |
0x0a bit 7 | 80..=80 | fx_delay_global_enabled | bool |
0x0a bit 6 | 81..=81 | fx_reverb_global_enabled | bool |
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..4 | 82..=315 | — | unclaimed |
0x27 bit 3 | 316..=316 | organ_section_enabled | bool |
0x27 bit 2 | 317..=317 | piano_section_enabled | bool |
0x27 bit 1 | 318..=318 | synth_section_enabled | bool |
0x27 bit 0 | 319..=319 | organ_section_enabled_scene_2 | bool |
0x28 bit 7 | 320..=320 | piano_section_enabled_scene_2 | bool |
0x28 bit 6 | 321..=321 | synth_section_enabled_scene_2 | bool |
0x28 bit 5 | 322..=322 | active_layer_scene | bool |
0x28 bits 4..0; 0x29 bits 7..0; 0x2a bits 7..0; 0x2b bits 7..5 | 323..=346 | — | unclaimed |
0x2b bit 4 | 347..=347 | fx_enabled | bool |
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 7 | 348..=400 | — | unclaimed |
0x32 bit 6 | 401..=401 | organ_b_layer_enabled | bool |
0x32 bit 5 | 402..=402 | organ_a_layer_enabled | bool |
0x32 bit 4 | 403..=403 | — | unclaimed |
0x32 bit 3 | 404..=404 | organ_b_layer_enabled_scene_2 | bool |
0x32 bit 2 | 405..=405 | organ_a_layer_enabled_scene_2 | bool |
0x32 bits 1..0; 0x33 bits 7..3 | 406..=412 | organ_a_volume | Level |
0x33 bits 2..0; 0x34 bits 7..3 | 413..=420 | organ_a_volume_wheel | MorphTarget |
0x34 bits 2..0; 0x35 bits 7..3 | 421..=428 | organ_a_volume_aftertouch | MorphTarget |
0x35 bits 2..0; 0x36 bits 7..3 | 429..=436 | organ_a_volume_ctrl_pedal | MorphTarget |
0x36 bits 2..0; 0x37 bits 7..4 | 437..=443 | organ_b_volume | Level |
0x37 bits 3..0; 0x38 bits 7..4 | 444..=451 | organ_b_volume_wheel | MorphTarget |
0x38 bits 3..0; 0x39 bits 7..4 | 452..=459 | organ_b_volume_aftertouch | MorphTarget |
0x39 bits 3..0; 0x3a bits 7..4 | 460..=467 | organ_b_volume_ctrl_pedal | MorphTarget |
0x3a bit 3 | 468..=468 | organ_pitch_stick_enabled | bool |
0x3a bits 2..0 | 469..=471 | — | unclaimed |
0x3b bit 7 | 472..=472 | organ_rotary_speaker_enabled | bool |
0x3b bits 6..0; 0x3c bits 7..4 | 473..=483 | — | unclaimed |
0x3c bits 3..0; 0x3d bits 7..5 | 484..=490 | rotary_speaker_drive | Level |
0x3d bits 4..0; 0x3e bits 7..0; 0x3f bits 7..4 | 491..=507 | — | unclaimed |
0x3f bits 3..1 | 508..=510 | rotary_speaker_stop_position | Selector<3> |
0x3f bit 0; 0x40 bits 7..6 | 511..=513 | — | unclaimed |
0x40 bit 5 | 514..=514 | rotary_speaker_stop_enabled | bool |
0x40 bit 4 | 515..=515 | rotary_speaker_slow_fast | RotorSpeed |
0x40 bits 3..0; 0x41 bits 7..6 | 516..=521 | — | unclaimed |
0x41 bits 5..0; 0x42 bit 7 | 522..=528 | organ_vib_chorus_type | Level |
0x42 bits 6..0; 0x43 bits 7..0 | 529..=543 | — | unclaimed |
0x44..0x61 | 544..=775 | organ_a | OrganLayer |
0x61..0x63 | 776..=791 | — | unclaimed |
0x63..0x80 | 792..=1023 | organ_b | OrganLayer |
0x80..0x82 | 1024..=1039 | — | unclaimed |
0x82..0xb6 | 1040..=1455 | organ_fx | FxChain |
0xb6 bits 7..0; 0xb7 bits 7..0; 0xb8 bits 7..0; 0xb9 bit 7 | 1456..=1480 | — | unclaimed |
0xb9 bit 6 | 1481..=1481 | piano_b_layer_enabled | bool |
0xb9 bit 5 | 1482..=1482 | piano_a_layer_enabled | bool |
0xb9 bit 4 | 1483..=1483 | — | unclaimed |
0xb9 bit 3 | 1484..=1484 | piano_b_layer_enabled_scene_2 | bool |
0xb9 bit 2 | 1485..=1485 | piano_a_layer_enabled_scene_2 | bool |
0xb9 bits 1..0; 0xba bits 7..3 | 1486..=1492 | piano_a_volume | Level |
0xba bits 2..0; 0xbb bits 7..3 | 1493..=1500 | piano_a_volume_wheel | MorphTarget |
0xbb bits 2..0; 0xbc bits 7..3 | 1501..=1508 | piano_a_volume_aftertouch | MorphTarget |
0xbc bits 2..0; 0xbd bits 7..3 | 1509..=1516 | piano_a_volume_ctrl_pedal | MorphTarget |
0xbd bits 2..0; 0xbe bits 7..4 | 1517..=1523 | piano_b_volume | Level |
0xbe bits 3..0; 0xbf bits 7..4 | 1524..=1531 | piano_b_volume_wheel | MorphTarget |
0xbf bits 3..0; 0xc0 bits 7..4 | 1532..=1539 | piano_b_volume_aftertouch | MorphTarget |
0xc0 bits 3..0; 0xc1 bits 7..4 | 1540..=1547 | piano_b_volume_ctrl_pedal | MorphTarget |
0xc1 bits 3..0; 0xc2 bits 7..0; 0xc3 bits 7..0; 0xc4 bits 7..0; 0xc5 bits 7..0 | 1548..=1583 | — | unclaimed |
0xc6..0xcf | 1584..=1655 | piano_a | PianoLayer |
0xcf..0xd2 | 1656..=1679 | — | unclaimed |
0xd2..0xdb | 1680..=1751 | piano_b | PianoLayer |
0xdb..0xde | 1752..=1775 | — | unclaimed |
0xde..0x112 | 1776..=2191 | piano_a_fx | FxChain |
0x112..0x115 | 2192..=2215 | — | unclaimed |
0x115..0x149 | 2216..=2631 | piano_b_fx | FxChain |
0x149 bits 7..0; 0x14a bits 7..0; 0x14b bits 7..0; 0x14c bits 7..6 | 2632..=2657 | — | unclaimed |
0x14c bit 5 | 2658..=2658 | synth_c_layer_enabled | bool |
0x14c bit 4 | 2659..=2659 | synth_b_layer_enabled | bool |
0x14c bit 3 | 2660..=2660 | synth_a_layer_enabled | bool |
0x14c bits 2..1 | 2661..=2662 | — | unclaimed |
0x14c bit 0 | 2663..=2663 | synth_c_layer_enabled_scene_2 | bool |
0x14d bit 7 | 2664..=2664 | synth_b_layer_enabled_scene_2 | bool |
0x14d bit 6 | 2665..=2665 | synth_a_layer_enabled_scene_2 | bool |
0x14d bits 5..0; 0x14e bit 7 | 2666..=2672 | synth_a_volume | Level |
0x14e bits 6..0; 0x14f bit 7 | 2673..=2680 | synth_a_volume_wheel | MorphTarget |
0x14f bits 6..0; 0x150 bit 7 | 2681..=2688 | synth_a_volume_aftertouch | MorphTarget |
0x150 bits 6..0; 0x151 bit 7 | 2689..=2696 | synth_a_volume_ctrl_pedal | MorphTarget |
0x151 bits 6..0 | 2697..=2703 | synth_b_volume | Level |
0x152 | 2704..=2711 | synth_b_volume_wheel | MorphTarget |
0x153 | 2712..=2719 | synth_b_volume_aftertouch | MorphTarget |
0x154 | 2720..=2727 | synth_b_volume_ctrl_pedal | MorphTarget |
0x155 bits 7..1 | 2728..=2734 | synth_c_volume | Level |
0x155 bit 0; 0x156 bits 7..1 | 2735..=2742 | synth_c_volume_wheel | MorphTarget |
0x156 bit 0; 0x157 bits 7..1 | 2743..=2750 | synth_c_volume_aftertouch | MorphTarget |
0x157 bit 0; 0x158 bits 7..1 | 2751..=2758 | synth_c_volume_ctrl_pedal | MorphTarget |
0x158 bit 0; 0x159 bits 7..3 | 2759..=2764 | synth_a_pan | Pan |
0x159 bits 2..0; 0x15a bits 7..0; 0x15b bits 7..0; 0x15c bits 7..2 | 2765..=2789 | — | unclaimed |
0x15c bits 1..0; 0x15d bits 7..4 | 2790..=2795 | synth_b_pan | Pan |
0x15d bits 3..0; 0x15e bits 7..0; 0x15f bits 7..0; 0x160 bits 7..3 | 2796..=2820 | — | unclaimed |
0x160 bits 2..0; 0x161 bits 7..5 | 2821..=2826 | synth_c_pan | Pan |
0x161 bits 4..0; 0x162 bits 7..0; 0x163 bits 7..0; 0x164 bits 7..3 | 2827..=2852 | — | unclaimed |
0x164 bit 2 | 2853..=2853 | synth_arp_group_enabled | bool |
0x164 bit 1 | 2854..=2854 | — | unclaimed |
0x164 bit 0 | 2855..=2855 | synth_kb_hold_enabled | bool |
0x165..0x16b | 2856..=2903 | — | unclaimed |
0x16b..0x19a | 2904..=3279 | synth_a_performance | SynthPerformance |
0x19a..0x19e | 3280..=3311 | — | unclaimed |
0x19e..0x1cd | 3312..=3687 | synth_b_performance | SynthPerformance |
0x1cd..0x1d1 | 3688..=3719 | — | unclaimed |
0x1d1..0x200 | 3720..=4095 | synth_c_performance | SynthPerformance |
0x200..0x204 | 4096..=4127 | — | unclaimed |
0x204..0x230 | 4128..=4479 | synth_a_voice | SynthVoice |
0x230..0x234 | 4480..=4511 | — | unclaimed |
0x234..0x260 | 4512..=4863 | synth_b_voice | SynthVoice |
0x260..0x264 | 4864..=4895 | — | unclaimed |
0x264..0x290 | 4896..=5247 | synth_c_voice | SynthVoice |
0x290..0x294 | 5248..=5279 | — | unclaimed |
0x294..0x2c8 | 5280..=5695 | synth_a_fx | FxChain |
0x2c8..0x2cb | 5696..=5719 | — | unclaimed |
0x2cb..0x2ff | 5720..=6135 | synth_b_fx | FxChain |
0x2ff..0x302 | 6136..=6159 | — | unclaimed |
0x302..0x336 | 6160..=6575 | synth_c_fx | FxChain |
0x336..0x338 | 6576..=6591 | — | unclaimed |
Fields§
§version_echo: u8Bits 24..=31 (byte 0x03, bits 7..0).
split_enabled: boolBits 40..=40 (byte 0x05, bit 7).
kb_zones_1_2_split_point_enabled: boolBits 41..=41 (byte 0x05, bit 6).
kb_zones_2_3_split_point_enabled: boolBits 42..=42 (byte 0x05, bit 5).
kb_zones_3_4_split_point_enabled: boolBits 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: boolBits 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: boolBits 79..=79 (byte 0x09, bit 0).
fx_delay_global_enabled: boolBits 80..=80 (byte 0x0a, bit 7).
fx_reverb_global_enabled: boolBits 81..=81 (byte 0x0a, bit 6).
organ_section_enabled: boolBits 316..=316 (byte 0x27, bit 3).
piano_section_enabled: boolBits 317..=317 (byte 0x27, bit 2).
synth_section_enabled: boolBits 318..=318 (byte 0x27, bit 1).
organ_section_enabled_scene_2: boolBits 319..=319 (byte 0x27, bit 0).
piano_section_enabled_scene_2: boolBits 320..=320 (byte 0x28, bit 7).
synth_section_enabled_scene_2: boolBits 321..=321 (byte 0x28, bit 6).
active_layer_scene: boolBits 322..=322 (byte 0x28, bit 5).
fx_enabled: boolBits 347..=347 (byte 0x2b, bit 4).
organ_b_layer_enabled: boolBits 401..=401 (byte 0x32, bit 6).
organ_a_layer_enabled: boolBits 402..=402 (byte 0x32, bit 5).
organ_b_layer_enabled_scene_2: boolBits 404..=404 (byte 0x32, bit 3).
organ_a_layer_enabled_scene_2: boolBits 405..=405 (byte 0x32, bit 2).
organ_a_volume: LevelBits 406..=412 (byte 0x32, bits 1..0; byte 0x33, bits 7..3).
organ_a_volume_wheel: MorphTargetBits 413..=420 (byte 0x33, bits 2..0; byte 0x34, bits 7..3).
organ_a_volume_aftertouch: MorphTargetBits 421..=428 (byte 0x34, bits 2..0; byte 0x35, bits 7..3).
organ_a_volume_ctrl_pedal: MorphTargetBits 429..=436 (byte 0x35, bits 2..0; byte 0x36, bits 7..3).
organ_b_volume: LevelBits 437..=443 (byte 0x36, bits 2..0; byte 0x37, bits 7..4).
organ_b_volume_wheel: MorphTargetBits 444..=451 (byte 0x37, bits 3..0; byte 0x38, bits 7..4).
organ_b_volume_aftertouch: MorphTargetBits 452..=459 (byte 0x38, bits 3..0; byte 0x39, bits 7..4).
organ_b_volume_ctrl_pedal: MorphTargetBits 460..=467 (byte 0x39, bits 3..0; byte 0x3a, bits 7..4).
organ_pitch_stick_enabled: boolBits 468..=468 (byte 0x3a, bit 3).
organ_rotary_speaker_enabled: boolBits 472..=472 (byte 0x3b, bit 7).
rotary_speaker_drive: LevelBits 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: boolBits 514..=514 (byte 0x40, bit 5).
rotary_speaker_slow_fast: RotorSpeedBits 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: boolBits 1481..=1481 (byte 0xb9, bit 6).
piano_a_layer_enabled: boolBits 1482..=1482 (byte 0xb9, bit 5).
piano_b_layer_enabled_scene_2: boolBits 1484..=1484 (byte 0xb9, bit 3).
piano_a_layer_enabled_scene_2: boolBits 1485..=1485 (byte 0xb9, bit 2).
piano_a_volume: LevelBits 1486..=1492 (byte 0xb9, bits 1..0; byte 0xba, bits 7..3).
piano_a_volume_wheel: MorphTargetBits 1493..=1500 (byte 0xba, bits 2..0; byte 0xbb, bits 7..3).
piano_a_volume_aftertouch: MorphTargetBits 1501..=1508 (byte 0xbb, bits 2..0; byte 0xbc, bits 7..3).
piano_a_volume_ctrl_pedal: MorphTargetBits 1509..=1516 (byte 0xbc, bits 2..0; byte 0xbd, bits 7..3).
piano_b_volume: LevelBits 1517..=1523 (byte 0xbd, bits 2..0; byte 0xbe, bits 7..4).
piano_b_volume_wheel: MorphTargetBits 1524..=1531 (byte 0xbe, bits 3..0; byte 0xbf, bits 7..4).
piano_b_volume_aftertouch: MorphTargetBits 1532..=1539 (byte 0xbf, bits 3..0; byte 0xc0, bits 7..4).
piano_b_volume_ctrl_pedal: MorphTargetBits 1540..=1547 (byte 0xc0, bits 3..0; byte 0xc1, bits 7..4).
synth_c_layer_enabled: boolBits 2658..=2658 (byte 0x14c, bit 5).
synth_b_layer_enabled: boolBits 2659..=2659 (byte 0x14c, bit 4).
synth_a_layer_enabled: boolBits 2660..=2660 (byte 0x14c, bit 3).
synth_c_layer_enabled_scene_2: boolBits 2663..=2663 (byte 0x14c, bit 0).
synth_b_layer_enabled_scene_2: boolBits 2664..=2664 (byte 0x14d, bit 7).
synth_a_layer_enabled_scene_2: boolBits 2665..=2665 (byte 0x14d, bit 6).
synth_a_volume: LevelBits 2666..=2672 (byte 0x14d, bits 5..0; byte 0x14e, bit 7).
synth_a_volume_wheel: MorphTargetBits 2673..=2680 (byte 0x14e, bits 6..0; byte 0x14f, bit 7).
synth_a_volume_aftertouch: MorphTargetBits 2681..=2688 (byte 0x14f, bits 6..0; byte 0x150, bit 7).
synth_a_volume_ctrl_pedal: MorphTargetBits 2689..=2696 (byte 0x150, bits 6..0; byte 0x151, bit 7).
synth_b_volume: LevelBits 2697..=2703 (byte 0x151, bits 6..0).
synth_b_volume_wheel: MorphTargetBits 2704..=2711 (byte 0x152, bits 7..0).
synth_b_volume_aftertouch: MorphTargetBits 2712..=2719 (byte 0x153, bits 7..0).
synth_b_volume_ctrl_pedal: MorphTargetBits 2720..=2727 (byte 0x154, bits 7..0).
synth_c_volume: LevelBits 2728..=2734 (byte 0x155, bits 7..1).
synth_c_volume_wheel: MorphTargetBits 2735..=2742 (byte 0x155, bit 0; byte 0x156, bits 7..1).
synth_c_volume_aftertouch: MorphTargetBits 2743..=2750 (byte 0x156, bit 0; byte 0x157, bits 7..1).
synth_c_volume_ctrl_pedal: MorphTargetBits 2751..=2758 (byte 0x157, bit 0; byte 0x158, bits 7..1).
synth_a_pan: PanBits 2759..=2764 (byte 0x158, bit 0; byte 0x159, bits 7..3).
synth_b_pan: PanBits 2790..=2795 (byte 0x15c, bits 1..0; byte 0x15d, bits 7..4).
synth_c_pan: PanBits 2821..=2826 (byte 0x160, bits 2..0; byte 0x161, bits 7..5).
synth_arp_group_enabled: boolBits 2853..=2853 (byte 0x164, bit 2).
synth_kb_hold_enabled: boolBits 2855..=2855 (byte 0x164, bit 0).
organ_a: OrganLayerBytes 0x44..0x61.
organ_b: OrganLayerBytes 0x63..0x80.
organ_fx: FxChainBytes 0x82..0xb6.
piano_a: PianoLayerBytes 0xc6..0xcf.
piano_b: PianoLayerBytes 0xd2..0xdb.
piano_a_fx: FxChainBytes 0xde..0x112.
piano_b_fx: FxChainBytes 0x115..0x149.
synth_a_performance: SynthPerformanceBytes 0x16b..0x19a.
synth_b_performance: SynthPerformanceBytes 0x19e..0x1cd.
synth_c_performance: SynthPerformanceBytes 0x1d1..0x200.
synth_a_voice: SynthVoiceBytes 0x204..0x230.
synth_b_voice: SynthVoiceBytes 0x234..0x260.
synth_c_voice: SynthVoiceBytes 0x264..0x290.
synth_a_fx: FxChainBytes 0x294..0x2c8.
synth_b_fx: FxChainBytes 0x2cb..0x2ff.
synth_c_fx: FxChainBytes 0x302..0x336.
Implementations§
Source§impl Program
impl Program
Sourcepub fn field_values(&self) -> Vec<FieldValue>
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.
pub fn field_specs() -> Vec<FieldSpec>
Trait Implementations§
Source§impl Body for Program
impl Body for Program
Source§fn read<R: Read + Seek>(
r: &mut BodyReader<'_, R>,
_: &Header,
) -> Result<Self, Error>
fn read<R: Read + Seek>( r: &mut BodyReader<'_, R>, _: &Header, ) -> Result<Self, Error>
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.