3.6. Pitch and scales

Pitch travels through a patch in three forms. The cable converts between them automatically for the common connections. This page covers when to make a conversion visible, how to keep notes in key, and why each pitch path needs its own key setting.

3.6.1. Pitch forms

  1. Connect MIDI Decode Pitch to Pitch Quantizer Note.
  2. Choose the root and scale on Pitch Quantizer.
  3. Connect its Note output to Oscillator Pitch.

Result: the oscillator receives notes constrained to the chosen scale.

Form Unit Example
MIDI note midiNote 60 is middle C
Pitch CV v/oct 0 is C4
Frequency Hz 440 is A4

MIDI Decode outputs Pitch as v/oct, and Oscillator Pitch accepts it directly. Add Convert when you want the change of form visible in the patch. Use it when two or more destinations share the conversion, or to save a reader from working it out. Convert reads its input form from the connected source, and you choose the output form on the node.

3.6.2. Keep notes in key

A quantizer snaps notes to a scale. Choose by what is flowing:

When you add a quantizer, the editor connects it to the patch's Scale node, and adds one if the patch has none. Set the Key and Scale choosers on the Scale node. While a Scale node is connected, the quantizer hides its own Root and Scale controls and follows the Scale node. Quantising is what makes random sources musical: a Random or Sample & Hold value ignores key until a quantizer follows it.

Signal flow diagramClock connects to Sample & Hold via Trigger. Sample & Hold connects to Quantize Pitch via Value. Quantize Pitch connects to Oscillator via Pitch.TriggerValuePitchClockSample & HoldQuantize PitchOscillator
Diagram as text

Clock connects to Sample & Hold via Trigger. Sample & Hold connects to Quantize Pitch via Value. Quantize Pitch connects to Oscillator via Pitch.

graph LR
    TRIG[Clock] -->|Trigger| SH[Sample & Hold]
    SH -->|Value| QUANT[Quantize Pitch]
    QUANT -->|Pitch| OSC[Oscillator]

3.6.3. Each path has its own key

No key setting applies to every node. A quantizer constrains only the path it sits on, so adding one quantizer does not put the rest of the patch in key. Every pitch path that needs a key needs its own quantizer. Two quantizers can also use two different keys on purpose, for example a bass line and a pad.

A quantizer with no Scale node connected uses its own Root and Scale controls. On MIDI Scale Quantize, Root set to Auto follows the active project key.

3.6.4. Share one key

Quantizers connected to the same Scale node share its key, so you change key in one place. To give one path a different key, connect its quantizer to a second Scale node.

The Scale node still affects only the quantizers you connect it to.

Signal flow diagramScale connects to Quantize Pitch via Scale. Scale connects to MIDI Scale Quantize via Scale. Random connects to Quantize Pitch via Value. Quantize Pitch connects to Oscillator via Pitch.ScaleScaleValuePitchScaleRandomQuantize PitchMIDI Scale QuantizeOscillator
Diagram as text

Scale connects to Quantize Pitch via Scale. Scale connects to MIDI Scale Quantize via Scale. Random connects to Quantize Pitch via Value. Quantize Pitch connects to Oscillator via Pitch.

graph LR
    SCALE[Scale] -->|Scale| Q1[Quantize Pitch]
    SCALE -->|Scale| Q2[MIDI Scale Quantize]
    RAND[Random] -->|Value| Q1
    Q1 -->|Pitch| OSC[Oscillator]

3.6.5. Glide after quantising

Glide slides pitch from one note to the next. Put it after the quantizer: quantize then glide, and the pitch slides between in-key notes. Glide before quantising turns the slide into a staircase.

The C-major quantizer feeds Glide before Oscillator Pitch, so the glide follows quantising.

Glide Between In-Key Notes.

3.6.6. Transpose a performance

Use MIDI Transpose on the MIDI stream instead of arithmetic on a pitch signal. It shifts by semitones and octaves and keeps notes in the MIDI range. Math nodes do raw arithmetic and treat notes as plain numbers. See Control signals and logic.

The MIDI Transpose node with its signal sockets and visible controls.

Midi Transpose Controls.