Skip to content
Tech News
← Back to articles

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

read original more articles
Why This Matters

PartialString introduces a real-time physical modeling synthesizer that accurately simulates plucked string vibrations using finite-difference time-domain methods. Its flexible controls and polyphony support enable nuanced sound design, making it a significant advancement for digital instrument development. This innovation benefits both consumers seeking realistic string sounds and the industry pushing towards more authentic, computationally efficient synthesis techniques.

Key Takeaways

Method

1 Model

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

Fig. 2 — The PartialString interface.

2 Controls

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

Your browser can’t play embedded video — download the clip instead. Fig. 3 — Thirty second demo of PartialString. Also on YouTube.

3 Performance

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

... continue reading