In keeping with our interest in generative modular compositions, We would like a way to programmatically introduce a sense of progression. We believe we can accomplish this with a counter module. Such a module would increment or decrement an internal counter on receipt of a related trigger. When the counter rises beyond a specified limit (or drops below zero), the module outputs triggers to indicate the associated condition.
The working name of this project is OVER/under.
The module will also have some kind of display to indicate the counter's internal state, either an LCD with boxes (think Pam's Euclidean rhythm display) or a series of multicolor LEDs.
The percent or progress CV out sends a stepped voltage based on the counter's progress to the selected step count.
A proposed pseudocode outline appears below.
init:
length = 1
counter = 0
n = max length
k = knob CV scale
r = output range for percent out (+5V or +10V)
loop:
clear expired triggers
read steps knob
read stops CV (norm = 0V)
length = k * [steps CV] + [steps knob], clamped to [1, n]
counter = counter % length, do not emit wrap triggers
read enable (norm = +5V)
if enable > +2V and increment triggered:
if ++counter >= length:
counter = counter % length
emit overflow trigger
emit wrap trigger
else if enable > +2V and decrement triggered:
if --counter <= 0:
counter = counter % length
emit underflow trigger
emit wrap trigger
update interface
set percent out to (counter / n) * r
This project is ideal for testing within the virtualized environment offered by VCV Rack.