Sanguine Modules Development

I thought I pasted from there, silly me :stuck_out_tongue:

  noteX = floor(x0);
  noteY = floor(y0);

    if (bWantMajorMinor) {
        if (y0 - noteY > x0 - noteX) {
            chordType = beleth::CHORD_MAJOR;
        } else {
            chordType = beleth::CHORD_MINOR;
        }
    } else {
        if (y0 - noteY > x0 - noteX) {
            chordType = beleth::CHORD_AUGMENTED;
        } else {
            chordType = beleth::CHORD_DIMINISHED;
        }
    }

    if (bWantSuspended && fabs(y0 - noteY) < 0.3f) {
        chordType = beleth::CHORD_SUSPENDED;
    }

That’s how the module decides.

so first I have to set bWantMajorMinor

then set yo below zero.

after this, the module outputs major chords.

is this correct?

Or above; but yep :slight_smile:

Expressions in a similar vein exist both in English and Spanish: “Needle in a haystack” and “Aguja en un pajar” ("Needle in a haystack), respectively.

A quick note on how to get the chords you are looking for:

The Tonnetz is like a spreadsheet (even though it is represented using a circle here, the idea is the same); it is not a coincidence there are X and Y values: the Perfect 5th moves the X, so the cursor moves around the same “level” or “circle” (the columns); the Major triad input controls the Y value, so the cursor changes “levels” or jumps “circles” (the rows).

If you look at the notes spread on the circles, you’ll see they are circles of fifths.

It is important to remember the 5th and triad are per volt.

1 Like

aha, does it mean one volt forward to next 5th or triad?

Yep :slight_smile:

Edit: I forgot to clarify: the triad input is Major triad per volt… so each volt is the next major.

1 Like

thanks to clarify. will test it in the evening.

:+1:

Hello again,

i tested the ranges and output. Now works as expected. Very good.

But unfortunately the Tran Input does not work or i do not understand. The output only jumps per 1V. The knob itself works as expected and transpose per semitone. Is this the correct behaviour? Perhaps as fine tuning per knob and octave up per cv input?

@Bloodbat

The Tran (Transpose) input and knob are working as expected: they rotate within the octave by semitones, with CV acting as an offset to the value set by the knob.

The values of the knob are also (in the end) 1V per semitone rotation; if it would make more sense to truncate the knob and the input to just change the notes on whole values instead of rounding, do let me know.

I will also change the tooltip to use whole values with integers and decimals instead of just 0-1 fractions.

thank you for the explanation.

am I right: if I turn the knob to a value of one semitone, then the CV in jumps in semitone, if I step it in 1v steps?

@Bloodbat

CV will add one semitone per volt if voltage is positive or subtract one semitone per volt if voltage is negative (and the knob is not all the way to the left).

A question for current Beleth users: the module, as transplanted from the Southpole original, assumes 10V inputs for the Transpose and Voicing ports; the Rack voltage standards state ±5V for bipolar CV voltages and a lot of modules do follow the standard (as they should!) So… shall I keep the inputs as they are now or should I change them to follow the standard?

Changing the standard would break existing patches; but if it is to be done, better do it right now, as the module is still considered under development and, as the nightlies notice in the repository states: “For those who like living on the edge. Features and module behavior are prone to change without notice.”

It’s poll time! The booth will close on may 16th, 2026.

Should the CV inputs for Beleth’s Transpose and Voicing follow the Rack voltage standards?
  • Change the inputs to follow the 5V standard!
  • Keep the current 10V inputs!
0 voters

Is Transpose the one that is 1 semitone/volt? +/- 5v is not enough to cover every semitone so if so I guess that one would have to be +/- 6 at least. In any case, for unusual functions like this maybe that’s less of a big deal? Following the standard is super important for things like LFO outputs and such where there’s obviously tons of modules that do “the same kind of thing” and its annoying when they aren’t compatible, I guess? But I’m not sure if my intuition is right here.

1 Like

yes, I thought about it,too. to transpose one octave, it has to be ±12V, or ??

perhaps another voltage step…

5V is enough to cover any range, in the case of Beleth it just turns to half a volt per semitone instead of 1V (and follows the voltage standards…) it can be a bit of a big deal because most LFOs (not all of them) I know / use / produce are ±5V when bipolar and, remember, the voltage is an offset to the knob, so negative voltages are useful as well.