This is TouchPulsar

Pulsar synthesizer for the Synthux Touch synthesizer and Daisy Seed, based on Curtis Roads' Sound Composition with Pulsars (2001). A single control sweeps from rhythm to tone and back. Below about 20 Hz each pulsar is heard as its own beat; above about 40 Hz the beats fuse into a pitched tone with a formant you can sweep like a filter.

Synthux Simple Touch board with pad, knob, fader and switch labels

Quick Install

Firmware downloads are currently unavailable. If you already have a firmware file, flash it with the Daisy web programmer in Chrome or Edge:

  • Unplugged: hold BOOT while plugging in USB
  • Already powered: hold BOOT, tap RESET, release BOOT

Then Connect → DFU in FS Mode → choose the file → Program. To go back, flash any Synthux firmware the same way.

Controls

Pads

PadFunction
P00Octave Down (down to −3 octaves). In Chromatic: shifts the pads down 7 semitones (down to −35)
P01Convolution. Tap to turn on/off (2 blinks = on, 1 blink = off). Hold to record 2 s from the audio input as the new sample (fast flashing while recording, 3 blinks when captured)
P02Octave Up (up to +3 octaves). In Chromatic: shifts the pads up 7 semitones (up to +35)
P03…P09Note pads (mono, last-note priority). What they play depends on the Range switch:
  • TONE: notes of the current scale, from C2
  • FREE: the formant note (the fader sets the pulse rate)
  • RHYTHM: note values at the current tempo (1/4, 1/8, 1/8T, 1/16, 1/16Q, 1/16T, 1/32)
P10 (TO)Tap tempo & Modifier:
  • Tap P10 in rhythm to set the tempo (40–240 BPM); the LED flashes on every tap. Tapping, the nudge below, or MIDI clock are the only ways to set tempo
  • Hold P10 + P00: Tempo down (−5 BPM)
  • Hold P10 + P02: Tempo up (+5 BPM)
  • Hold P10 + P03…P09: set the root key to that pad's current note (the scale type stays)
  • Hold P10 + any knob or fader: second layer (see Knobs and Faders)
P11 (CH)Modifier. Hold for scale and formant mode:
  • P11 + P00: Previous scale (cycles through all 7 scales)
  • P11 + P02: Next scale (cycles through all 7 scales)
  • P11 + P03…P09: Direct scale select (P03: Chromatic, P04: Major, P05: Natural Minor, P06: Minor Pentatonic, P07: Major Pentatonic, P08: Dorian, P09: Harmonic Minor)
  • P11 + P01: Formant Coupled / Free toggle (2 blinks = coupled, 1 blink = free)
  • P11 + right fader (S37): Filter cutoff (30 Hz–18 kHz; fully up = open)
  • P11 + left fader (S36): Filter resonance
  • P11 + S31: Delay time (synced: 1/16 … 1/2, default 1/8 dotted)
  • P11 + S32: Delay amount (mix + feedback; fully left = off)
  • P11 + S30: Formant motion: each formant drifts around the stereo field at its own speed (fully left = still, up to ~3 Hz)
  • P11 + S33: Attack: 4 ms (fully left, default) to 3 s, for slow swells. Pairs with Release (P10 + S34)
  • P11 + S34: Lift (tuning; works as-is at noon, may be reassigned later): pressure look-back window, noon = 0.15 s (0.03–0.75 s). Longer hides slower finger lifts but responds later to softening
  • P11 + S35: Input gain (−12 to +12 dB, centre = 0 dB) for the live input; while P11 is held the LED shows the input level
P10 + P11
  • Quick tap both: Hold (latch) on / off. The last note keeps sounding hands-free (2 blinks = on, 1 blink = off)
  • Hold both for ~1.5 s: Recalibrate the touch pad baselines (3 rapid blinks)

Knobs (clockwise)

KnobMainHold TO
S30Spread: fades in formants 2 and 3 above the main formant (fully left = single formant)Width: stereo spread of the formants · Hold CH: Motion
S31Formant: the resonant peak. Coupled: 1×–32× the pitch. Free: 50 Hz–6.4 kHzPush: how far pad pressure raises the formant, up to +2 octaves · Hold CH: Delay time
S32Cluster: 1 to 7 cycles of the waveform in each pulsaret: longer, more focused burstsEdge: left half: cut each pulsaret at the next pulse with a 0–6 ms crossfade · right half: let pulsarets overlap · Hold CH: Delay amount
S33Shape: pulsaret waveform, morphing: sine · triangle · saw · square · pulse · vela · noise · live input (fully right)Fold: wavefolder · Hold CH: Attack (4 ms–3 s)
S34Window: pulsaret envelope, morphing: gauss · FOF · exp decay · linear decay · rectangle · linear attack · exp attackRelease: 20 ms–4 s · Hold CH: Lift (tuning, noon = 0.15 s)
S35Mask: removes pulsars from the train. BURST/CHANNEL: burst ratio from 1:0 (no masking) to 1:6 · STOCH: chance each pulsar plays, 100% → 3%Conv: convolution mix · Hold CH: Input gain

