#include "ClockDivider.hpp" namespace rack_plugin_SynthKit { ClockDividerModule::ClockDividerModule() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { clock = new SynthDevKit::Clock(8, 1.7f); cv = new SynthDevKit::CV(1.7f); } void ClockDividerModule::step() { float reset_in = inputs[RESET_INPUT].value; cv->update(reset_in); if (cv->newTrigger()) { clock->reset(); } float in = inputs[TOP_INPUT].value; bool *states = clock->update(in); for (int i = 0; i < 8; i++) { if (states[i] == true) { outputs[i].value = in; lights[i].value = 1.0f; } else { outputs[i].value = 0; lights[i].value = 0; } } } } // namespace rack_plugin_SynthKit