It’s Friday lunchtime again…! (Well, it was, but day job n stuff, it took me awhile to create this post
)
This is a complete rewrite of the Kalkatron module to make it polyphonic.
As pictured in the above posts, the CPU usage for the module when under some load and processing all 16 channels is typically under 3%
, which seems reasonable for now. There are potentially some more optimisations that could be made but I am pretty sure that anything significant would need to use simd
, and I am not ready for that…
For a single channel, the CPU usage is typically ~0.5%
, this is more than when the module was not polyphonic, but sacrifices must be made, sorry.
Also, because this is a complete rewrite, I cannot guarantee that patches using previous versions will be compatible, you should probably initialise the module to ensure there is no intermediate state weirdness.
Polyphonic mode is enabled by connecting a polyphonic cable to one of the maths operations trigger inputs.
When polyphony is enabled the knob at the top right will become active and display the currently visualised channel and the total number of channels. Polyphonic inputs will gain a yellow background, and polyphonic outputs will gain a red circle.
The knob controls the visualised channel, all the number readouts and trigger lights will be following the selected channel. This knob will get reset when you change the number of channels.
The number of channels is the max of the four maths operations trigger inputs. So for example if you have 5 channels triggering Subtract and 7 channels triggering Multiply, there will be 7 channels output, all values and inputs are normalised to 0.0
if not set.
All the manual triggers, the slew, the mode and the output attenuvertor are global, that is they act upon all channels.