Faders

FaderMainHold TOHold CH
S36 (left)Level: output volumeDrive: warm saturationResonance
S37 (right)Thick / Fund / Glide, depending on the Range switch
  • TONE: Thick. Bottom = a single clean train. Pushing up brings in a slightly detuned second train (3 to 25 cents) that beats against the first and spreads the two left/right. Above 60% a sub-octave sine adds weight
  • FREE: the pulse rate itself, 0.25 Hz–2 kHz. Slide it slowly from bottom to top to hear rhythm turn into tone
  • RHYTHM: glide between note values (up to 4 s), for accelerando and ritardando
Chorus / Ensemble: lower half chorus, upper half ensembleCutoff: 30 Hz–18 kHz, fully up = open

Switches

Left Switch — Range
  • Up: TONE (pads play scale notes; formant can follow the pitch)
  • Center: FREE (fader sets the pulse rate; pads play the formant)
  • Down: RHYTHM (pads pick note values at the tempo; formant is always free)
Right Switch — Masking
  • Up: Burst (b pulsars on, r off, repeating; at audio rates this adds subharmonics)
  • Center: Channel (bursts go left, rests go right: a stereo ping-pong dialog)
  • Down: Stochastic (random dropouts; around 80–90% gives an "analog" intermittency)

Pulsar Synthesis & Expression

Scales

Hold P11 (CH) and tap a note pad to jump directly to a scale, or use P00 / P02 to cycle. Hold P10 (TO) and tap a note pad to move the root (shown here in C).

PadScaleNotes (root C)
P03Chromatic: all semitones; P00/P02 shift by 7 so you can reach every noteC2 C#2 D2 D#2 E2 F2 F#2
P04Major: diatonic majorC2 D2 E2 F2 G2 A2 B2
P05Natural Minor: diatonic minorC2 D2 Eb2 F2 G2 Ab2 Bb2
P06Minor Pentatonic: blues & folkC2 Eb2 F2 G2 Bb2 C3 Eb3
P07Major Pentatonic: bright & openC2 D2 E2 G2 A2 C3 D3
P08Dorian: minor with a raised sixthC2 D2 Eb2 F2 G2 A2 Bb2
P09Harmonic Minor: minor with a raised seventhC2 D2 Eb2 F2 G2 Ab2 B2

LED Indicator

The onboard LED provides visual feedback:

MIDI

TouchPulsar appears as a USB MIDI device (listed as PulsarTouch in your computer or DAW) when connected via the Daisy Seed's USB port. It listens on all MIDI channels.

CC Map

CCControlCCControl
1Mod wheel → Formant (up to +3 octaves)78Width (TO + S30)
5S37 Thick / Fund / Glide79Push (TO + S31)
7S36 Level80Edge (TO + S32)
64Sustain81Fold (TO + S33)
71S32 Cluster82Conv (TO + S35)
72Release (TO + S34)83Drive (TO + S36)
74S31 Formant84Chorus / Ensemble (TO + S37)
75S33 Shape85S35 Mask
76S34 Window86Left switch Range (0–42 TONE, 43–85 FREE, 86–127 RHYTHM)
77S30 Spread87Right switch Masking (0–42 BURST, 43–85 CHANNEL, 86–127 STOCH)
120, 123All Notes Off88Pitch Bend Range (semitones)
102Filter Cutoff (CH + S37)103Filter Resonance (CH + S36)
104Input Gain (CH + S35)105Formant Motion (CH + S30)
106Lift window (CH + S34)107Attack (CH + S33)
108Delay Time (CH + S31)109Delay Amount (CH + S32)
89Root from MIDI (≥ 64 on: the lowest held note sets the root key; off by default)

Soft Takeover: A value set via MIDI CC is kept until the corresponding knob or fader is moved; from then on the physical control takes over again.

Project Structure

PulsarTouch/
├── PulsarTouch.cpp      # Main application entry point
├── Makefile             # Build configuration
├── common/              # Utilities
├── pulsar/              # Instrument core: pulsar engine + controls (platform-free)
├── touch/               # Simple Touch wrapper (pads, knobs, switches) from TouchString
├── ui/                  # UI connecting instrument core with touch wrapper, MIDI, LED
└── test/                # Host test: control checks + comparison with the browser engine

Project Setup

Needs the Daisy toolchain. libDaisy is a git submodule in daisy/lib/libDaisy (Synthux's fork, pinned to the version TouchString uses); DaisySP isn't needed. With a local source checkout and its submodules available, build from daisy/:

$ cd TouchPulsar/daisy
$ make libs -j8
$ make clean; make -j8
$ make program-dfu

Credits