Rendered at 20:32:38 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
gsliepen 11 hours ago [-]
The simplest form of string synthesis is perhaps the Karplus-Strong algorithm (https://en.wikipedia.org/wiki/Karplus%E2%80%93Strong_string_...). Instead of simulating the motion of all parts of the string for each timestep, it simplifies it to a perfect transmission of motion, except at the end of the string where some function will be applied that captures the losses from the motion, typically by performing a simple low-pass filter. Computationally it is very efficient: just a few FMA operations per sample. The drawback is that you need a buffer to store the state of the string, which can be quite large (especially for low frequencies which correspond to long strings), and you need to read and write to different parts of this buffer. Thus, if you are simulating multiple strings, it's more likely that memory bandwidth will be the bottleneck instead of raw compute power.
DennisP 7 hours ago [-]
So doing it on a big GPU would be pretty helpful. I wonder if anyone has used CUDA for this, or if any hardware synths have GPUs.
Blackthorn 6 hours ago [-]
The time it takes to get data to/from the GPU is problematic given the sample rate you need to deliver.
Anukari used the GPU but eventually abandoned it for the CPU. They have some good and informative blog posts about it.
Does it take nonlinearity of strings into account? In the demo I can't really hear it and to me it ends up sounding like the comb filter synths you get without it.
blovescoffee 5 hours ago [-]
I’m super curious what that would sound like. Could you elaborate on the non linearity part?
IsTom 3 hours ago [-]
Physical strings have some stiffness and it causes overtones to not have perfect integer ratios of frequency. It's one of many things to consider that makes it sound a bit more natural.
amelius 11 hours ago [-]
This simulates the displacement of the string, but the hard part seems to be to simulate how that string affects the air and induces a sound.
lagrange77 4 hours ago [-]
Why is that harder? Because require solving PDEs, aren't they?
IsTom 11 hours ago [-]
Considering that there's a pickup in the model, air doesn't matter. And in typical string instruments the loud part you mostly hear is coming from sound box through bridge, not from strings themselves.
Anukari used the GPU but eventually abandoned it for the CPU. They have some good and informative blog posts about it.
[0] https://www.modartt.com/pianoteq_overview
Awesome LaTeX-inspired webdesign btw.!