TouchMachines Square Machine →
User Manual

SQUARES

A visual MIDI sequencer where you draw squares on a 2D plane to create musical patterns. Each square is a note — position sets timing and pitch, size sets duration and velocity. Four colour channels, per-colour pitch sequencers, scale sequencing, internal synth and granular sampler.

Plugin · VST3 / AU / Standalone 4 Channels · Synth + Sampler + MIDI Visual · Polyrhythmic

Overview

SQUARES is a MIDI sequencer that doesn't use a piano roll. You draw rectangles on a plane, and each one becomes a note. Vertical position sets pitch; horizontal position sets when it plays. Width sets how long it lasts; height sets how loud it is. Colour tells you which of four independent channels owns it.

Three things in one plugin

  • Visual MIDI sequencer — the main idea. Draw squares, play squares.
  • Internal bass synth — four monophonic voices (one per colour), each with a 5-waveform oscillator, ADSR, filter, pitch envelope, and distortion.
  • Granular sampler — four granular voices, one per colour. Load a WAV or AIFF and play it back with grain size, decay, speed, and three playback modes.

Each colour can route to any of the three engines independently: the MIDI output, the internal synth, or the sampler. Mix and match.

Distinctive features

  • Per-colour pitch sequencers — a continuous pitch-offset waveform per channel, with its own loop length separate from the main loop. Polyrhythmic pitch modulation without writing a single extra note.
  • Scale sequencer — chain key and scale changes across bars. All squares re-harmonise as the timeline progresses.
  • Four play modes — Forward, Backward, Pendulum, and a Probability mode with an XY pad for step-jump size and randomness.
  • Per-colour loop lengths — each colour can have its own independent loop length for built-in polyrhythm.
  • Reactive visualisation — a GPU-accelerated 3D wireframe over a CPU particle/fractal system, all responding to your notes.
Mental model Think of the plane as a piano roll you can paint on freely. The X axis is time; the Y axis is pitch; a square is a note that has area — and area means it owns not just a moment but a duration and a loudness.

Quick Start

  1. Load SQUARES on a MIDI or instrument track.
  2. Pick a colour on the left — say, red.
  3. Click and drag on the sequencing plane to draw a square.
  4. Draw a few more at different heights and widths.
  5. Open the SOUNDS tab on the right; set the output to Internal Synth.
  6. Press play (standalone) or run your DAW transport. The squares trigger as the playhead passes them.
  7. Switch to green and paint again — now you have two independent voices.
The core loop Pick a colour · Draw squares · Hear them · Tweak the SOUNDS tab. Repeat per colour. That's the entire workflow.

The Interface

A central sequencing plane, a column of colour buttons on the left, a tabbed configuration panel on the right, and a top bar with transport, play mode, and the scale sequencer timeline.

Top bar

PLAY / STOP
Standalone transport. Host transport wins when plugin-hosted.
BPM
20–300. Drag the number.
Time Signature
Numerator 1–16 · Denominator 1, 2, 4, 8, 16.
Play Mode
Four buttons: --> Forward, <-- Backward, <--> Pendulum, --?> Probability.
Scale Sequencer
Horizontal timeline of root-and-scale segments. Click + to add, click a segment to edit.
Presets
Dropdown with save and delete buttons.
Settings / Help
Visualisation intensity, theme, about info.

Left panel — Colour selector

Four colour buttons. Tap one to select that channel — squares you draw go into the selected colour, and the right-side config panel shows that channel's settings. Each button flashes on note triggers in its channel colour.

Centre — Sequencing plane

The main canvas. Grid lines mark beat positions; a vertical playhead sweeps left-to-right (or the other direction, depending on play mode). When the pitch sequencer is open, it overlays on top. The grid "breathes" subtly on each beat — a visual metronome.

Right panel — Config panel

Three tabs for the selected channel. Full detail in § Channel Config Panel.

SQUARES PITCH SOUNDS

Below the plane

  • Loop Length Selector — global length, with a Sync All button to reset per-colour overrides.
  • Scale Controls — root note and scale type.

Squares — The Core Idea

Every note in SQUARES is literally a rectangle. Four properties, two axes, one intuitive mapping.

