Collisions have an important role in musical acoustics. In many musical instruments, the mechanisms responsible for sound production involve a kind of collision: examples include the hammer-string, stick-membrane and backboard-string interactions, as well as reed-beating effects in wind instruments. Collisions are strongly nonlinear, and cannot be approximated by linearisation. From a numerical standpoint, a form of control over the stability of the simulated solution is necessary. This is usually accomplised via energy methods. The work by Chatziioannou and van Walstijn [1] considered a discretisation of Hamilton's equations in first-order form, via a discrete gradient preserving a numerical Hamiltonian. Following that, Bilbao et al. [2] developed a conservative scheme in second-order form, and applied it to a large class of musical systems.
All such methods are fully-implicit, and the the update of the state variable is performed via iterative procedures such as e.g. Newton-Raphson. This results in well-known issues, including a varible operational cost, the problem of existence and uniqueness of the numerical solution, the problem of tolerance thresholds, etc.
Here, a method is proposed, such that collisions may be resolved in a single iteration, whilts guaranteeing passivity via energy conservation. This is achieved via the introduction of an auxiliary state variable, that needs to be solved for at each update along with the usual state variable such as e.g. displacement. The extra state variable has the units of square root of energy, and is always well-defined for commonly encountered non-negative potentials.
Hammer-string collision. The non-iterative scheme and the scheme in [2] are compared. The former is shifted up by 1mm for clarity.
String-fretboard collision. The non-iterative scheme is run using a full finite difference discretisation (dashed line) and a modal discretisation (solid).
Snare-membrane collision in the snare drum. The non-iterative scheme is run using a full finite difference discretisation. The system is energy-conserving to machine accuracy, using one single iteration per time step, in spite of a large number of collisions taking place between two fully deformable distributed objects.