PartialString – A finite-difference time-domain physical modelling synthesiser

shmeano1 pts0 comments

PartialString — a free physically modelled string synthesiser | Different Instruments

Different Instruments presents...

PartialString

A finite-difference time-domain physical modelling synthesiser.

AU · VST3 — macOS · Windows · Linux

Download<br>Method

+u<br>−u

Fig. 1 — Displacement u(x,&thinsp;t) of a plucked string.<br>▾&thinsp;plectrum, ●&thinsp;pickup.<br>Click the string to pluck it somewhere else.

Method

1Model

PartialString simulates the vibration of a plucked string by numerically solving the<br>one-dimensional wave equation in real time using the finite-difference time-domain (FDTD) method.<br>The string is represented as a list of displacements in memory. A lower note requires a longer string,<br>which needs more points to represent it. You can then excite the string at any point along its length,<br>and the FDTD scheme will compute how that change in displacement propagates. A pickup measures the<br>displacement at a chosen location, and this generates the audio output.<br>10-voice polyphony is supported (up to 10 simultaneous strings), but this is dynamically adjusted<br>based on your computer's capability and the lengths of the string being simulated (see Section 3. Performance).

Fig. 2 — The PartialString interface.

2Controls

You can set the position and shape of the excitation, both velocity-sensitive. An LFO can sweep<br>the pickup position, up to audio rate for AM-like sidebands. The string's decay time is adjustable,<br>with or without dampers applied. The dampers can behave like a piano's, closing when a note ends.<br>Combined with a long undamped decay, this makes pad-like sounds. Reducing the simulation accuracy<br>generates unrealistic, soft and inharmonic sounds. Accuracy can be set constant for all notes, or<br>proportional to string length (which can help prevent CPU overload on less-capable machines).

Your browser can’t play embedded video —<br>download the clip instead.

Fig. 3 — Thirty second demo of PartialString.<br>Also on YouTube.

3Performance

Simultaneously simulating many low notes (long strings) accurately is quite computationally intensive.<br>On less capable computers, PartialString will automatically limit the number of sounding voices to prevent CPU overload,<br>and this is indicated on the UI. You may notice that the synth behaves monophonically in low registers.

There is an option to prevent too-low notes (those estimated to cause overload on your machine even when played<br>monophonically) from sounding, or to automatically pitch them up an octave or two to maintain performance. This<br>option only takes effect when the synth is being used in real-time (i.e. not when your DAW is bouncing or freezing<br>tracks).

On Apple Silicon Macs (M-series), running an Intel-based DAW forces the plugin to run through the Rosetta 2<br>translation layer, which can significantly reduce CPU performance. For the best results, ensure you install<br>and run an Apple Silicon native (or 'Universal') version of your DAW.

Download

PartialString v1.0.3 — free, or pay what you want.

macOS<br>AU · VST3<br>macOS 10.13+, Intel & Apple Silicon<br>Download

Windows<br>VST3<br>Windows 10 or later, 64-bit<br>Download

Linux<br>VST3<br>x86-64<br>Download

VST is a registered trademark of Steinberg Media Technologies GmbH.<br>Audio Units is a technology of Apple Inc.

About

Different Instruments is a solo side-project I've been (very occasionally) working on since releasing<br>gostringsynth in 2022. Back in 2009, I finished my MSc at the University of Edinburgh,<br>supervised by Stefan Bilbao, during which I investigated finite-difference models for musical applications.<br>This is an attempt to revive that work now that personal computers have suitable computational ability.<br>By day, I work as a biomedical engineer, developing technologies for ultrasonics, optics and photoacoustics.

- Christian Baker, July 2026.

string thinsp partialstring time download finite

Related Articles