What each dimension means

Left edge (X)
When the note starts. The playhead crosses the left edge → note-on.
Right edge (X)
When it ends. Playhead crosses the right edge → note-off.
Width
Duration = how long the note sustains.
Top edge (Y)
Higher on the plane = higher pitch.
Height
Velocity. Taller squares are louder; shorter ones are quieter.
Colour
Which channel owns the square.

Coordinate system

Internally all coordinates are normalised 0–1. The left edge of the plane is time 0; the right edge is the end of the loop. The top is the channel's high note; the bottom is its low note. Everything scales proportionally if you change loop length or octave range.

The Four Color Channels

Four independent channels, each with its own colour, MIDI routing, pitch range, synthesis voice, sampler voice, loop length, pitch sequencer, and quantisation. Nothing is shared except the global scale and play mode.

REDChannel 1
GREENChannel 2
BLUEChannel 3
YELLOWChannel 4

What each channel owns

  • Its squares on the plane.
  • A MIDI channel (1–16) and a pitch range (a base note + 1–5 octaves).
  • A quantisation setting — timing snap from 1/32 to 1 bar.
  • An output route — MIDI / Internal Synth / Sampler.
  • A full synth voice and a full sampler voice (always live — switching output route just changes what's audible).
  • A pitch-sequencer waveform with its own loop length.
  • Optionally, a local loop length that overrides the global one.
Monophonic per channel Each channel is monophonic — triggering a new note steals the old one. If you overlap two red squares in time, the second retriggers the voice and cuts the first. Polyphony comes from combining channels, not stacking notes in one.

Drawing & Editing

Create

  • Click and drag on an empty part of the plane to create a square in the selected colour. Drag determines width and height.
  • Squares snap only where you put them; the grid is a visual reference, not a hard snap. Time quantisation happens at playback via the Quantization setting.

Edit

  • Drag the body of an existing square to move it.
  • Drag an edge to resize — width changes duration, height changes velocity.
  • Click to select. Selected squares are highlighted.

Delete

  • Double-click a square, or select and press Delete / Backspace.
  • The Clear button on the SQUARES tab wipes every square in the current colour.

Navigation

  • Mouse wheel — zoom the plane.
  • Pan — move around when zoomed in (modifier depends on OS).
Thin tall squares vs short wide squares A thin tall square is a brief loud hit. A wide short square is a long quiet held note. Shape your squares deliberately.

Channel Config Panel

The right-hand panel with three tabs. Every control applies only to the currently selected colour channel.

SQUARES tab

Quantization
Timing snap for note-on events: 1/32 · 1/16 · 1/8 · 1/4 · 1/2 · 1 bar. Applied at playback — doesn't move the squares.
Base note
The channel's lowest note (C through B).
Octave range
How many octaves tall the channel's pitch range is (1–5). Larger range = more pitches span the Y axis.
MIDI channel
1–16. Used when the output route is MIDI Output.
Pitch sequencer length
Loop length of the pitch waveform for this channel. Independent of the main loop.
Main loop length
Per-channel override. Zero uses the global setting.
Clear
Wipes every square in this colour.

PITCH tab

For the pitch-sequencer overlay. See § The Pitch Sequencer for how it works.

Pitch base note
Separate from the square base note — sets the zero point for the pitch-sequencer's vertical axis.
Pitch octave range
1–5 octaves spanned by the overlay.
Pitch sequencer length
Same control as on the SQUARES tab, surfaced here too.
Loop length
Per-channel override.

SOUNDS tab

Parameters for the selected channel's synth and sampler voice, plus the output route. Detail in § Sound Engines.

Output
MIDI Output · Internal Synth · Sampler. Per channel.
MIDI Channel
Only shown when output is MIDI.

Sound Engines

Three possible routes per channel. Pick one on the SOUNDS tab.

MIDI Output

Forwards note events to the DAW on the channel's MIDI channel. Velocity scales to 1–127 from the square's height. Note numbers snap to the active scale after pitch-sequencer offsets are applied.

Internal Bass Synth

A focused monophonic voice with a classic subtractive signal chain.

Oscillator  ─▶  Pitch Envelope  ─▶  Filter  ─▶  Distortion  ─▶  Amp ADSR  ─▶  Output
(sin/tri/saw/sq/noise)       (cutoff + env)                     (A D S R)

Oscillator — 5 waveforms

Sine · Triangle · Saw · Square · Noise. Each has its own 0–1 level fader — all five mix together, so you can run a sine + a bit of noise, or stack saw + square.

Pitch envelope

Attack 0–100 ms · Decay 1–2000 ms · Sustain 0–1 · Range ±48 semitones. A fast-decay pitch drop is the classic "808 thump"; a rising, slow-decay envelope gives a synth horn feel.

Amplitude ADSR

Attack 0–500 ms · Decay 1–2000 ms · Sustain 0–1 · Release 1–2000 ms. Drawable on the SOUNDS tab — click-edit the envelope curve directly.

Filter & distortion

Freq
Cutoff, 20 Hz – 20 kHz.
Res
Resonance, 0–1.
Fenv
Filter-envelope amount, −1 to +1 (up to 6 octaves of modulation, in either direction).
Drive
Distortion drive, 0–1.
Level
Output level 0–2 (200%).

Granular Sampler

Load a WAV or AIFF; the voice plays it back as a stream of grains.

Load
File chooser. Loads into the selected colour's sampler voice.
Speed
0.0 (freeze) → 2.0 (double-speed). Does not affect pitch.
Grain
Grain size, 10–500 ms.
Decay
Grain window decay, 0 (hard, buzzy) → 1 (smooth, sustained).
Pitch
±24 semitones, independent of speed.
Drive
Distortion on the output, 0–1.
Level
Output 0–2.
Mode
Grain-read strategy — see below.

Playback modes

Steady
Grains read sequentially from the current position. The closest to a "normal" time-stretched playback.
Random
Grains pull from random positions in the sample on every window. Good for clouds and textures.
Scatter
Grains scatter slightly around the current position. A hybrid — keeps the sense of progression with texture around it.

The Pitch Sequencer

Every colour channel has a continuous pitch-offset waveform drawn on its own loop. Notes triggered on that colour are transposed by whatever value the waveform holds at the moment of the note-on.

How it works

  1. Switch to the PITCH tab on the right panel.
  2. The sequencing plane shows the channel's pitch-sequencer overlay — draw a curve.
  3. Set the pitch sequencer loop length — it can be different from the main loop length. Say the main loop is 4 bars but the pitch loop is 3 bars. The pattern now sounds different every main-loop repeat for 12 bars before the two align again.
  4. Switch back to SQUARES and keep drawing — every note you trigger picks up the pitch offset at its start time.

What it's good for

  • Arpeggio colour — a square on its own is flat, with a pitch waveform behind it it becomes musical.
  • Built-in modulation without touching host automation.
  • Polyrhythmic pitch change: run a 7-bar pitch loop over a 16-bar square pattern for long, evolving harmony.
Pitch vs scale The pitch sequencer adds offsets before scale snapping. So a chromatic waveform gets quantised back into the current scale — you still can't play "wrong" notes, but you hear every available colour of the scale.

Scales & Scale Sequencer

Every note — synth, sampler, or MIDI — is snapped to the active scale. You can set it manually below the plane, or chain scale changes across time with the scale sequencer.

Manual scale

Two dropdowns under the plane: Root (C through B) and Scale (16 options):

  • Chromatic, Major, Natural Minor, Harmonic Minor, Melodic Minor
  • Pentatonic Major, Pentatonic Minor, Blues
  • Dorian, Phrygian, Lydian, Mixolydian, Locrian
  • Whole Tone, Diminished H-W, Diminished W-H

Scale sequencer

Horizontal timeline in the top bar. Chain up to 16 segments; each has a root, a scale, and a length in bars (1–16).

  • Add — click + to insert.
  • Edit — click a segment to open its popup (touchpad editor with root and scale grids).
  • Resize — drag a segment's right edge.
  • Delete× in the segment popup.
  • Playhead — sweeps across; the active segment highlights, and SQUARES re-harmonises in real time.

Segment palette

01
02
03
04
05
06
07
08

Eight muted cool tones so segments never overpower the colour-channel visuals.

Loop Lengths & Play Modes

Loop lengths

The Loop Length Selector below the plane covers a wide range:

  • Steps — 1 to 15 steps (1/16 bar each).
  • Bars — 1 to 8 bars.
  • Long — 16, 32, 64 bars.

Each channel can override the global value via its SQUARES tab. Different per-colour lengths is the fastest way to a polyrhythm. Hit Sync All to reset all channels back to the global value.

Play modes

--> Forward
Default. Left to right.
<-- Backward
Right to left. Everything reverses, including retriggers.
<--> Pendulum
Forward then backward then forward — reflects at the loop edges.
--?> Probability
Random step jumps. See below.

Probability mode

Selecting Probability reveals an XY pad on the right side of the top bar:

X — step jump size
How far the playhead jumps when a jump happens. Musical divisions: 1 · 2 · 4 (1 beat) · 8 · 16 (1 bar) steps.
Y — probability
0–1. The chance, at each step, of jumping instead of advancing normally.

Low probability + short jump = gentle variation. High probability + long jump = stutter/teleport.

Presets & Settings

Presets

The preset ComboBox on the top bar saves and recalls the entire pattern state — squares, per-colour config, synth and sampler parameters, pitch sequencers, scale sequencer, play mode, loop lengths. Save and Delete buttons sit beside it.

Settings

Opens a dialog with:

  • Visualisation — opacity, 3D intensity, bloom, rotation speed for the background.
  • Theme — colour palette and per-channel hue options.

Theme and visualisation preferences are stored in %APPDATA%/SQUARES/settings.xml — isolated from the preset system so your visual preferences persist across preset swaps.

State persistence

Full plugin state saves with the DAW project. In standalone, state saves with the host's session mechanism.

Workflows & Recipes

Recipe 1 · A bassline in thirty seconds

  1. Pick RED. Switch to SOUNDS → Internal Synth. Set oscillator to Square + a little Triangle.
  2. Amp ADSR: short attack, medium decay, no sustain, short release.
  3. Cut the filter down to ~400 Hz; turn Fenv up to 0.7 for a pluck.
  4. Draw four narrow short squares at the bottom of the plane, evenly spaced. That's your root-note bassline.

Recipe 2 · Layer a melody in a second colour

  1. Pick GREEN. Set its pitch range up 2 octaves from RED.
  2. Draw taller, wider squares higher up for a sustained melody.
  3. On the PITCH tab, draw a slow rising-and-falling curve. GREEN's melody now gently modulates between scale tones.

Recipe 3 · Polyrhythm in one step

  1. RED loop = 4 bars. GREEN loop = 3 bars. BLUE loop = 5 steps.
  2. Set the global loop length to the longest (5 bars or 16 bars, say).
  3. Hit play. Three channels, three periodicities — evolves for ages.

Recipe 4 · Scale progression without rewriting

  1. Build a pattern you like in C Major.
  2. On the scale-sequencer timeline, add segments for C Maj · 2 bars, A Min · 2 bars, F Maj · 2 bars, G Maj · 2 bars.
  3. The same squares now play through a four-chord progression, snapping to each scale in turn.

Recipe 5 · Granular bed

  1. BLUE → Sampler. Load an ambient recording or pad.
  2. Speed 0.3, Grain 250 ms, Decay 0.8, Mode Random.
  3. Draw one wide, medium-tall BLUE square covering most of the bar — the sampler runs continuously as a generative pad.

Recipe 6 · Controlled chaos

  1. Write a dense pattern across all four channels.
  2. Switch play mode to Probability. Set X to 4 steps, Y to 0.25.
  3. 25% of the time the playhead jumps a beat — just enough to scramble the pattern without losing it.

Recipe 7 · Multi-instrument ensemble via MIDI

  1. Set each colour's output to MIDI Output, each on its own MIDI channel (1, 2, 3, 4).
  2. In the DAW, route each MIDI channel to a different instrument track.
  3. Now SQUARES is a four-piece arranger driving four synths.

Tips & Troubleshooting

Tips

  • Keep each colour to a role. Bass on RED, pad on BLUE, melody on GREEN, percussion via sampler on YELLOW. The visual-plane paradigm is clearer when colour = instrument.
  • Quantisation is a feel control. A tight 1/16 grid feels programmed; a loose 1/4 feels played. Try both on the same pattern.
  • Use short squares for staccato, wide squares for drones. Width is duration — not just a cosmetic size.
  • The PITCH tab is your secret weapon. A boring square pattern becomes musical when a pitch curve modulates it.
  • Scale sequencer = song structure. Build a 4-chord loop in the scale sequencer and you've got a verse-chorus engine on top of any pattern.
  • Pentatonic + Probability mode = instant improv. No wrong notes, unpredictable phrasing.

Troubleshooting

Nothing plays
Check: transport running, at least one square on the plane, the channel's output route (MIDI needs a receiver; Internal Synth and Sampler produce audio directly). Level faders on the SOUNDS tab not at zero.
Samples load but the sampler is silent
Sampler voice needs the channel's output route set to Sampler. Internal Synth and Sampler are both always active internally — only the routing determines what you hear.
Scale Sequencer running but key won't change manually
That's expected — the timeline is in charge. Turn it off or edit segments directly.
Two notes on the same colour collide
Channels are monophonic; overlapping squares retrigger the voice. Use a different colour for a parallel voice.
MIDI not reaching external synth (VST)
SQUARES needs to be on a MIDI-capable track (not just an instrument track) in your DAW, and the DAW's MIDI-routing must forward its output to the target track.
Visuals too intense
Settings → Visualisation. Lower opacity, bloom, 3D intensity, or turn off the visualisation entirely.
Standalone app runs, VST3 doesn't appear in Ableton (macOS)
A code-signing issue specific to Ableton. Re-sign with codesign --force --deep --sign - <path-to-plugin> after installation and rescan.

Control Reference

ControlLocationValuesNotes
Base NoteSQUARES tabC–BLowest note of the channel's range.
BPMTop bar20–300Host wins when plugin-hosted.
ClearSQUARES tabbuttonWipes all squares in current colour.
Colour selectorLeft panelRed · Green · Blue · YellowSelects active channel.
Decay (sampler)SOUNDS tab0–1Grain-window decay.
DriveSOUNDS tab0–1Distortion drive.
Envelope (ADSR)SOUNDS tabdrawableSynth amp envelope.
FenvSOUNDS tab−1 … +1Filter envelope amount.
FreqSOUNDS tab20 Hz – 20 kHzFilter cutoff.
GrainSOUNDS tab · sampler10–500 msGrain size.
LevelSOUNDS tab0–2Per-voice output level.
LoadSOUNDS tab · samplerfileWAV / AIFF.
Loop Length (global)Below planesteps · bars · longSync All resets overrides.
Loop Length (channel)SQUARES / PITCH taboverride0 = use global.
MIDI ChannelSQUARES / SOUNDS tab1–16MIDI-output route only.
Mode (sampler)SOUNDS tabSteady · Random · ScatterGrain-read strategy.
Octave RangeSQUARES tab1–5Channel pitch range.
Output RouteSOUNDS tabMIDI · Synth · SamplerPer colour.
Pitch (sampler)SOUNDS tab±24 semiIndependent of speed.
Pitch Sequencer LengthSQUARES / PITCH tabsteps · barsIndependent of main loop.
Play ModeTop barFWD · BWD · PEND · PROBPROB shows an XY pad.
PLAY / STOPTop bartoggleStandalone only.
PresetsTop bardropdown + save/delStores full state.
QuantizationSQUARES tab1/32 · 1/16 · 1/8 · 1/4 · 1/2 · 1 barTiming snap at playback.
ResSOUNDS tab0–1Filter resonance.
RootBelow planeC–BScale root.
ScaleBelow plane16 scalesDimmed when Scale Seq active.
Scale SequencerTop bartimelineClick + to add segments.
Speed (sampler)SOUNDS tab0.0–2.00 = freeze.
Sync AllBelow planebuttonReset per-channel loop overrides.
Time SignatureTop bar1–16 / 1, 2, 4, 8, 16Default 4/4.
Waveforms (synth)SOUNDS tabSine · Tri · Saw · Sq · NoiseMixed independently 0–1.