nord_format/formats/ns4/
fx.rs1use crate::components::{
12 CompressorResponse, DelayCharacter, EqBand, Frequency, Level, MorphTarget, Rate, Selector, Time,
13};
14#[nord_bits_derive::bitbody(52)]
15pub struct FxChain {
16 #[bits(0..=0)]
17 pub mod_1_enabled: bool,
18 #[bits(1..=1)]
19 pub mod_1_master_clock_enabled: bool,
20 #[bits(2..=8)]
21 pub mod_1_rate: Rate,
22 #[bits(9..=16)]
23 pub mod_1_rate_wheel: MorphTarget,
24 #[bits(17..=24)]
25 pub mod_1_rate_aftertouch: MorphTarget,
26 #[bits(25..=32)]
27 pub mod_1_rate_ctrl_pedal: MorphTarget,
28 #[bits(33..=39)]
29 pub mod_1_amount: Level,
30 #[bits(40..=47)]
31 pub mod_1_amount_wheel: MorphTarget,
32 #[bits(48..=55)]
33 pub mod_1_amount_aftertouch: MorphTarget,
34 #[bits(56..=63)]
35 pub mod_1_amount_ctrl_pedal: MorphTarget,
36 #[bits(64..=67)]
37 pub mod_1_mode: Selector<4>,
38 #[bits(68..=68)]
39 pub mod_2_enabled: bool,
40 #[bits(69..=75)]
41 pub mod_2_rate: Rate,
42 #[bits(76..=83)]
43 pub mod_2_rate_wheel: MorphTarget,
44 #[bits(84..=91)]
45 pub mod_2_rate_aftertouch: MorphTarget,
46 #[bits(92..=99)]
47 pub mod_2_rate_ctrl_pedal: MorphTarget,
48 #[bits(100..=106)]
49 pub mod_2_amount: Level,
50 #[bits(107..=114)]
51 pub mod_2_amount_wheel: MorphTarget,
52 #[bits(115..=122)]
53 pub mod_2_amount_aftertouch: MorphTarget,
54 #[bits(123..=130)]
55 pub mod_2_amount_ctrl_pedal: MorphTarget,
56 #[bits(131..=134)]
57 pub mod_2_mode: Selector<4>,
58 #[bits(135..=135)]
59 pub amp_sim_eq_enabled: bool,
60 #[bits(136..=142)]
61 pub amp_sim_eq_treb: EqBand,
62 #[bits(143..=149)]
63 pub amp_sim_eq_mid: EqBand,
64 #[bits(150..=156)]
65 pub amp_sim_eq_bass: EqBand,
66 #[bits(157..=163)]
67 pub amp_sim_eq_freq: Frequency,
68 #[bits(164..=171)]
69 pub amp_sim_eq_freq_wheel: MorphTarget,
70 #[bits(172..=179)]
71 pub amp_sim_eq_freq_aftertouch: MorphTarget,
72 #[bits(180..=187)]
73 pub amp_sim_eq_freq_ctrl_pedal: MorphTarget,
74 #[bits(188..=194)]
75 pub amp_sim_eq_drive: Level,
76 #[bits(195..=202)]
77 pub amp_sim_eq_drive_wheel: MorphTarget,
78 #[bits(203..=210)]
79 pub amp_sim_eq_drive_aftertouch: MorphTarget,
80 #[bits(211..=218)]
81 pub amp_sim_eq_drive_ctrl_pedal: MorphTarget,
82 #[bits(223..=223)]
83 pub comp_enabled: bool,
84 #[bits(224..=230)]
85 pub comp_amount: Level,
86 #[bits(231..=231)]
87 pub comp_response: CompressorResponse,
88 #[bits(232..=232)]
89 pub delay_enabled: bool,
90 #[bits(233..=233)]
91 pub delay_tempo_master_clock_enabled: bool,
92 #[bits(234..=240)]
93 pub delay_tempo: Time,
94 #[bits(248..=255)]
95 pub delay_tempo_wheel: MorphTarget,
96 #[bits(256..=263)]
97 pub delay_tempo_aftertouch: MorphTarget,
98 #[bits(264..=271)]
99 pub delay_tempo_ctrl_pedal: MorphTarget,
100 #[bits(293..=299)]
101 pub delay_mix: Level,
102 #[bits(300..=307)]
103 pub delay_mix_wheel: MorphTarget,
104 #[bits(308..=315)]
105 pub delay_mix_aftertouch: MorphTarget,
106 #[bits(316..=323)]
107 pub delay_mix_ctrl_pedal: MorphTarget,
108 #[bits(324..=324)]
109 pub delay_normal_analog: DelayCharacter,
110 #[bits(325..=325)]
111 pub delay_ping_pong_enabled: bool,
112 #[bits(326..=327)]
113 pub delay_filter_type: Selector<2>,
114 #[bits(328..=334)]
115 pub delay_feedback: Level,
116 #[bits(335..=342)]
117 pub delay_feedback_wheel: MorphTarget,
118 #[bits(343..=350)]
119 pub delay_feedback_aftertouch: MorphTarget,
120 #[bits(351..=358)]
121 pub delay_feedback_ctrl_pedal: MorphTarget,
122 #[bits(359..=362)]
123 pub delay_effects: Selector<4>,
124 #[bits(363..=363)]
125 pub reverb_enabled: bool,
126 #[bits(364..=370)]
127 pub reverb_amount: Level,
128 #[bits(371..=378)]
129 pub reverb_amount_wheel: MorphTarget,
130 #[bits(379..=386)]
131 pub reverb_amount_aftertouch: MorphTarget,
132 #[bits(387..=394)]
133 pub reverb_amount_ctrl_pedal: MorphTarget,
134 #[bits(395..=396)]
135 pub reverb_dark_bright: Selector<2>,
136 #[bits(397..=400)]
137 pub reverb_type: Selector<4>,
138 #[bits(405..=408)]
139 pub amp_sim_eq_mode: Selector<4>,
140}