@@ -271,9 +271,12 @@ struct Funcgen : Module {
271271 float b = envelope[1 ].env ;
272272 float c = envelope[2 ].env ;
273273 float d = envelope[3 ].env ;
274- outputs[MIN_OUTPUT ].setVoltage (std::min (a, std::min (b, std::min (c, d))));
275- outputs[MAX_OUTPUT ].setVoltage (std::max (a, std::max (b, std::max (c, d))));
276- outputs[AVG_OUTPUT ].setVoltage ((a + b + c + d) / CHANNEL_COUNT );
274+ // outputs[MIN_OUTPUT].setVoltage(std::min(a, std::min(b, std::min(c, d))));
275+ // outputs[MAX_OUTPUT].setVoltage(std::max(a, std::max(b, std::max(c, d))));
276+ // outputs[AVG_OUTPUT].setVoltage((a + b + c + d) / CHANNEL_COUNT);
277+ outputs[MIN_OUTPUT ].setVoltage (std::min (a * 10 , std::min (b * 10 , std::min (c * 10 , d * 10 ))));
278+ outputs[MAX_OUTPUT ].setVoltage (std::max (a * 10 , std::max (b * 10 , std::max (c * 10 , d * 10 ))));
279+ outputs[AVG_OUTPUT ].setVoltage ((a * 10 + b * 10 + c * 10 + d * 10 ) / CHANNEL_COUNT );
277280 outputs[AGTB_OUTPUT ].setVoltage (a > b ? 10 .f : 0 .f );
278281 outputs[AGTC_OUTPUT ].setVoltage (a > c ? 10 .f : 0 .f );
279282 outputs[AGTD_OUTPUT ].setVoltage (a > d ? 10 .f : 0 .f );
@@ -286,18 +289,30 @@ struct Funcgen : Module {
286289 outputs[DGTA_OUTPUT ].setVoltage (d > a ? 10 .f : 0 .f );
287290 outputs[DGTB_OUTPUT ].setVoltage (d > b ? 10 .f : 0 .f );
288291 outputs[DGTC_OUTPUT ].setVoltage (d > c ? 10 .f : 0 .f );
289- outputs[ABSAB_OUTPUT ].setVoltage (10 - std::abs (a - b));
290- outputs[ABSAC_OUTPUT ].setVoltage (10 - std::abs (a - c));
291- outputs[ABSAD_OUTPUT ].setVoltage (10 - std::abs (a - d));
292- outputs[ABSBC_OUTPUT ].setVoltage (10 - std::abs (b - c));
293- outputs[ABSBD_OUTPUT ].setVoltage (10 - std::abs (b - d));
294- outputs[ABSCD_OUTPUT ].setVoltage (10 - std::abs (c - d));
295- outputs[ABSBA_OUTPUT ].setVoltage (std::abs (a - b));
296- outputs[ABSCA_OUTPUT ].setVoltage (std::abs (a - c));
297- outputs[ABSCB_OUTPUT ].setVoltage (std::abs (b - c));
298- outputs[ABSDA_OUTPUT ].setVoltage (std::abs (a - d));
299- outputs[ABSDB_OUTPUT ].setVoltage (std::abs (b - d));
300- outputs[ABSDC_OUTPUT ].setVoltage (std::abs (c - d));
292+ // outputs[ABSAB_OUTPUT].setVoltage(10 - std::abs(a - b));
293+ // outputs[ABSAC_OUTPUT].setVoltage(10 - std::abs(a - c));
294+ // outputs[ABSAD_OUTPUT].setVoltage(10 - std::abs(a - d));
295+ // outputs[ABSBC_OUTPUT].setVoltage(10 - std::abs(b - c));
296+ // outputs[ABSBD_OUTPUT].setVoltage(10 - std::abs(b - d));
297+ // outputs[ABSCD_OUTPUT].setVoltage(10 - std::abs(c - d));
298+ // outputs[ABSBA_OUTPUT].setVoltage(std::abs(a - b));
299+ // outputs[ABSCA_OUTPUT].setVoltage(std::abs(a - c));
300+ // outputs[ABSCB_OUTPUT].setVoltage(std::abs(b - c));
301+ // outputs[ABSDA_OUTPUT].setVoltage(std::abs(a - d));
302+ // outputs[ABSDB_OUTPUT].setVoltage(std::abs(b - d));
303+ // outputs[ABSDC_OUTPUT].setVoltage(std::abs(c - d));
304+ outputs[ABSAB_OUTPUT ].setVoltage (10 - std::abs (a * 10 - b * 10 ));
305+ outputs[ABSAC_OUTPUT ].setVoltage (10 - std::abs (a * 10 - c * 10 ));
306+ outputs[ABSAD_OUTPUT ].setVoltage (10 - std::abs (a * 10 - d * 10 ));
307+ outputs[ABSBC_OUTPUT ].setVoltage (10 - std::abs (b * 10 - c * 10 ));
308+ outputs[ABSBD_OUTPUT ].setVoltage (10 - std::abs (b * 10 - d * 10 ));
309+ outputs[ABSCD_OUTPUT ].setVoltage (10 - std::abs (c * 10 - d * 10 ));
310+ outputs[ABSBA_OUTPUT ].setVoltage (std::abs (a * 10 - b * 10 ));
311+ outputs[ABSCA_OUTPUT ].setVoltage (std::abs (a * 10 - c * 10 ));
312+ outputs[ABSCB_OUTPUT ].setVoltage (std::abs (b * 10 - c * 10 ));
313+ outputs[ABSDA_OUTPUT ].setVoltage (std::abs (a * 10 - d * 10 ));
314+ outputs[ABSDB_OUTPUT ].setVoltage (std::abs (b * 10 - d * 10 ));
315+ outputs[ABSDC_OUTPUT ].setVoltage (std::abs (c * 10 - d * 10 ));
301316
302317 // find the two channels with the highest amplitude
303318 float max_a = 0 .f ;
0 commit comments