Download Power-Balanced Drift Regulation for Scalar Auxiliary Variable Methods: Application to Real-Time Simulation of Nonlinear String Vibrations
Efficient stable integration methods for nonlinear systems are of great importance for physical modeling sound synthesis. Specifically, a number of musical systems of interest, including vibrating strings, bars or plates may be written as port-Hamiltonian systems with quadratic kinetic energy and non-quadratic potential energy. Efficient schemes have been developed for such systems through the introduction of a scalar auxiliary variable. As a result, the stable real-time simulations of nonlinear musical systems of up to a few thousands of degrees of freedom is possible, even for nearly lossless systems. However, convergence rates can be slow and seem to be system-dependent. Specifically, at audio rates, they may suffer from numerical drift of the auxiliary variable, resulting in dramatic unwanted effects on audio output, such as pitch drifts after several impacts on the same resonator. In this paper, a novel method for mitigating this unwanted drift while preserving power balance is presented, based on a control approach. A set of modified equations is proposed to control the drift artefact by rerouting energy through the scalar auxiliary variable and potential energy state. Numerical experiments are run in order to check convergence on simulations in the case of a cubic nonlinear string. A real-time implementation is provided as a Max/MSP external. 60-note polyphony is achieved on a laptop, and some simple high level control parameters are provided, making the proposed implementation suitable for use in artistic contexts. All code is available in a public repository, along with compiled Max/MSP externals1.