MonosynthProcessor

The tracker surface of the composable monosynth.

Declared in src/libs/libbahn/bahn/tracker/processor/MonosynthProcessor.hpp
Inherits Processor
Group bahn

Detailed description

The instrument itself is Monosynth, a composite Unit<T> in libmediacore. This class is the thin wrapper that gives it a schema, a row-data mapping and a factory row, exactly as TB303Processor does for Tb303. It holds no DSP.

The row surface, and what is not on it yet

Phase 1 exposes the shared knobs plus oscillator 1 in full, and level and tune for oscillators 2 and 3. The per-slot model choice is reachable in code and is not on a row, because with two models sharing one implementation there is nothing yet to choose between per slot. It arrives with the four digital models in P3.

See specs/composable-monosynth §KSW-36 and §KS-4d — no new GUI, the existing node parameter surface only.

It follows the device

setSampleRate is overridden and reaches the whole composite. Every new instrument inherits this obligation from §PIR-1: a processor built at bahn::DEFAULT_SAMPLE_RATE and played at 48 kHz is 147 cents sharp, and a test that constructs the processor with the rate it then measures cannot see it.

Member function documentation

parameterDisplayText

[override virtual] QString MonosynthProcessor::parameterDisplayText(int parameterIndex, Value value) const

What this instrument calls each of its values.

Returns the text for value in the column at parameterIndex.

specs/bahn-live-feedback §BLD-3f. Pure by contract: index in, value in, text out, nothing read and nothing written. That is what lets the whole table be tested with no engine, no window and no device.

A column not named here returns an empty string, which means "draw the number" — the same default every other processor has.

In this section