VIOLINCE
A touchscreen-optimised, physically-modelled bowed string instrument. Touch the performance surface to bow virtual strings — digital-waveguide synthesis with smooth STK/MWS friction, shared body convolution against a measured Stradivarius IR, sympathetic open-string resonance, 15 independent voices, and GPU-accelerated particle visualisation.
Overview
VIOLINCE isn't a sample player. It's a physical model — a mathematical simulation of a bowed string and its instrument body. You don't press keys; you touch a playing surface, and the position and speed of your touch become the bow. Three fingers, three independent strings.
What it is
- Physical string modelling — two-rail digital waveguide with a smooth STK/MWS friction curve. Helmholtz motion emerges from the bow physics rather than from explicit stick/slip branching.
- Measured-IR body convolution — the summed voice bus runs through a real Stradivarius bridge impulse response. Shared across all voices (one body, like the real instrument).
- Sympathetic resonance — four lightly-damped open-string resonators (G3/D4/A4/E5) ring along with the played note, adding a faint pitched halo.
- 3-finger multitouch — each finger bows its own string at full independence. Horizontal position picks pitch, vertical position controls bow contact point (sul ponticello ↔ sul tasto), vertical motion drives bow speed.
- 6 instrument voicings — each convolves through a real measured IR from the matching instrument family: Stradivarius for violin, Farina viola for viola, pe_mace cello for cello, Italian double bass for bass.
- Bow and pizzicato excitation modes. Continuous sustained bowing, or plucked attacks.
- 15 voices total: 3 live plus 12 more that host the event loop recordings.
- Event loops — four loops that record gestures (touch position, bow speed, timing) and play them back through the same physical model. Change the scale and your loops re-harmonise.
- Scale sequencer — 17 scales, bar-locked key changes on a timeline.
- Built-in reverb, FFT spectrum display, 5000-particle GPU visualisation with bloom.
- 14 factory presets — six instrument voicings, six tonal variations, plus two showcase presets that highlight the gestural Y→β travel.
Quick Start
- Load VIOLINCE on an instrument track (or run standalone).
- Leave the instrument selector on Glaesel Violin Classic — a clean starting point.
- Touch the central performance surface and sweep your finger vertically. The column you touch picks the note; the speed of your sweep is the bow speed.
- Now slide your finger up and down the strip while bowing. Listen to the timbre shift — bowing near the bottom is bright/scratchy (sul ponticello), near the top is breathy/airy (sul tasto). Watch the live PONT↔TASTO indicator under the BOW section reflect your finger position.
- Keep the finger down, sweep slower and faster — hear the attack soften and strengthen.
- Add a second finger on a different column. You now have two voices playing simultaneously.
- On the right panel SOUND tab, pull the Vibrato Rate × Depth XY pad towards the middle — vibrato appears in the sound. Watch the live numeric readout while dragging.
- At the bottom, tap REC on Loop 1 and play a phrase. Tap REC again to close the loop — it plays back while you keep performing.
The Interface
A top bar, two side panels, a central performance surface, a scale-sequencer timeline, and an effects strip along the bottom.
Top bar
- PLAY / STOP
- Standalone transport (host transport wins when plugin-hosted).
- Tempo
- 30–300 BPM.
- MIDI OUT
- Routes string events, bow-speed CC1, expression CC11, and pitch-bend to a MIDI destination.
- Presets
- Opens the preset browser: 14 factory presets + your saves, organised into folders. Tap a preset to load it (marked
LOADED),+ SAVEinto the selected folder, drag a preset onto a folder to move it, pencil / trash on the selected row to rename or delete (double-click a name also renames). The</>steppers beside it thumb through presets without opening the browser.
Left panel — Instrument & Scale
- Instrument — six voicings (see § Instrument Voicings).
- Scale — 17 options. Root C through B. Octave −2 to +2.
- Key Range — how many semitones the width of the surface covers:
6 · 12 · 24 · 36 · 48 · 60. Larger ranges pack more notes per centimetre. - Scale Seq toggle — when on, the timeline drives the key.
- Readouts — live bow X position, bow speed, current note name.
Right panel — Tabbed
- SOUND — all the expressive controls (bow, pizzicato, string, vibrato, slide, polyphonic mode).
- VISUALS — particle/FFT/autocorrelation toggles and intensities.
The right panel can be hidden for a fullscreen performance view.
Bottom — Effects & Loop strip
Five reverb controls on the left; four loop pads (REC + controls) on the right. Full detail in § Event Loops and § Reverb & Output.
The Performance Surface
The central playing area. Columns are notes; vertical motion is bow action. Three fingers can play at once.
What each axis does
- X (horizontal)
- Picks the pitch. Columns are notes in the active scale; root notes are visibly brighter (amber by default); in-scale notes use the scale highlight colour (blue-teal by default).
- Y (vertical)
- Two roles at once. Y position drives bow contact point β — bottom of strip = sul ponticello (near bridge — scratchy, harmonic-rich, bright), top = sul tasto (over fingerboard — breathy, soft, airy); the live PONT↔TASTO indicator below the BOW XY pad reflects this in real time. Y velocity (how fast you're moving) drives bow speed — a faster sweep = more bow energy = louder, more focused tone; a slower sweep = quieter, breathier.
- Touch down / up
- Note-on / note-off. Note-off isn't abrupt — the string continues to ring down through its sustain and the reverb tail.
- Direction change
- The model detects when you reverse vertical direction; the smooth friction curve naturally produces a small attack transient (no synthetic rosin noise overlay).
Three fingers, three strings
When more than one finger is down, each finger is assigned its own string. All three can play simultaneously — drones, chords, or counterpoint.
When a single finger is down and Polyphonic is set to Sometimes, a crossover logic rule decides when to hand off to a new string. This gives a smooth, single-line lead feel, like a real violinist moving up the fingerboard. Set to Always for classical-style polyphony.
Instrument Voicings
Each voicing sets the brightness, decay, root note, and — most importantly — which body impulse response feeds the shared body convolver. All four voicing groups use real measured IRs from the corresponding instrument family: Stradivarius for violins, Farina viola for violas, pe_mace cello for cello, Italian double bass for bass. See § Body & Tone Engine for details and provenance.
Glaesel Violin
E4 · VIOLINTseng Violin
E4 · VIOLINKnilling Viola
C4 · VIOLAHutchins Viola
C4 · VIOLAEastman Cello
A2 · CELLOEastman Bass
E1 · DOUBLE BASSEach voicing sets a recommended default root note — changing the instrument doesn't change the scale you've picked, but it does reorient the "natural" pitch range.
Bow & Pizzicato
Two excitation models. Bow is continuous; pizzicato is impulsive. Switch between them with the Pizz toggle on the SOUND tab.
Bow mode
A two-rail digital waveguide with a smooth STK/MWS friction curve. Your finger's vertical motion drives bow speed, and its vertical position drives bow contact point β — see § The Performance Surface. The XY pad on the right panel sets the per-preset bow character:
- Grit (XY · X)
- Friction curve sharpness.
0= gentle/organic — the string locks into Helmholtz easily, sustain is smooth, attacks are soft.1= steep/scratchy — transients are sharper and more expressive but the string is harder to keep stable. Mid is most like a competent player. (This control was previously called Stability and had inverted semantics; it's now a direct sonic descriptor.) - Pressure (XY · Y)
- Bow grip strength.
0= light touch.1= heavy drag. Too much and the string skreeks; the right amount gives full-bodied tone. Touch surfaces don't sense pressure, so this is a per-preset character setting.
Pizzicato mode
Turn Pizzicato On to switch from continuous bowing to plucked attacks. Each finger-down fires a pluck instead of starting a bow.
- Level
0–1. Amplitude of the pluck impulse.- Tone
0warm and soft;1bright and sharp.- Decay
0–1. How long the pluck's initial envelope lasts. Short = staccato snap; long = sustained pluck.
Vibrato
A per-voice LFO with its own XY pad:
- Rate (X)
0.5–10 Hz.- Depth (Y)
0–100 cents. Half a semitone at full depth.
5–6 Hz. Start there and scale from taste.
Sound Shaping
Controls shared between bow and pizzicato modes. These shape the string itself and the instrument body, rather than the excitation.
- String Tone
−1 … +1. A brightness offset on top of whatever the instrument voicing gave you. Negative = darker; positive = brighter.- Body
0–1. How much of the measured body convolution sits in the output.0= dry voice bus, almost sine-like.1= full wooden body radiation. See § Body & Tone Engine for what's actually being convolved.- Sustain
0–1. String-decay time.0= short, responsive notes.1= long-singing sustained tone.- Drift
0–1. Organic pitch instability — pink-noise pitch jitter. At default values around0.2you get ~±3 centsof natural drift; at1.0it's ~±15 cents(audible wobble). Subtle amounts add lifelike imperfection; large amounts make the strings sound detuned.- Sympathy
0–1. Open-string sympathetic resonance amount. The four open violin pitches (G3/D4/A4/E5) ring along with whatever you play, fed from the bus through lightly-damped resonators. Most audible on sustained tones; nearly inaudible on staccato.0.30is a sensible default; the Singing Cello preset goes to0.50for a more chordal halo.- Slide
0–2000 ms(default0= off). Portamento time between successive notes on the same string.0snaps instantly; raise it for an audible glide. It's an optional flourish — every factory preset leaves it off, so dial it in per patch when you want it.- Polyphonic
- Always — every finger is a voice. Sometimes — single-finger uses crossover logic to feel like a single violinist's hand.
Signal chain summary
Touch ─▶ Slide ─▶ Vibrato LFO ─▶ Pink-noise drift
│
▼
Bow Model or Pizzicato Model
│
▼
String Model (per-voice)
Two-rail waveguide + smooth MWS
friction · Y-driven β contact pt
│
▼ (sum of all 15 voices →)
Sympathetic Bank
(4 open-string resonators)
│
▼
Body Convolver (shared)
Measured Strad / Cello bridge IR
│
▼
Reverb
│
▼
tanh soft limiter ─▶ Out
The body convolution and sympathetic bank are shared across all voices — physically correct, since on a real instrument the body and open strings are one set of objects coupled through a shared bridge.
Body & Tone Engine
The most distinctive thing about Violince's tone is the shared body convolver. Instead of giving each voice its own synthesised formant body — which produces a thin, "plasticky" sound and is physically wrong (every string on a real violin shares one wooden body) — Violince sums all voices into a single bus and convolves once against a measured impulse response.
Per-voicing IR map
Selecting an instrument from the LeftPanel changes which IR feeds the body convolver. All four voicing groups now use real measured IRs.
| Voicing | Source IR | Provenance |
|---|---|---|
| Glaesel / Tseng Violin | Stradivarius | Measured bridge IR (deconvolved swept sine, 48 kHz stereo, 0.4 s) |
| Knilling / Hutchins Viola | Farina viola (1995) | MLS-technique measurement, public domain, 43.956 kHz mono, 0.37 s |
| Eastman Cello | pe_mace cello (CC0) | Measured bridge IR via piezo + sweep, EQ-corrected, 48 kHz stereo, 1 s |
| Eastman Bass | Italian double bass | Measured body, 48 kHz mono, 0.18 s, take "b" of three for densest modal energy |
The body radiation per voicing is now physically distinct — different mode shapes, not just different frequency ranges. A viola sounds viola-shaped, a cello sounds cello-shaped, a bass sounds bass-shaped, because each voicing convolves through a real recording of the corresponding instrument's wood.
Future IR upgrades (optional)
The current IRs are all production-quality but each has room for improvement if you want to invest:
- Viola: Farina's IR is a 1995 single-take measurement using older MLS technique. A modern multi-take swept-sine measurement (e.g. impulse-responses.com viola pack, ~€12) would give finer detail and more variety.
- Cello: pe_mace's IR is hobbyist-grade but works well. Premium alternative: impulse-responses.com French / German cello variants (~€12 each, two distinct character options).
- Bass: the current "b" take is short (0.18 s); takes "a" or "c" from the same pack offer different transient/sustain trade-offs and can be swapped in with a one-line edit.
- Per-preset variants: today each instrument index gets one IR; extending to per-preset (e.g. a "Glaesel" violin preset using one IR, a "Tseng" violin preset using another) would require adding an IR-index parameter to the preset state.
The wiring for adding any new IR lives in Source/DSP/BodyConvolver.{h,cpp} and CMakeLists.txt — see the developer notes in CLAUDE.md for the template.
Sympathetic resonance
The four open-string pitches (G3, D4, A4, E5) ring along with whatever you play. This is modelled by a parallel bank of four lightly-damped Karplus-Strong resonators, fed from the bus pre-body and mixed back additively. The Sympathy knob controls the amount.
Real violins do this acoustically — bowing the A string vibrates the bridge, which couples energy into the other three strings. They each ring at their own natural frequency, adding a faint pitched halo around the played note. Most audible on sustained tones near the open-string pitches (G/D/A/E or octaves thereof).
Friction & string model
The bowed string is modelled as a two-rail digital waveguide. The bow-string interaction uses the smooth STK/MWS friction curve μ(Δv) = 1/(slope·(|Δv| + ε) + 0.75)⁴, clamped to ≤0.98. There's no explicit stick/slip detection — Helmholtz motion emerges from the curve's shape, which means slow→fast bowing transitions feel continuous rather than switchy.
The Grit parameter shapes the friction curve's slope: low Grit = gentler curve (organic, easy lock-in), high Grit = sharper curve (scratchier, more expressive transients).
The pluck (pizzicato) path is a separate Karplus-Strong delay line with a half-sine impulse burst — kept simple and untouched because it sounds right at this design point.
Scales & Scale Sequencer
The surface's columns are scale notes. Change the scale and the columns remap. Loops are gesture-based, so they re-harmonise automatically too.
Manual scale
- On the left panel, pick a Scale (17 choices) and a Root.
- Pick an Octave offset and a Key Range (how wide the surface spans in semitones).
Seventeen scales available: Chromatic · Major · Minor · Dorian · Phrygian · Lydian · Mixolydian · Locrian · Pentatonic · Blues · Harmonic Minor · Melodic Minor · Whole Tone · Diminished H-W · Diminished W-H · Pentatonic Minor · Arpeggio.
Scale sequencer
Toggle Scale Seq on the left panel. A timeline appears above the effects strip. Click + to add a segment, click a segment to edit.
- Each segment carries its own root, scale, and bar length (
1, 2, 3, 4, 6, 8, 12, 16bars). - Segments advance with transport. The active segment highlights; a flash hint marks the boundary.
- Edit popup has grid selectors for scale (4×5) and root (4×3), plus a mini-keyboard preview.
- Delete the active segment from its popup (when more than one exists).
Microtuning — Tuning Systems
Beyond 12-tone equal temperament, VIOLINCE can play in non-Western tuning systems — the true intonation of maqam, raga, and historical tunings, ideal for a fretless bowed instrument that already slides freely between pitches. A tuning system is global: it sets how many pitches divide the octave and their exact frequencies, applied to everything you bow. The scale/segment chooses which of those pitches form the current mode.
Choosing a system — tap the TUNING ▾ chip on the bottom scale strip. Eleven systems ship:
| System | Divisions / octave | Character |
|---|---|---|
| Western 12-TET | 12 (equal) | The default — standard tuning, no retuning |
| Pythagorean | 12 | Pure fifths (3-limit) |
| Just Intonation | 12 | Pure thirds + fifths (5-limit) |
| Arabic 12-tone | 12 | Neutral 2nd / 3rd approximation |
| Chinese pentatonic | 12 (5 used) | Just pentatonic |
| Indian raga (12) | 12 | Just raga scales |
| Arabic maqam (24) | 24 (quarter-tones) | Rast · Bayati · Hijaz · Saba |
| Turkish makam (53) | 53 (Holdrian comma) | Rast · Uşşak · Hicaz |
| Indian 22-shruti | 22 (just) | Yaman · Bhairav · Kafi |
| Persian dastgah | 24 approx | Shur · Homayun · Mahur |
| Chinese 12-lü | 12 (Pythagorean) | Gong · Shang · Jue · Zhi · Yu |
When a non-Western system is active the strip's segments show N-division strips matching the system, and the surface's columns snap to the system's degrees.
How it sounds — the bowed strings glide to the exact tuned pitch (slide and vibrato ride on top, as always). MIDI Out carries the tuning automatically: VIOLINCE already streams continuous pitch bend tracking the string, so the microtuning rides that same bend — no extra setup. The active system is saved with the patch; Western 12-TET (default) leaves everything as before.
Event Loops
Four independent loops, each with its own REC, length, mode, and playback settings. Each loop has three voices — so four fully-used loops plus three live fingers means 15 simultaneous strings.
Two recording modes
- Audio
- Records the audio output of a source. Input Source selects what to record: Master (everything), Live (touch only), or one of the other loops. Plays back as straight audio — doesn't re-synthesise.
- Event
- Records gestures — touch position, bow speed, and timing. On playback, the gestures drive the synth engine through the same signal chain as live input. Scale changes, instrument swaps, and body tweaks all apply to the playback.
Per-loop controls
- Mode
- Audio / Event.
- Length
1–16bars.- REC (Armed)
- Tap to arm; next bar boundary starts recording. Tap again to commit and move to playback.
- Active
- Event mode — toggles whether this loop plays back. Leave it armed but inactive to solo another loop without losing yours.
- Pendulum
- Off = forward-only loop. On = ping-pong at each end. Elegant on slow gestures.
- CLR
- Erase the loop.
- Volume
0–1.- Input Source
- Audio mode. Master / Live / Loop 1 / Loop 2 / Loop 3 / Loop 4.
- Quantize
- Event mode.
Off · 1/4 · 1/8 · 1/16 · 1/32. Snaps recorded events to the beat grid.
Reverb & Output
The reverb lives on the master bus, after the loops. Its character shapes every voicing.
- Mix
0–1, default0.2. Dry/wet balance.- Size
0–1, default0.5. Virtual room size / decay time.- Pre-Delay
0–200 ms, default20 ms. Gap between direct sound and first reflections.- Damping
0–1, default0.3. High-frequency absorption. More damping = darker tail.- Width
0–1, default1.0. Stereo spread of the reverberant field.
Output
After reverb, a tanh soft limiter prevents clipping on heavy performances. The output is stereo.
Visuals, Themes & Presets
Visuals tab
- Visualisations
- Master toggle for every visual layer.
- Particles
- Toggle + count (500–5000) + bloom intensity (0–1). GPU particle field reactive to frequency content.
- Frequency
- Toggle + intensity (0–1). FFT-based spectrum display.
- Autocorrelation
- Toggle + opacity (0–1) + trail length (1–40 frames) + rotation (0–1) + scale (0–1). A pitch-tracking visual that draws organic curls.
Themes
Eight colour themes, all designed to remain accessible under colour-vision conditions. Change them from the Help/Settings dialog.
Factory presets
| Preset | Character |
|---|---|
| Glaesel Violin Classic | Clean neutral violin. |
| Tseng Violin Expressive | Darker violin with more vibrato. |
| Knilling Viola Warm | Warm, comfortable viola mid-range. |
| Hutchins Viola Blues | Bluesy viola with looser bowing and slide. |
| Eastman Cello Deep | Full-bodied cello, long sustain. |
| Eastman Bass Pizzicato | Plucked upright bass voicing. |
| Organic Violin | Drift-heavy, low Grit — very human. |
| Singing Cello | Long-sustain cello pad with rich Sympathy. |
| Wild Fiddle | High Grit, rosin-heavy attack. |
| Dark Drone | Deep drone with heavy body and damped reverb. |
| Bright Soloist | Forward-bow, bright tone, clear articulation. |
| Gentle Viola | Soft-attack viola with moderate reverb. |
| Bow Across | Showcase. Neutral character, made for sweeping up-down on the strip to hear sul tasto ↔ sul ponticello travel. |
| Ponticello Solo | Showcase. High pressure + Grit. Best played at the bottom of the strip for bridge-side scratch; slide up to soften. |
User presets save to %APPDATA%/Violince/Presets/. The Presets browser organises them into folders (+ FOLDER, drag a preset onto a folder to move it) — deleting a folder moves its presets up to the parent, so nothing is ever lost. The browser opens with the loaded preset revealed.
What's saved
Every APVTS parameter (60 of them), the scale sequencer timeline, the active colour theme, and the event-loop recordings.
MIDI I/O
VIOLINCE can listen to incoming MIDI and emit outgoing MIDI — the physical model is still what produces the sound, MIDI just drives the input.
MIDI in
- Note-on / note-off maps to bowing and releasing.
- CC1 (modulation) ↔ bow speed.
- CC11 (expression) ↔ expression.
- Pitch bend feeds the slide/vibrato processors.
MIDI out
Toggle MIDI Out on the top bar. When enabled, the plugin emits:
- Note-on / note-off events as you touch and release strings.
- CC1 driven by bow speed.
- CC11 for expression.
- Pitch bend from slide / vibrato state.
Use MIDI out to drive an external instrument with the plugin's touch model — for instance, play VIOLINCE and a hardware synth together, locked to the same gestures.
Workflows & Recipes
Recipe 1 · Expressive solo
- Load Glaesel Violin Classic.
- Bow Position ≈ 0.35 (close to bridge), Pressure ≈ 0.55. Stability 0.65.
- Vibrato rate
5.5 Hz, depth35 cents. - Slide 120 ms. Drift 0.15. Body 0.7.
- Play with long, slow strokes in B-Minor Pentatonic.
Recipe 2 · Drone bed
- Load Eastman Cello Deep.
- Sustain near maximum; Stability ~0.85 (steady).
- Press two fingers on the root and fifth of the scale, sweep very slowly.
- Arm Loop 1 in Event mode, capture 8 bars. Un-arm and let it play under.
- Take a third finger and improvise over the top.
Recipe 3 · Walking pizzicato bass
- Load Eastman Bass Pizzicato.
- Pizz Level ~0.75, Tone ~0.45, Decay ~0.3.
- Record an 8-bar event loop tapping a walking line across the lower half of the surface.
- Switch the instrument to Knilling Viola Warm — the same loop now plays walking viola instead of bass.
This is the event-loop magic: recordings are gestures, not samples.
Recipe 4 · Chord-progression pad
- Long sustained viola bowing into Loop 1, Event mode, 4 bars.
- Enable the scale sequencer. Build
C Maj → A Min → F Maj → G Maj, one bar each. - The 4-bar loop now re-harmonises through the four chords — the gesture stays, the harmony moves.
Recipe 5 · Texture from instability
- Stability → 0.1 (chaotic). Drift → 0.6. Body → 1.0. String Tone → +0.3.
- Very slow bowing motion — the sound sits between noise and tone.
- Throw on heavy reverb (Mix 0.6, Size 0.9, Damping 0.15). Ambient cinematic texture.
Recipe 6 · Layered gesture composition
- Loop 1 (Event, 4 bars, Pendulum): bass line.
- Loop 2 (Event, 4 bars): chord pad with two fingers.
- Loop 3 (Event, 3 bars): melodic counter-line. The mismatched length drifts over Loop 1/2.
- Loop 4 (Audio, 8 bars, Input Source = Master): captures everything including the reverb for an ambient texture bed.
- Play new phrases with live fingers on top.
Touch UX Gestures
Touch-first conveniences sprinkled across the panel. They aren't documented in tooltips (touch screens don't have hover), so they're listed here:
- Double-tap any control to reset to its preset default. Pill sliders, the Bow XY pad, the Vibrato XY pad, reverb knobs, visualisation sliders — all support it. Useful when you've nudged something while exploring and want to get back. Pull from the parameter's published default value.
- Live numeric readout while dragging an XY pad. Drop your finger on the bow or vibrato pad — small mono caps appear in the upper-right corner showing both axes' values, formatted with units (Hz, cents, etc.). Disappears on finger-up.
- PIZZ / POLY pillars. The two big pills at the top of the SOUND panel are mode pillars, not knob settings — sized larger because they redefine the instrument character. PIZZ swaps the bow excitation for plucked attacks; POLY toggles between true multitouch and crossover-driven single-line behaviour.
- Live β indicator. Below the BOW XY pad, a thin horizontal bar labelled
PONT ─•─ TASTOreflects your finger's current Y position on the fingerboard in real time. Bright when bowing, dimmed when idle. - Preset prev / next steppers. The
<and>buttons flanking the Presets button let you thumb-step through all 14 factory + user presets without opening the browser. Wraps around at the ends. - Right-panel scroll. Drag inside the right panel (away from controls) to scroll the SOUND or VISUALS tab if the layout doesn't fit your window height. The layout is tuned to fit a typical 800 px window without scrolling.
Tips & Troubleshooting
Tips
- Move slowly. The model rewards gesture. A steady horizontal slide with a gentle vertical oscillation sounds dramatically better than staccato taps.
- Grit around 0.20–0.50 feels most human. Too low (
< 0.10) is overly polished; too high (> 0.80) is scratchy. The default presets land in the sweet spot. - Small drift, small vibrato. Real players are never perfectly in tune — a little drift (
0.20–0.30) and a small vibrato depth (15–25 cents) are more believable than zero. - Use the Y axis as a timbre knob. Bowing at the bottom of the strip (sul ponticello) is intense and edgy; bowing at the top (sul tasto) is airy and soft. Try sustaining a note while sliding your finger up the strip — the timbre travels.
- Sympathy bigger on cellos than fiddles. The pe_mace cello body picks up sympathetic ring well; ramp Sympathy to
0.50on cello presets for a chordal halo. Wild Fiddle stays low (0.20) — you want the dirt direct. - Event loops transpose. Record once, swap scale / root / instrument, hear a new arrangement for free.
- Key Range shapes playing style. Small ranges reward melodic detail; wide ranges reward glissando and reach.
- Use Pendulum for ambient. A 4-bar pendulum event loop sounds longer and less repetitive than a forward 8-bar loop.
Troubleshooting
- No sound when touching
- You must be moving vertically — bow speed comes from vertical motion. A perfectly still finger bows nothing.
- Pizzicato doesn't trigger
- Enable
Pizzicato Onfirst. Level must be above zero. - Scale manual pickers are greyed out
- The scale sequencer is driving the key. Turn off
Scale Seqor edit the timeline segments instead. - Loop REC does nothing
- Transport must be running — recording starts on the next bar boundary. Also check the loop's
Activestate in Event mode. - The sound is harsh at high pressure
- Lower Pressure and lower Grit, or bow nearer the top of the strip (toward sul tasto). A real violin squeaks at max pressure too.
- Voicings sound the same
- On very early builds every voicing convolved through the same Stradivarius IR. Make sure you're on the current build (all four voicing groups should use distinct IR files in
Resources/: violin_strad, viola_farina, cello_pe_mace, bass_italian). - Glitchy stuttering under load
- Lower the particle count on the VISUALS tab. The physical model is cheap; the GPU visualisation is the heavier cost.
- Multitouch not working
- Single-finger mode with
Polyphonic: Sometimeshands off between strings via crossover. SetPolyphonic: Alwaysfor true multitouch.
Control Reference
Alphabetical index.
| Control | Location | Values | Notes |
|---|---|---|---|
| Bow Attack | (parameter only — UI hidden) | 0–1 | Force ramp on initial touch-down (5–80 ms). Saved presets still drive it. |
| Body | SOUND | 0–1 | Body convolver wet/dry mix. |
| Bow Position β | (driven by finger Y, no UI knob) | derived | Bottom of strip → sul ponticello, top → sul tasto. Live PONT↔TASTO indicator below the BOW XY pad. |
| Bow Pressure | SOUND · BOW XY (Y) | 0–1 | Bow grip strength. |
| BPM | Top bar | 30–300 | Host wins when plugin-hosted. |
| CLR (loop) | Loop strip | button | Erase recorded loop. |
| Drift | SOUND | 0–1 | Pink-noise pitch jitter (max ±15 cents at 1.0). |
| Grit | SOUND · BOW XY (X) | 0–1 | Friction curve sharpness. Smooth → scratchy. (Was "Bow Stability" with inverted semantics.) |
| Instrument | Left panel | 6 voicings | Selects per-voicing body IR (see § Body & Tone Engine). |
| Key Range | Left panel | 6 · 12 · 24 · 36 · 48 · 60 | Surface width in semitones. |
| Length (loop) | Loop strip | 1–16 bars | Per loop. |
| MIDI Out | Top bar | toggle | Emit notes + CC1 + CC11 + pitch bend. |
| Mode (loop) | Loop strip | Audio · Event | Recording type. |
| Octave | Left panel | −2 … +2 | Offset. |
| Pendulum (loop) | Loop strip | toggle | Ping-pong playback. |
| Pizzicato On | SOUND · pillar toggle | toggle | Switches to pluck mode. |
| Pizz Level | SOUND (pizz) | 0–1 | Pluck amplitude. |
| Pizz Tone | SOUND (pizz) | 0–1 | Warm ↔ sharp. |
| Pizz Decay | SOUND (pizz) | 0–1 | Pluck envelope length. |
| PLAY / STOP | Top bar | toggle | Standalone transport. |
| Polyphonic | SOUND · pillar toggle | Always · Sometimes | Crossover vs true multitouch. |
| Preset Prev / Next | Top bar | < / > | One-tap step through all presets. |
| Presets | Top bar | browser (folders) | 14 factory + user; tap = load, drag = move, per-row rename/delete. |
| Quantize (loop) | Loop strip · Event | Off · 1/4 · 1/8 · 1/16 · 1/32 | Grid snap for events. |
| REC (loop) | Loop strip | arm / record / play | Next-bar aligned. |
| Reverb Damping | Effects strip | 0–1 | HF absorption. |
| Reverb Mix | Effects strip | 0–1 | Dry/wet. |
| Reverb Pre-Delay | Effects strip | 0–200 ms | Direct → first reflections gap. |
| Reverb Size | Effects strip | 0–1 | Room size / decay. |
| Reverb Width | Effects strip | 0–1 | Stereo spread. |
| Root | Left panel | C–B | Scale root. |
| Scale | Left panel | 17 scales | Dimmed when Scale Seq active. |
| Scale Seq | Left panel | toggle | Enables timeline automation. |
| Slide | SOUND | 0–2000 ms | Portamento. 0 (default) = off. |
| String Tone | SOUND | −1 … +1 | Brightness offset. |
| Sustain | SOUND | 0–1 | String decay time. |
| Sympathy | SOUND | 0–1 | Open-string sympathetic resonance amount. |
| Tuning System | Scale strip chip | 11 systems | Global microtuning; default Western 12-TET. |
| Vibrato Rate | SOUND · VIBRATO XY (X) | 0.5–10 Hz | LFO frequency. |
| Vibrato Depth | SOUND · VIBRATO XY (Y) | 0–100 cents | Pitch modulation amount. |
| Volume (loop) | Loop strip | 0–1 | Per loop. |