Skip to main content

nord_format/formats/ns2/
slot.rs

1//! One Nord Stage 2 slot: a complete organ / piano / synth / extern / effects
2//! setup, 249 bytes of it.
3//!
4//! A program holds two — Slot A and Slot B — switched or layered by the Slot
5//! buttons. Same layout both times, so this is one type placed twice; see
6//! [`super::program::Program`].
7
8use super::program::*;
9use crate::components::{
10    Bipolar, ClockDivision, Drawbar, DrawbarMorph, Effect1Type, Effect2Type, EqBand, Frequency,
11    KbZone3, Level, MorphOf, MorphTarget, PianoRef, Rate, SampleRef, Selector, Time, WideSelector,
12};
13use crate::types::{RangedU16, RangedU8};
14
15/// The slot's parameters. Bits are MSB-first from slot byte 0,
16/// which is body byte 0x17 for A and 0x110 for B.
17#[nord_bits_derive::bitbody(249)]
18pub struct Slot {
19    #[bits(0..=0)]
20    pub organ_on: bool,
21    #[bits(1..=8)]
22    pub organ_volume_wheel: MorphTarget,
23    #[bits(9..=16)]
24    pub organ_volume_aftertouch: MorphTarget,
25    #[bits(17..=24)]
26    pub organ_volume_ctrl_pedal: MorphTarget,
27    #[bits(25..=31)]
28    pub organ_volume: Level,
29    #[bits(32..=34)]
30    pub organ_kb_zone: KbZone3,
31    #[bits(35..=38)]
32    pub organ_octave_shift: OctaveShift,
33    #[bits(39..=39)]
34    pub organ_sustain_pedal: bool,
35    #[bits(40..=40)]
36    pub piano_on: bool,
37    #[bits(41..=48)]
38    pub piano_volume_wheel: MorphTarget,
39    #[bits(49..=56)]
40    pub piano_volume_aftertouch: MorphTarget,
41    #[bits(57..=64)]
42    pub piano_volume_ctrl_pedal: MorphTarget,
43    #[bits(65..=71)]
44    pub piano_volume: Level,
45    #[bits(72..=74)]
46    pub piano_kb_zone: KbZone3,
47    #[bits(75..=78)]
48    pub piano_octave_shift: OctaveShift,
49    #[bits(79..=79)]
50    pub piano_pitch_stick: bool,
51    #[bits(80..=80)]
52    pub piano_sustain_pedal: bool,
53    #[bits(81..=81)]
54    pub synth_on: bool,
55    #[bits(82..=89)]
56    pub synth_volume_wheel: MorphTarget,
57    #[bits(90..=97)]
58    pub synth_volume_aftertouch: MorphTarget,
59    #[bits(98..=105)]
60    pub synth_volume_ctrl_pedal: MorphTarget,
61    #[bits(106..=112)]
62    pub synth_volume: Level,
63    #[bits(113..=115)]
64    pub synth_kb_zone: KbZone3,
65    #[bits(116..=119)]
66    pub synth_octave_shift: OctaveShift,
67    #[bits(120..=120)]
68    pub synth_pitch_stick: bool,
69    #[bits(121..=121)]
70    pub synth_sustain_pedal: bool,
71    #[bits(122..=122)]
72    pub extern_on: bool,
73    #[bits(154..=156)]
74    pub extern_kb_zone: KbZone3,
75    #[bits(157..=160)]
76    pub extern_octave_shift: OctaveShift,
77    #[bits(161..=161)]
78    pub extern_pitch_stick: bool,
79    #[bits(162..=162)]
80    pub extern_sustain_pedal: bool,
81    #[bits(174..=175)]
82    pub piano_program_output: Selector<2>,
83    #[bits(177..=178)]
84    pub synth_program_output: Selector<2>,
85    #[bits(180..=181)]
86    pub organ_program_output: Selector<2>,
87    #[bits(182..=182)]
88    pub organ_latch_pedal: bool,
89    #[bits(183..=183)]
90    pub organ_kb_gate: bool,
91    #[bits(184..=184)]
92    pub piano_latch_pedal: bool,
93    #[bits(185..=185)]
94    pub piano_kb_gate: bool,
95    #[bits(186..=186)]
96    pub synth_latch_pedal: bool,
97    #[bits(187..=187)]
98    pub synth_kb_gate: bool,
99    #[bits(200..=200)]
100    pub organ_b3_preset_2: bool,
101    #[bits(208..=208)]
102    pub organ_vox_vox_ii: bool,
103    #[bits(216..=216)]
104    pub organ_farfisa_preset_2: bool,
105    #[bits(224..=228)]
106    pub organ_b3_preset_1_drawbar_1_wheel: DrawbarMorph,
107    #[bits(229..=233)]
108    pub organ_b3_preset_1_drawbar_1_aftertouch: DrawbarMorph,
109    #[bits(234..=238)]
110    pub organ_b3_preset_1_drawbar_1_ctrl_pedal: DrawbarMorph,
111    #[bits(239..=242)]
112    pub organ_b3_preset_1_drawbar_1: Drawbar,
113    #[bits(243..=247)]
114    pub organ_b3_preset_1_drawbar_2_wheel: DrawbarMorph,
115    #[bits(248..=252)]
116    pub organ_b3_preset_1_drawbar_2_aftertouch: DrawbarMorph,
117    #[bits(253..=257)]
118    pub organ_b3_preset_1_drawbar_2_ctrl_pedal: DrawbarMorph,
119    #[bits(258..=261)]
120    pub organ_b3_preset_1_drawbar_2: Drawbar,
121    #[bits(262..=266)]
122    pub organ_b3_preset_1_drawbar_3_wheel: DrawbarMorph,
123    #[bits(267..=271)]
124    pub organ_b3_preset_1_drawbar_3_aftertouch: DrawbarMorph,
125    #[bits(272..=276)]
126    pub organ_b3_preset_1_drawbar_3_ctrl_pedal: DrawbarMorph,
127    #[bits(277..=280)]
128    pub organ_b3_preset_1_drawbar_3: Drawbar,
129    #[bits(281..=285)]
130    pub organ_b3_preset_1_drawbar_4_wheel: DrawbarMorph,
131    #[bits(286..=290)]
132    pub organ_b3_preset_1_drawbar_4_aftertouch: DrawbarMorph,
133    #[bits(291..=295)]
134    pub organ_b3_preset_1_drawbar_4_ctrl_pedal: DrawbarMorph,
135    #[bits(296..=299)]
136    pub organ_b3_preset_1_drawbar_4: Drawbar,
137    #[bits(300..=304)]
138    pub organ_b3_preset_1_drawbar_5_wheel: DrawbarMorph,
139    #[bits(305..=309)]
140    pub organ_b3_preset_1_drawbar_5_aftertouch: DrawbarMorph,
141    #[bits(310..=314)]
142    pub organ_b3_preset_1_drawbar_5_ctrl_pedal: DrawbarMorph,
143    #[bits(315..=318)]
144    pub organ_b3_preset_1_drawbar_5: Drawbar,
145    #[bits(319..=323)]
146    pub organ_b3_preset_1_drawbar_6_wheel: DrawbarMorph,
147    #[bits(324..=328)]
148    pub organ_b3_preset_1_drawbar_6_aftertouch: DrawbarMorph,
149    #[bits(329..=333)]
150    pub organ_b3_preset_1_drawbar_6_ctrl_pedal: DrawbarMorph,
151    #[bits(334..=337)]
152    pub organ_b3_preset_1_drawbar_6: Drawbar,
153    #[bits(338..=342)]
154    pub organ_b3_preset_1_drawbar_7_wheel: DrawbarMorph,
155    #[bits(343..=347)]
156    pub organ_b3_preset_1_drawbar_7_aftertouch: DrawbarMorph,
157    #[bits(348..=352)]
158    pub organ_b3_preset_1_drawbar_7_ctrl_pedal: DrawbarMorph,
159    #[bits(353..=356)]
160    pub organ_b3_preset_1_drawbar_7: Drawbar,
161    #[bits(357..=361)]
162    pub organ_b3_preset_1_drawbar_8_wheel: DrawbarMorph,
163    #[bits(362..=366)]
164    pub organ_b3_preset_1_drawbar_8_aftertouch: DrawbarMorph,
165    #[bits(367..=371)]
166    pub organ_b3_preset_1_drawbar_8_ctrl_pedal: DrawbarMorph,
167    #[bits(372..=375)]
168    pub organ_b3_preset_1_drawbar_8: Drawbar,
169    #[bits(376..=380)]
170    pub organ_b3_preset_1_drawbar_9_wheel: DrawbarMorph,
171    #[bits(381..=385)]
172    pub organ_b3_preset_1_drawbar_9_aftertouch: DrawbarMorph,
173    #[bits(386..=390)]
174    pub organ_b3_preset_1_drawbar_9_ctrl_pedal: DrawbarMorph,
175    #[bits(391..=394)]
176    pub organ_b3_preset_1_drawbar_9: Drawbar,
177    #[bits(395..=395)]
178    pub organ_b3_preset_1_vibrato_chorus: bool,
179    #[bits(396..=396)]
180    pub organ_b3_preset_1_percussion: bool,
181    #[bits(408..=412)]
182    pub organ_vox_preset_1_drawbar_1_wheel: DrawbarMorph,
183    #[bits(413..=417)]
184    pub organ_vox_preset_1_drawbar_1_aftertouch: DrawbarMorph,
185    #[bits(418..=422)]
186    pub organ_vox_preset_1_drawbar_1_ctrl_pedal: DrawbarMorph,
187    #[bits(423..=426)]
188    pub organ_vox_preset_1_drawbar_1: Drawbar,
189    #[bits(427..=431)]
190    pub organ_vox_preset_1_drawbar_2_wheel: DrawbarMorph,
191    #[bits(432..=436)]
192    pub organ_vox_preset_1_drawbar_2_aftertouch: DrawbarMorph,
193    #[bits(437..=441)]
194    pub organ_vox_preset_1_drawbar_2_ctrl_pedal: DrawbarMorph,
195    #[bits(442..=445)]
196    pub organ_vox_preset_1_drawbar_2: Drawbar,
197    #[bits(446..=450)]
198    pub organ_vox_preset_1_drawbar_3_wheel: DrawbarMorph,
199    #[bits(451..=455)]
200    pub organ_vox_preset_1_drawbar_3_aftertouch: DrawbarMorph,
201    #[bits(456..=460)]
202    pub organ_vox_preset_1_drawbar_3_ctrl_pedal: DrawbarMorph,
203    #[bits(461..=464)]
204    pub organ_vox_preset_1_drawbar_3: Drawbar,
205    #[bits(465..=469)]
206    pub organ_vox_preset_1_drawbar_4_wheel: DrawbarMorph,
207    #[bits(470..=474)]
208    pub organ_vox_preset_1_drawbar_4_aftertouch: DrawbarMorph,
209    #[bits(475..=479)]
210    pub organ_vox_preset_1_drawbar_4_ctrl_pedal: DrawbarMorph,
211    #[bits(480..=483)]
212    pub organ_vox_preset_1_drawbar_4: Drawbar,
213    #[bits(484..=488)]
214    pub organ_vox_preset_1_drawbar_5_wheel: DrawbarMorph,
215    #[bits(489..=493)]
216    pub organ_vox_preset_1_drawbar_5_aftertouch: DrawbarMorph,
217    #[bits(494..=498)]
218    pub organ_vox_preset_1_drawbar_5_ctrl_pedal: DrawbarMorph,
219    #[bits(499..=502)]
220    pub organ_vox_preset_1_drawbar_5: Drawbar,
221    #[bits(503..=507)]
222    pub organ_vox_preset_1_drawbar_6_wheel: DrawbarMorph,
223    #[bits(508..=512)]
224    pub organ_vox_preset_1_drawbar_6_aftertouch: DrawbarMorph,
225    #[bits(513..=517)]
226    pub organ_vox_preset_1_drawbar_6_ctrl_pedal: DrawbarMorph,
227    #[bits(518..=521)]
228    pub organ_vox_preset_1_drawbar_6: Drawbar,
229    #[bits(522..=526)]
230    pub organ_vox_preset_1_drawbar_7_wheel: DrawbarMorph,
231    #[bits(527..=531)]
232    pub organ_vox_preset_1_drawbar_7_aftertouch: DrawbarMorph,
233    #[bits(532..=536)]
234    pub organ_vox_preset_1_drawbar_7_ctrl_pedal: DrawbarMorph,
235    #[bits(537..=540)]
236    pub organ_vox_preset_1_drawbar_7: Drawbar,
237    #[bits(541..=545)]
238    pub organ_vox_preset_1_drawbar_8_wheel: DrawbarMorph,
239    #[bits(546..=550)]
240    pub organ_vox_preset_1_drawbar_8_aftertouch: DrawbarMorph,
241    #[bits(551..=555)]
242    pub organ_vox_preset_1_drawbar_8_ctrl_pedal: DrawbarMorph,
243    #[bits(556..=559)]
244    pub organ_vox_preset_1_drawbar_8: Drawbar,
245    #[bits(560..=564)]
246    pub organ_vox_preset_1_drawbar_9_wheel: DrawbarMorph,
247    #[bits(565..=569)]
248    pub organ_vox_preset_1_drawbar_9_aftertouch: DrawbarMorph,
249    #[bits(570..=574)]
250    pub organ_vox_preset_1_drawbar_9_ctrl_pedal: DrawbarMorph,
251    #[bits(575..=578)]
252    pub organ_vox_preset_1_drawbar_9: Drawbar,
253    #[bits(592..=593)]
254    pub organ_farfisa_preset_1_drawbar_1_wheel: MorphOf<2>,
255    #[bits(594..=595)]
256    pub organ_farfisa_preset_1_drawbar_1_aftertouch: MorphOf<2>,
257    #[bits(596..=597)]
258    pub organ_farfisa_preset_1_drawbar_1_ctrl_pedal: MorphOf<2>,
259    #[bits(598..=598)]
260    pub organ_farfisa_preset_1_drawbar_1: bool,
261    #[bits(599..=600)]
262    pub organ_farfisa_preset_1_drawbar_2_wheel: MorphOf<2>,
263    #[bits(601..=602)]
264    pub organ_farfisa_preset_1_drawbar_2_aftertouch: MorphOf<2>,
265    #[bits(603..=604)]
266    pub organ_farfisa_preset_1_drawbar_2_ctrl_pedal: MorphOf<2>,
267    #[bits(605..=605)]
268    pub organ_farfisa_preset_1_drawbar_2: bool,
269    #[bits(606..=607)]
270    pub organ_farfisa_preset_1_drawbar_3_wheel: MorphOf<2>,
271    #[bits(608..=609)]
272    pub organ_farfisa_preset_1_drawbar_3_aftertouch: MorphOf<2>,
273    #[bits(610..=611)]
274    pub organ_farfisa_preset_1_drawbar_3_ctrl_pedal: MorphOf<2>,
275    #[bits(612..=612)]
276    pub organ_farfisa_preset_1_drawbar_3: bool,
277    #[bits(613..=614)]
278    pub organ_farfisa_preset_1_drawbar_4_wheel: MorphOf<2>,
279    #[bits(615..=616)]
280    pub organ_farfisa_preset_1_drawbar_4_aftertouch: MorphOf<2>,
281    #[bits(617..=618)]
282    pub organ_farfisa_preset_1_drawbar_4_ctrl_pedal: MorphOf<2>,
283    #[bits(619..=619)]
284    pub organ_farfisa_preset_1_drawbar_4: bool,
285    #[bits(620..=621)]
286    pub organ_farfisa_preset_1_drawbar_5_wheel: MorphOf<2>,
287    #[bits(622..=623)]
288    pub organ_farfisa_preset_1_drawbar_5_aftertouch: MorphOf<2>,
289    #[bits(624..=625)]
290    pub organ_farfisa_preset_1_drawbar_5_ctrl_pedal: MorphOf<2>,
291    #[bits(626..=626)]
292    pub organ_farfisa_preset_1_drawbar_5: bool,
293    #[bits(627..=628)]
294    pub organ_farfisa_preset_1_drawbar_6_wheel: MorphOf<2>,
295    #[bits(629..=630)]
296    pub organ_farfisa_preset_1_drawbar_6_aftertouch: MorphOf<2>,
297    #[bits(631..=632)]
298    pub organ_farfisa_preset_1_drawbar_6_ctrl_pedal: MorphOf<2>,
299    #[bits(633..=633)]
300    pub organ_farfisa_preset_1_drawbar_6: bool,
301    #[bits(634..=635)]
302    pub organ_farfisa_preset_1_drawbar_7_wheel: MorphOf<2>,
303    #[bits(636..=637)]
304    pub organ_farfisa_preset_1_drawbar_7_aftertouch: MorphOf<2>,
305    #[bits(638..=639)]
306    pub organ_farfisa_preset_1_drawbar_7_ctrl_pedal: MorphOf<2>,
307    #[bits(640..=640)]
308    pub organ_farfisa_preset_1_drawbar_7: bool,
309    #[bits(641..=642)]
310    pub organ_farfisa_preset_1_drawbar_8_wheel: MorphOf<2>,
311    #[bits(643..=644)]
312    pub organ_farfisa_preset_1_drawbar_8_aftertouch: MorphOf<2>,
313    #[bits(645..=646)]
314    pub organ_farfisa_preset_1_drawbar_8_ctrl_pedal: MorphOf<2>,
315    #[bits(647..=647)]
316    pub organ_farfisa_preset_1_drawbar_8: bool,
317    #[bits(648..=649)]
318    pub organ_farfisa_preset_1_drawbar_9_wheel: MorphOf<2>,
319    #[bits(650..=651)]
320    pub organ_farfisa_preset_1_drawbar_9_aftertouch: MorphOf<2>,
321    #[bits(652..=653)]
322    pub organ_farfisa_preset_1_drawbar_9_ctrl_pedal: MorphOf<2>,
323    #[bits(654..=654)]
324    pub organ_farfisa_preset_1_drawbar_9: bool,
325    #[bits(664..=668)]
326    pub organ_b3_preset_2_drawbar_1_wheel: DrawbarMorph,
327    #[bits(669..=673)]
328    pub organ_b3_preset_2_drawbar_1_aftertouch: DrawbarMorph,
329    #[bits(674..=678)]
330    pub organ_b3_preset_2_drawbar_1_ctrl_pedal: DrawbarMorph,
331    #[bits(679..=682)]
332    pub organ_b3_preset_2_drawbar_1: Drawbar,
333    #[bits(683..=687)]
334    pub organ_b3_preset_2_drawbar_2_wheel: DrawbarMorph,
335    #[bits(688..=692)]
336    pub organ_b3_preset_2_drawbar_2_aftertouch: DrawbarMorph,
337    #[bits(693..=697)]
338    pub organ_b3_preset_2_drawbar_2_ctrl_pedal: DrawbarMorph,
339    #[bits(698..=701)]
340    pub organ_b3_preset_2_drawbar_2: Drawbar,
341    #[bits(702..=706)]
342    pub organ_b3_preset_2_drawbar_3_wheel: DrawbarMorph,
343    #[bits(707..=711)]
344    pub organ_b3_preset_2_drawbar_3_aftertouch: DrawbarMorph,
345    #[bits(712..=716)]
346    pub organ_b3_preset_2_drawbar_3_ctrl_pedal: DrawbarMorph,
347    #[bits(717..=720)]
348    pub organ_b3_preset_2_drawbar_3: Drawbar,
349    #[bits(721..=725)]
350    pub organ_b3_preset_2_drawbar_4_wheel: DrawbarMorph,
351    #[bits(726..=730)]
352    pub organ_b3_preset_2_drawbar_4_aftertouch: DrawbarMorph,
353    #[bits(731..=735)]
354    pub organ_b3_preset_2_drawbar_4_ctrl_pedal: DrawbarMorph,
355    #[bits(736..=739)]
356    pub organ_b3_preset_2_drawbar_4: Drawbar,
357    #[bits(740..=744)]
358    pub organ_b3_preset_2_drawbar_5_wheel: DrawbarMorph,
359    #[bits(745..=749)]
360    pub organ_b3_preset_2_drawbar_5_aftertouch: DrawbarMorph,
361    #[bits(750..=754)]
362    pub organ_b3_preset_2_drawbar_5_ctrl_pedal: DrawbarMorph,
363    #[bits(755..=758)]
364    pub organ_b3_preset_2_drawbar_5: Drawbar,
365    #[bits(759..=763)]
366    pub organ_b3_preset_2_drawbar_6_wheel: DrawbarMorph,
367    #[bits(764..=768)]
368    pub organ_b3_preset_2_drawbar_6_aftertouch: DrawbarMorph,
369    #[bits(769..=773)]
370    pub organ_b3_preset_2_drawbar_6_ctrl_pedal: DrawbarMorph,
371    #[bits(774..=777)]
372    pub organ_b3_preset_2_drawbar_6: Drawbar,
373    #[bits(778..=782)]
374    pub organ_b3_preset_2_drawbar_7_wheel: DrawbarMorph,
375    #[bits(783..=787)]
376    pub organ_b3_preset_2_drawbar_7_aftertouch: DrawbarMorph,
377    #[bits(788..=792)]
378    pub organ_b3_preset_2_drawbar_7_ctrl_pedal: DrawbarMorph,
379    #[bits(793..=796)]
380    pub organ_b3_preset_2_drawbar_7: Drawbar,
381    #[bits(797..=801)]
382    pub organ_b3_preset_2_drawbar_8_wheel: DrawbarMorph,
383    #[bits(802..=806)]
384    pub organ_b3_preset_2_drawbar_8_aftertouch: DrawbarMorph,
385    #[bits(807..=811)]
386    pub organ_b3_preset_2_drawbar_8_ctrl_pedal: DrawbarMorph,
387    #[bits(812..=815)]
388    pub organ_b3_preset_2_drawbar_8: Drawbar,
389    #[bits(816..=820)]
390    pub organ_b3_preset_2_drawbar_9_wheel: DrawbarMorph,
391    #[bits(821..=825)]
392    pub organ_b3_preset_2_drawbar_9_aftertouch: DrawbarMorph,
393    #[bits(826..=830)]
394    pub organ_b3_preset_2_drawbar_9_ctrl_pedal: DrawbarMorph,
395    #[bits(831..=834)]
396    pub organ_b3_preset_2_drawbar_9: Drawbar,
397    #[bits(835..=835)]
398    pub organ_b3_preset_2_vibrato_chorus: bool,
399    #[bits(836..=836)]
400    pub organ_b3_preset_2_percussion: bool,
401    #[bits(848..=852)]
402    pub organ_vox_preset_2_drawbar_1_wheel: DrawbarMorph,
403    #[bits(853..=857)]
404    pub organ_vox_preset_2_drawbar_1_aftertouch: DrawbarMorph,
405    #[bits(858..=862)]
406    pub organ_vox_preset_2_drawbar_1_ctrl_pedal: DrawbarMorph,
407    #[bits(863..=866)]
408    pub organ_vox_preset_2_drawbar_1: Drawbar,
409    #[bits(867..=871)]
410    pub organ_vox_preset_2_drawbar_2_wheel: DrawbarMorph,
411    #[bits(872..=876)]
412    pub organ_vox_preset_2_drawbar_2_aftertouch: DrawbarMorph,
413    #[bits(877..=881)]
414    pub organ_vox_preset_2_drawbar_2_ctrl_pedal: DrawbarMorph,
415    #[bits(882..=885)]
416    pub organ_vox_preset_2_drawbar_2: Drawbar,
417    #[bits(886..=890)]
418    pub organ_vox_preset_2_drawbar_3_wheel: DrawbarMorph,
419    #[bits(891..=895)]
420    pub organ_vox_preset_2_drawbar_3_aftertouch: DrawbarMorph,
421    #[bits(896..=900)]
422    pub organ_vox_preset_2_drawbar_3_ctrl_pedal: DrawbarMorph,
423    #[bits(901..=904)]
424    pub organ_vox_preset_2_drawbar_3: Drawbar,
425    #[bits(905..=909)]
426    pub organ_vox_preset_2_drawbar_4_wheel: DrawbarMorph,
427    #[bits(910..=914)]
428    pub organ_vox_preset_2_drawbar_4_aftertouch: DrawbarMorph,
429    #[bits(915..=919)]
430    pub organ_vox_preset_2_drawbar_4_ctrl_pedal: DrawbarMorph,
431    #[bits(920..=923)]
432    pub organ_vox_preset_2_drawbar_4: Drawbar,
433    #[bits(924..=928)]
434    pub organ_vox_preset_2_drawbar_5_wheel: DrawbarMorph,
435    #[bits(929..=933)]
436    pub organ_vox_preset_2_drawbar_5_aftertouch: DrawbarMorph,
437    #[bits(934..=938)]
438    pub organ_vox_preset_2_drawbar_5_ctrl_pedal: DrawbarMorph,
439    #[bits(939..=942)]
440    pub organ_vox_preset_2_drawbar_5: Drawbar,
441    #[bits(943..=947)]
442    pub organ_vox_preset_2_drawbar_6_wheel: DrawbarMorph,
443    #[bits(948..=952)]
444    pub organ_vox_preset_2_drawbar_6_aftertouch: DrawbarMorph,
445    #[bits(953..=957)]
446    pub organ_vox_preset_2_drawbar_6_ctrl_pedal: DrawbarMorph,
447    #[bits(958..=961)]
448    pub organ_vox_preset_2_drawbar_6: Drawbar,
449    #[bits(962..=966)]
450    pub organ_vox_preset_2_drawbar_7_wheel: DrawbarMorph,
451    #[bits(967..=971)]
452    pub organ_vox_preset_2_drawbar_7_aftertouch: DrawbarMorph,
453    #[bits(972..=976)]
454    pub organ_vox_preset_2_drawbar_7_ctrl_pedal: DrawbarMorph,
455    #[bits(977..=980)]
456    pub organ_vox_preset_2_drawbar_7: Drawbar,
457    #[bits(981..=985)]
458    pub organ_vox_preset_2_drawbar_8_wheel: DrawbarMorph,
459    #[bits(986..=990)]
460    pub organ_vox_preset_2_drawbar_8_aftertouch: DrawbarMorph,
461    #[bits(991..=995)]
462    pub organ_vox_preset_2_drawbar_8_ctrl_pedal: DrawbarMorph,
463    #[bits(996..=999)]
464    pub organ_vox_preset_2_drawbar_8: Drawbar,
465    #[bits(1000..=1004)]
466    pub organ_vox_preset_2_drawbar_9_wheel: DrawbarMorph,
467    #[bits(1005..=1009)]
468    pub organ_vox_preset_2_drawbar_9_aftertouch: DrawbarMorph,
469    #[bits(1010..=1014)]
470    pub organ_vox_preset_2_drawbar_9_ctrl_pedal: DrawbarMorph,
471    #[bits(1015..=1018)]
472    pub organ_vox_preset_2_drawbar_9: Drawbar,
473    #[bits(1032..=1033)]
474    pub organ_farfisa_preset_2_drawbar_1_wheel: MorphOf<2>,
475    #[bits(1034..=1035)]
476    pub organ_farfisa_preset_2_drawbar_1_aftertouch: MorphOf<2>,
477    #[bits(1036..=1037)]
478    pub organ_farfisa_preset_2_drawbar_1_ctrl_pedal: MorphOf<2>,
479    #[bits(1038..=1038)]
480    pub organ_farfisa_preset_2_drawbar_1: bool,
481    #[bits(1039..=1040)]
482    pub organ_farfisa_preset_2_drawbar_2_wheel: MorphOf<2>,
483    #[bits(1041..=1042)]
484    pub organ_farfisa_preset_2_drawbar_2_aftertouch: MorphOf<2>,
485    #[bits(1043..=1044)]
486    pub organ_farfisa_preset_2_drawbar_2_ctrl_pedal: MorphOf<2>,
487    #[bits(1045..=1045)]
488    pub organ_farfisa_preset_2_drawbar_2: bool,
489    #[bits(1046..=1047)]
490    pub organ_farfisa_preset_2_drawbar_3_wheel: MorphOf<2>,
491    #[bits(1048..=1049)]
492    pub organ_farfisa_preset_2_drawbar_3_aftertouch: MorphOf<2>,
493    #[bits(1050..=1051)]
494    pub organ_farfisa_preset_2_drawbar_3_ctrl_pedal: MorphOf<2>,
495    #[bits(1052..=1052)]
496    pub organ_farfisa_preset_2_drawbar_3: bool,
497    #[bits(1053..=1054)]
498    pub organ_farfisa_preset_2_drawbar_4_wheel: MorphOf<2>,
499    #[bits(1055..=1056)]
500    pub organ_farfisa_preset_2_drawbar_4_aftertouch: MorphOf<2>,
501    #[bits(1057..=1058)]
502    pub organ_farfisa_preset_2_drawbar_4_ctrl_pedal: MorphOf<2>,
503    #[bits(1059..=1059)]
504    pub organ_farfisa_preset_2_drawbar_4: bool,
505    #[bits(1060..=1061)]
506    pub organ_farfisa_preset_2_drawbar_5_wheel: MorphOf<2>,
507    #[bits(1062..=1063)]
508    pub organ_farfisa_preset_2_drawbar_5_aftertouch: MorphOf<2>,
509    #[bits(1064..=1065)]
510    pub organ_farfisa_preset_2_drawbar_5_ctrl_pedal: MorphOf<2>,
511    #[bits(1066..=1066)]
512    pub organ_farfisa_preset_2_drawbar_5: bool,
513    #[bits(1067..=1068)]
514    pub organ_farfisa_preset_2_drawbar_6_wheel: MorphOf<2>,
515    #[bits(1069..=1070)]
516    pub organ_farfisa_preset_2_drawbar_6_aftertouch: MorphOf<2>,
517    #[bits(1071..=1072)]
518    pub organ_farfisa_preset_2_drawbar_6_ctrl_pedal: MorphOf<2>,
519    #[bits(1073..=1073)]
520    pub organ_farfisa_preset_2_drawbar_6: bool,
521    #[bits(1074..=1075)]
522    pub organ_farfisa_preset_2_drawbar_7_wheel: MorphOf<2>,
523    #[bits(1076..=1077)]
524    pub organ_farfisa_preset_2_drawbar_7_aftertouch: MorphOf<2>,
525    #[bits(1078..=1079)]
526    pub organ_farfisa_preset_2_drawbar_7_ctrl_pedal: MorphOf<2>,
527    #[bits(1080..=1080)]
528    pub organ_farfisa_preset_2_drawbar_7: bool,
529    #[bits(1081..=1082)]
530    pub organ_farfisa_preset_2_drawbar_8_wheel: MorphOf<2>,
531    #[bits(1083..=1084)]
532    pub organ_farfisa_preset_2_drawbar_8_aftertouch: MorphOf<2>,
533    #[bits(1085..=1086)]
534    pub organ_farfisa_preset_2_drawbar_8_ctrl_pedal: MorphOf<2>,
535    #[bits(1087..=1087)]
536    pub organ_farfisa_preset_2_drawbar_8: bool,
537    #[bits(1088..=1089)]
538    pub organ_farfisa_preset_2_drawbar_9_wheel: MorphOf<2>,
539    #[bits(1090..=1091)]
540    pub organ_farfisa_preset_2_drawbar_9_aftertouch: MorphOf<2>,
541    #[bits(1092..=1093)]
542    pub organ_farfisa_preset_2_drawbar_9_ctrl_pedal: MorphOf<2>,
543    #[bits(1094..=1094)]
544    pub organ_farfisa_preset_2_drawbar_9: bool,
545    #[bits(1104..=1106)]
546    pub piano_type: Selector<3>,
547    #[bits(1119..=1120)]
548    pub piano_clavinet_model: Selector<2>,
549    #[bits(1121..=1121)]
550    pub piano_long_release: bool,
551    #[bits(1122..=1122)]
552    pub piano_string_resonance: bool,
553    #[bits(1123..=1123)]
554    pub piano_pedal_noise: bool,
555    #[bits(1124..=1125)]
556    pub piano_dynamics: Selector<2>,
557    #[bits(1126..=1127)]
558    pub piano_clav_eq_hi: Selector<2>,
559    #[bits(1128..=1129)]
560    pub piano_clav_eq: Selector<2>,
561    #[bits(1130..=1161)]
562    pub piano_sample_id: PianoRef,
563    #[bits(1207..=1207)]
564    pub synth_arp_on: bool,
565    #[bits(1208..=1208)]
566    pub synth_arp_master_clock: bool,
567    #[bits(1209..=1212)]
568    pub synth_arp_master_clock_divisor: ClockDivision,
569    #[bits(1214..=1220)]
570    pub synth_arp_rate: Time,
571    #[bits(1221..=1222)]
572    pub synth_arp_pattern: Selector<2>,
573    #[bits(1223..=1224)]
574    pub synth_arp_master_range: Selector<2>,
575    #[bits(1225..=1225)]
576    pub synth_lfo_master_clock: bool,
577    #[bits(1226..=1229)]
578    pub synth_lfo_rate_clock_divisor: ClockDivision,
579    #[bits(1230..=1230)]
580    pub synth_kb_hold: bool,
581    #[bits(1248..=1254)]
582    pub synth_mod_env_attack: Time,
583    #[bits(1255..=1261)]
584    pub synth_mod_env_decay: Time,
585    #[bits(1262..=1268)]
586    pub synth_mod_env_release: Time,
587    #[bits(1269..=1269)]
588    pub synth_mod_env_velocity: bool,
589    #[bits(1270..=1272)]
590    pub synth_osc_mode: Selector<3>,
591    #[bits(1273..=1282)]
592    pub synth_osc_waveform: WideSelector<10>,
593    #[bits(1283..=1290)]
594    pub synth_shape_wheel: MorphTarget,
595    #[bits(1291..=1298)]
596    pub synth_shape_aftertouch: MorphTarget,
597    #[bits(1299..=1306)]
598    pub synth_shape_ctrl_pedal: MorphTarget,
599    #[bits(1307..=1313)]
600    pub synth_shape: Level,
601    #[bits(1314..=1320)]
602    pub synth_shape_mod: Level,
603    #[bits(1321..=1328)]
604    pub synth_shape_detune_wheel: MorphTarget,
605    #[bits(1329..=1336)]
606    pub synth_shape_detune_aftertouch: MorphTarget,
607    #[bits(1337..=1344)]
608    pub synth_shape_detune_ctrl_pedal: MorphTarget,
609    #[bits(1345..=1351)]
610    pub synth_shape_detune: Level,
611    #[bits(1352..=1353)]
612    pub synth_skip_sample_attack_wheel: MorphOf<2>,
613    #[bits(1354..=1355)]
614    pub synth_skip_sample_attack_aftertouch: MorphOf<2>,
615    #[bits(1356..=1357)]
616    pub synth_skip_sample_attack_ctrl_pedal: MorphOf<2>,
617    #[bits(1358..=1358)]
618    pub synth_skip_sample_attack: bool,
619    #[bits(1359..=1366)]
620    pub synth_filter_freq_wheel: MorphTarget,
621    #[bits(1367..=1374)]
622    pub synth_filter_freq_aftertouch: MorphTarget,
623    #[bits(1375..=1382)]
624    pub synth_filter_freq_ctrl_pedal: MorphTarget,
625    #[bits(1383..=1389)]
626    pub synth_filter_freq: Frequency,
627    #[bits(1390..=1396)]
628    pub synth_filter_resonance: Level,
629    #[bits(1397..=1403)]
630    pub synth_filter_mod_2: Bipolar<10>,
631    #[bits(1404..=1410)]
632    pub synth_filter_mod_1: Bipolar<10>,
633    #[bits(1411..=1411)]
634    pub synth_filter_kb_track: bool,
635    #[bits(1412..=1414)]
636    pub synth_filter_type: Selector<3>,
637    #[bits(1415..=1421)]
638    pub synth_amp_env_attack: Time,
639    #[bits(1422..=1428)]
640    pub synth_amp_env_decay: Time,
641    #[bits(1429..=1435)]
642    pub synth_amp_env_release: Time,
643    #[bits(1436..=1436)]
644    pub synth_amp_env_velocity: bool,
645    #[bits(1437..=1443)]
646    pub synth_lfo_rate: Rate,
647    #[bits(1444..=1445)]
648    pub synth_lfo_waveform: Selector<2>,
649    #[bits(1446..=1477)]
650    pub synth_sample_id: SampleRef,
651    #[bits(1478..=1484)]
652    pub synth_glide_rate: Time,
653    #[bits(1485..=1486)]
654    pub synth_glide_voice_mode: Selector<2>,
655    #[bits(1487..=1489)]
656    pub synth_unison: Selector<3>,
657    #[bits(1490..=1492)]
658    pub synth_vibrato: Selector<3>,
659    #[bits(1504..=1505)]
660    pub extern_midi_control: Selector<2>,
661    #[bits(1506..=1512)]
662    pub extern_midi_cc_number: RangedU8<127>,
663    #[bits(1513..=1520)]
664    pub extern_midi_cc_wheel: MorphTarget,
665    #[bits(1521..=1528)]
666    pub extern_midi_cc_aftertouch: MorphTarget,
667    #[bits(1529..=1536)]
668    pub extern_midi_cc_ctrl_pedal: MorphTarget,
669    #[bits(1537..=1543)]
670    pub extern_midi_cc: Level,
671    #[bits(1544..=1544)]
672    pub extern_midi_cc_on: bool,
673    #[bits(1545..=1551)]
674    pub extern_midi_bank_select_cc32: RangedU8<127>,
675    #[bits(1552..=1552)]
676    pub extern_midi_bank_select_cc32_enabled: bool,
677    #[bits(1553..=1559)]
678    pub extern_midi_bank_select_cc00: RangedU8<127>,
679    #[bits(1560..=1560)]
680    pub extern_midi_bank_select_cc00_enabled: bool,
681    #[bits(1561..=1567)]
682    pub extern_midi_program: RangedU8<127>,
683    #[bits(1568..=1568)]
684    pub extern_midi_program_on: bool,
685    #[bits(1569..=1572)]
686    pub extern_midi_channel: Selector<4>,
687    #[bits(1574..=1574)]
688    pub extern_midi_channel_type: bool,
689    #[bits(1575..=1582)]
690    pub extern_volume_wheel: MorphTarget,
691    #[bits(1583..=1590)]
692    pub extern_volume_aftertouch: MorphTarget,
693    #[bits(1591..=1598)]
694    pub extern_volume_ctrl_pedal: MorphTarget,
695    #[bits(1599..=1605)]
696    pub extern_volume: Level,
697    #[bits(1606..=1606)]
698    pub extern_midi_volume_on: bool,
699    #[bits(1607..=1607)]
700    pub extern_midi_send_wheel: bool,
701    #[bits(1608..=1608)]
702    pub extern_midi_send_aftertouch: bool,
703    #[bits(1609..=1609)]
704    pub extern_midi_send_control_pedal: bool,
705    #[bits(1611..=1612)]
706    pub extern_midi_velocity_curve: Selector<2>,
707    #[bits(1613..=1613)]
708    pub extern_midi_send_swell: bool,
709    #[bits(1632..=1633)]
710    pub effect_focus: Selector<2>,
711    #[bits(1634..=1634)]
712    pub effect_1_on: bool,
713    #[bits(1635..=1636)]
714    pub effect_1_source: Selector<2>,
715    #[bits(1637..=1639)]
716    pub effect_1_type: Effect1Type,
717    #[bits(1640..=1640)]
718    pub effect_1_master_clock: bool,
719    #[bits(1641..=1645)]
720    pub effect_1_rate_master_clock_divisor_wheel: MorphOf<5>,
721    #[bits(1646..=1650)]
722    pub effect_1_rate_master_clock_divisor_aftertouch: MorphOf<5>,
723    #[bits(1651..=1655)]
724    pub effect_1_rate_master_clock_divisor_ctrl_pedal: MorphOf<5>,
725    #[bits(1656..=1659)]
726    pub effect_1_rate_master_clock_divisor: ClockDivision,
727    #[bits(1660..=1667)]
728    pub effect_1_rate_wheel: MorphTarget,
729    #[bits(1668..=1675)]
730    pub effect_1_rate_aftertouch: MorphTarget,
731    #[bits(1676..=1683)]
732    pub effect_1_rate_ctrl_pedal: MorphTarget,
733    #[bits(1684..=1690)]
734    pub effect_1_rate: Rate,
735    #[bits(1691..=1698)]
736    pub effect_1_amount_wheel: MorphTarget,
737    #[bits(1699..=1706)]
738    pub effect_1_amount_aftertouch: MorphTarget,
739    #[bits(1707..=1714)]
740    pub effect_1_amount_ctrl_pedal: MorphTarget,
741    #[bits(1715..=1721)]
742    pub effect_1_amount: Level,
743    #[bits(1722..=1722)]
744    pub effect_2_on: bool,
745    #[bits(1723..=1724)]
746    pub effect_2_source: Selector<2>,
747    #[bits(1725..=1727)]
748    pub effect_2_type: Effect2Type,
749    #[bits(1728..=1728)]
750    pub effect_2_master_clock: bool,
751    #[bits(1729..=1733)]
752    pub effect_2_rate_master_clock_divisor_wheel: MorphOf<5>,
753    #[bits(1734..=1738)]
754    pub effect_2_rate_master_clock_divisor_aftertouch: MorphOf<5>,
755    #[bits(1739..=1743)]
756    pub effect_2_rate_master_clock_divisor_ctrl_pedal: MorphOf<5>,
757    #[bits(1744..=1747)]
758    pub effect_2_rate_master_clock_divisor: ClockDivision,
759    #[bits(1748..=1755)]
760    pub effect_2_rate_wheel: MorphTarget,
761    #[bits(1756..=1763)]
762    pub effect_2_rate_aftertouch: MorphTarget,
763    #[bits(1764..=1771)]
764    pub effect_2_rate_ctrl_pedal: MorphTarget,
765    #[bits(1772..=1778)]
766    pub effect_2_rate: Rate,
767    #[bits(1779..=1786)]
768    pub effect_2_amount_wheel: MorphTarget,
769    #[bits(1787..=1794)]
770    pub effect_2_amount_aftertouch: MorphTarget,
771    #[bits(1795..=1802)]
772    pub effect_2_amount_ctrl_pedal: MorphTarget,
773    #[bits(1803..=1809)]
774    pub effect_2_amount: Level,
775    #[bits(1810..=1810)]
776    pub delay_on: bool,
777    #[bits(1811..=1812)]
778    pub delay_source: Selector<2>,
779    #[bits(1813..=1813)]
780    pub delay_ping_pong: bool,
781    #[bits(1814..=1814)]
782    pub delay_master_clock: bool,
783    /// ⚠️ **This run does not read like the rest of the model and is worth re-deriving
784    /// against the byte map before anything is built on it.** Three of its morph slots are
785    /// thirteen bits where every other morph slot in the Stage 2 is five or eight. The
786    /// manual gives the control as a 20–750 ms delay time; a twelve-bit slot would hold
787    /// that directly, and what the value below stores does not read as milliseconds.
788    #[bits(1815..=1819)]
789    pub delay_tempo_master_clock_divisor_wheel: MorphOf<5>,
790    #[bits(1820..=1824)]
791    pub delay_tempo_master_clock_divisor_aftertouch: MorphOf<5>,
792    #[bits(1825..=1829)]
793    pub delay_tempo_master_clock_divisor_ctrl_pedal: MorphOf<5>,
794    #[bits(1830..=1833)]
795    pub delay_tempo_master_clock_divisor: ClockDivision,
796    #[bits(1834..=1846)]
797    pub delay_tempo_wheel: RangedU16<8191>,
798    #[bits(1847..=1859)]
799    pub delay_tempo_aftertouch: RangedU16<8191>,
800    #[bits(1860..=1872)]
801    pub delay_tempo_ctrl_pedal: RangedU16<8191>,
802    #[bits(1873..=1884)]
803    pub delay_tempo: RangedU16<4095>,
804    #[bits(1885..=1892)]
805    pub delay_amount_wheel: MorphTarget,
806    #[bits(1893..=1900)]
807    pub delay_amount_aftertouch: MorphTarget,
808    #[bits(1901..=1908)]
809    pub delay_amount_ctrl_pedal: MorphTarget,
810    #[bits(1909..=1915)]
811    pub delay_amount: Level,
812    #[bits(1916..=1922)]
813    pub delay_feedback: Level,
814    #[bits(1923..=1923)]
815    pub amp_sim_eq_on: bool,
816    #[bits(1924..=1925)]
817    pub amp_sim_eq_source: Selector<2>,
818    #[bits(1926..=1927)]
819    pub amp_type: Selector<2>,
820    #[bits(1928..=1934)]
821    pub amp_sim_drive: Level,
822    #[bits(1935..=1941)]
823    pub eq_treble: EqBand,
824    #[bits(1942..=1948)]
825    pub eq_mid: EqBand,
826    #[bits(1949..=1955)]
827    pub eq_bass: EqBand,
828    #[bits(1956..=1962)]
829    pub eq_mid_flt_freq: Frequency,
830}