I’ve recently been building some control signal generators for MIDI, OSC, CV and the internal protocol around which my software suite Klinik is built.

N-Segment Pendulum

The first of which is an n-segment pendulum, inspired by the excellent Caudal, a VCV Rack module by Vult. This generates natural, chaotic oscillations that become increasingly erratic with the addition of extra segments.

4-Dimensional Hypercubes

The second, a tesseract module, displays the real-time 2D screen coordinates for each vertex (node) of a rotating hypercube.

Genetic Approaches to Curve Fitting

Finally, this application transforms photos of hand-drawn whiteboard curves into mathematical functions. The aim is to provide a quick workflow: sketch a shape, capture it with a photo, and generate an approximate function that can then be used to produce control voltages via a DAC, ultimately for driving modular synthesisers or similar gear. The application offers two approaches:

Quick Fitting

This method employs non-linear least squares optimisation to fit the extracted data points to a predefined mathematical model, specifically a standard sine wave function. It works by iteratively adjusting the function’s parameters (amplitude, frequency, phase, vertical offset) to minimise the difference (sum of squared errors) between the function’s output and the actual data points. Fast and effective if the curve doesn’t deviate too much from a sine wave.

Symbolic Regression

This approach uses symbolic regression to discover a suitable mathematical function without prior assumptions about its form. It starts with a set of core mathematical functions and operators and evolves a population of candidate expressions over generations, selecting and combining them based on how well they fit the data. Computationally intensive but more flexible.

Curve Fitting

tags: applications, - hypercube