1+ #include " plugin.hpp"
2+
3+
4+ struct Matrix_sequencer : Module {
5+ enum ParamId {
6+ X1_Y1_KNOB_PARAM ,
7+ X2_Y1_KNOB_PARAM ,
8+ X3_Y1_KNOB_PARAM ,
9+ X4_Y1_KNOB_PARAM ,
10+ X1_Y2_KNOB_PARAM ,
11+ X2_Y2_KNOB_PARAM ,
12+ X3_Y2_KNOB_PARAM ,
13+ X4_Y2_KNOB_PARAM ,
14+ X1_Y3_KNOB_PARAM ,
15+ X2_Y3_KNOB_PARAM ,
16+ X3_Y3_KNOB_PARAM ,
17+ X4_Y3_KNOB_PARAM ,
18+ X1_Y4_KNOB_PARAM ,
19+ X2_Y4_KNOB_PARAM ,
20+ X3_Y4_KNOB_PARAM ,
21+ X4_Y4_KNOB_PARAM ,
22+ PARAMS_LEN
23+ };
24+ enum InputId {
25+ PATH5098_INPUT ,
26+ RUN_IN_INPUT ,
27+ RESET_IN_INPUT ,
28+ INPUTS_LEN
29+ };
30+ enum OutputId {
31+ Y1_OUT_OUTPUT ,
32+ Y2_OUT_OUTPUT ,
33+ Y3_OUT_OUTPUT ,
34+ Y4_OUT_OUTPUT ,
35+ X1_OUT_OUTPUT ,
36+ X2_OUT_OUTPUT ,
37+ X3_OUT_OUTPUT ,
38+ X4_OUT_OUTPUT ,
39+ TOTAL_PITCH_OUT_OUTPUT ,
40+ OUTPUTS_LEN
41+ };
42+ enum LightId {
43+ X1_Y1_LIGHT_LIGHT ,
44+ X2_Y1_LIGHT_LIGHT ,
45+ X3_Y1_LIGHT_LIGHT ,
46+ X4_Y1_LIGHT_LIGHT ,
47+ X1_Y2_LIGHT_LIGHT ,
48+ X2_Y2_LIGHT_LIGHT ,
49+ X3_Y2_LIGHT_LIGHT ,
50+ X4_Y2_LIGHT_LIGHT ,
51+ X1_Y3_LIGHT_LIGHT ,
52+ X2_Y3_LIGHT_LIGHT ,
53+ X3_Y3_LIGHT_LIGHT ,
54+ X4_Y3_LIGHT_LIGHT ,
55+ X1_Y4_LIGHT_LIGHT ,
56+ X2_Y4_LIGHT_LIGHT ,
57+ X3_Y4_LIGHT_LIGHT ,
58+ X4_Y4_LIGHT_LIGHT ,
59+ LIGHTS_LEN
60+ };
61+
62+ Matrix_sequencer () {
63+ config (PARAMS_LEN , INPUTS_LEN , OUTPUTS_LEN , LIGHTS_LEN );
64+ configParam (X1_Y1_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
65+ configParam (X2_Y1_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
66+ configParam (X3_Y1_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
67+ configParam (X4_Y1_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
68+ configParam (X1_Y2_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
69+ configParam (X2_Y2_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
70+ configParam (X3_Y2_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
71+ configParam (X4_Y2_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
72+ configParam (X1_Y3_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
73+ configParam (X2_Y3_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
74+ configParam (X3_Y3_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
75+ configParam (X4_Y3_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
76+ configParam (X1_Y4_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
77+ configParam (X2_Y4_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
78+ configParam (X3_Y4_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
79+ configParam (X4_Y4_KNOB_PARAM , 0 .f , 1 .f , 0 .f , " " );
80+ configInput (PATH5098_INPUT , " " );
81+ configInput (RUN_IN_INPUT , " " );
82+ configInput (RESET_IN_INPUT , " " );
83+ configOutput (Y1_OUT_OUTPUT , " " );
84+ configOutput (Y2_OUT_OUTPUT , " " );
85+ configOutput (Y3_OUT_OUTPUT , " " );
86+ configOutput (Y4_OUT_OUTPUT , " " );
87+ configOutput (X1_OUT_OUTPUT , " " );
88+ configOutput (X2_OUT_OUTPUT , " " );
89+ configOutput (X3_OUT_OUTPUT , " " );
90+ configOutput (X4_OUT_OUTPUT , " " );
91+ configOutput (TOTAL_PITCH_OUT_OUTPUT , " " );
92+ }
93+
94+ void process (const ProcessArgs& args) override {
95+ }
96+ };
97+
98+
99+ struct Matrix_sequencerWidget : ModuleWidget {
100+ Matrix_sequencerWidget (Matrix_sequencer* module ) {
101+ setModule (module );
102+ setPanel (createPanel (asset::plugin (pluginInstance, " res/matrix-sequencer.svg" )));
103+
104+ addChild (createWidget<ScrewSilver>(Vec (RACK_GRID_WIDTH , 0 )));
105+ addChild (createWidget<ScrewSilver>(Vec (box.size .x - 2 * RACK_GRID_WIDTH , 0 )));
106+ addChild (createWidget<ScrewSilver>(Vec (RACK_GRID_WIDTH , RACK_GRID_HEIGHT - RACK_GRID_WIDTH )));
107+ addChild (createWidget<ScrewSilver>(Vec (box.size .x - 2 * RACK_GRID_WIDTH , RACK_GRID_HEIGHT - RACK_GRID_WIDTH )));
108+
109+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (35.56 , 20.32 )), module , Matrix_sequencer::X1_Y1_KNOB_PARAM ));
110+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (63.5 , 20.32 )), module , Matrix_sequencer::X2_Y1_KNOB_PARAM ));
111+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (91.44 , 20.32 )), module , Matrix_sequencer::X3_Y1_KNOB_PARAM ));
112+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (119.38 , 20.32 )), module , Matrix_sequencer::X4_Y1_KNOB_PARAM ));
113+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (35.56 , 43.18 )), module , Matrix_sequencer::X1_Y2_KNOB_PARAM ));
114+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (63.5 , 43.18 )), module , Matrix_sequencer::X2_Y2_KNOB_PARAM ));
115+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (91.44 , 43.18 )), module , Matrix_sequencer::X3_Y2_KNOB_PARAM ));
116+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (119.38 , 43.18 )), module , Matrix_sequencer::X4_Y2_KNOB_PARAM ));
117+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (35.56 , 66.04 )), module , Matrix_sequencer::X1_Y3_KNOB_PARAM ));
118+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (63.5 , 66.04 )), module , Matrix_sequencer::X2_Y3_KNOB_PARAM ));
119+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (91.44 , 66.04 )), module , Matrix_sequencer::X3_Y3_KNOB_PARAM ));
120+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (119.38 , 66.04 )), module , Matrix_sequencer::X4_Y3_KNOB_PARAM ));
121+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (35.56 , 88.9 )), module , Matrix_sequencer::X1_Y4_KNOB_PARAM ));
122+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (63.5 , 88.9 )), module , Matrix_sequencer::X2_Y4_KNOB_PARAM ));
123+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (91.44 , 88.9 )), module , Matrix_sequencer::X3_Y4_KNOB_PARAM ));
124+ addParam (createParamCentered<RoundBlackKnob>(mm2px (Vec (119.38 , 88.9 )), module , Matrix_sequencer::X4_Y4_KNOB_PARAM ));
125+
126+ addInput (createInputCentered<PJ301MPort>(mm2px (Vec (12.7 , 25.4 )), module , Matrix_sequencer::PATH5098_INPUT ));
127+ addInput (createInputCentered<PJ301MPort>(mm2px (Vec (12.7 , 43.18 )), module , Matrix_sequencer::RUN_IN_INPUT ));
128+ addInput (createInputCentered<PJ301MPort>(mm2px (Vec (12.7 , 60.96 )), module , Matrix_sequencer::RESET_IN_INPUT ));
129+
130+ addOutput (createOutputCentered<PJ301MPort>(mm2px (Vec (137.16 , 20.32 )), module , Matrix_sequencer::Y1_OUT_OUTPUT ));
131+ addOutput (createOutputCentered<PJ301MPort>(mm2px (Vec (137.16 , 43.18 )), module , Matrix_sequencer::Y2_OUT_OUTPUT ));
132+ addOutput (createOutputCentered<PJ301MPort>(mm2px (Vec (137.16 , 66.04 )), module , Matrix_sequencer::Y3_OUT_OUTPUT ));
133+ addOutput (createOutputCentered<PJ301MPort>(mm2px (Vec (137.16 , 88.9 )), module , Matrix_sequencer::Y4_OUT_OUTPUT ));
134+ addOutput (createOutputCentered<PJ301MPort>(mm2px (Vec (35.56 , 119.38 )), module , Matrix_sequencer::X1_OUT_OUTPUT ));
135+ addOutput (createOutputCentered<PJ301MPort>(mm2px (Vec (63.5 , 119.38 )), module , Matrix_sequencer::X2_OUT_OUTPUT ));
136+ addOutput (createOutputCentered<PJ301MPort>(mm2px (Vec (91.44 , 119.38 )), module , Matrix_sequencer::X3_OUT_OUTPUT ));
137+ addOutput (createOutputCentered<PJ301MPort>(mm2px (Vec (119.38 , 119.38 )), module , Matrix_sequencer::X4_OUT_OUTPUT ));
138+ addOutput (createOutputCentered<PJ301MPort>(mm2px (Vec (137.16 , 119.38 )), module , Matrix_sequencer::TOTAL_PITCH_OUT_OUTPUT ));
139+
140+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (35.56 , 31.75 )), module , Matrix_sequencer::X1_Y1_LIGHT_LIGHT ));
141+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (63.5 , 31.75 )), module , Matrix_sequencer::X2_Y1_LIGHT_LIGHT ));
142+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (91.44 , 31.75 )), module , Matrix_sequencer::X3_Y1_LIGHT_LIGHT ));
143+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (119.38 , 31.75 )), module , Matrix_sequencer::X4_Y1_LIGHT_LIGHT ));
144+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (35.56 , 54.61 )), module , Matrix_sequencer::X1_Y2_LIGHT_LIGHT ));
145+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (63.5 , 54.61 )), module , Matrix_sequencer::X2_Y2_LIGHT_LIGHT ));
146+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (91.44 , 54.61 )), module , Matrix_sequencer::X3_Y2_LIGHT_LIGHT ));
147+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (119.38 , 54.61 )), module , Matrix_sequencer::X4_Y2_LIGHT_LIGHT ));
148+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (35.56 , 77.47 )), module , Matrix_sequencer::X1_Y3_LIGHT_LIGHT ));
149+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (63.5 , 77.47 )), module , Matrix_sequencer::X2_Y3_LIGHT_LIGHT ));
150+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (91.44 , 77.47 )), module , Matrix_sequencer::X3_Y3_LIGHT_LIGHT ));
151+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (119.38 , 77.47 )), module , Matrix_sequencer::X4_Y3_LIGHT_LIGHT ));
152+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (35.56 , 100.33 )), module , Matrix_sequencer::X1_Y4_LIGHT_LIGHT ));
153+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (63.5 , 100.33 )), module , Matrix_sequencer::X2_Y4_LIGHT_LIGHT ));
154+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (91.44 , 100.33 )), module , Matrix_sequencer::X3_Y4_LIGHT_LIGHT ));
155+ addChild (createLightCentered<MediumLight<RedLight>>(mm2px (Vec (119.38 , 100.33 )), module , Matrix_sequencer::X4_Y4_LIGHT_LIGHT ));
156+ }
157+ };
158+
159+
160+ Model* modelMatrix_sequencer = createModel<Matrix_sequencer, Matrix_sequencerWidget>(" matrix-sequencer" );
0 commit comments