Content uploaded by Michele Ducceschi
Author content
All content in this area was uploaded by Michele Ducceschi on Jun 14, 2019
Content may be subject to copyright.
Electroacoustics and Audio Engineering: Paper ICA2016-559
Plate reverberation: Towards the development of a
real-time physical model for the working musician
Michele Ducceschipaq, Craig J. Webbpbq
(a)Acoustics and Audio Group, University of Edinburgh, UK, michele.ducceschi@ed.ac.uk
(b)Acoustics and Audio Group, University of Edinburgh, UK, craig.webb@ed.ac.uk
Abstract
Reverberation is an essential effect for sound design and music production, and commercially
available software offers an unprecedented range of solutions for artists. Plate reverberation
represents an attractive choice as the modal density of large plates is constant over the audible
range, creating a uniform response in the frequency domain. However, available plug-ins rely
on either sampled impulse responses or simple delay algorithms. In this paper, a pure physical
model of a rectangular plate is used at the core of a real-time effect plug-in. The user has a choice
of intuitive parameters to select the dimensions of the plate, the tension, and decay ratios. The
input and output positions can be changed dynamically, during the runtime of the simulation. This
represents a clear improvement over static algorithms based on impulse responses. Optimisation
of the model using CPU vector intrinsics is demonstrated, allowing real-time computation of large-
scale plate reverbs on consumer hardware using a standard plugin architecture.
Keywords: plate reverb, physical modelling, real-time, plugin
Plate reverberation: Towards the development of a
real-time physical model for the working musician
EDIT JUNE 2019. CORRECTED SOME NOTATION AND TYPOS
1 Introduction
In recent years, physical modelling techniques have come to prominence in the realm of sound
synthesis [3]. Other than recreating actual instruments, physical modelling can be used to sim-
ulate analog effect units, such as the plate reverb. This effect has been widely used since the
1950s, and continues to be used today. The appetite for software counterparts of this analog
effect can be estimated by the growing number of impulse-response based plug-ins available for
purchase, including for example WAVES [1], or EMTr140 Classic Plate Reverberator Plug-In
[8]. With respect to previous physical models making use of finite difference schemes [2, 4, 6],
a modal approach is used here to solve the dynamic equations. This choice is beneficial in
a number of ways, mainly in offering the possibility to easily implement frequency-dependent
losses, as well as presenting a natural parallel structure. Reduction of the number of degrees
of freedom is also possible, resulting in faster and cheaper simulations. The paper is organised
as follows: Section 2 presents the plate equations, as well as the resolution in terms of the
modes. Section 3 presents the numerical algorithm. Computational considerations are given
in Section 4, and Section 5 presents the user interface design. Finally, Section 6 discusses a
pedagogical example.
2 Model Equations
A model for a plate reverb unit can be derived by considering a flat, rectangular plate under-
going small vibrations. Mathematically, this can be expressed as the Kirchhoff plate equation
with loss and tension, in the following way
ρhB2w
Bt2“T0∆w´D∆∆w´2cρhBw
Bt`δpx´xpqδpy´ypqPptq.(1)
In the equation, the flexural displacement of the plate is indicated by wpx,y,tq; the symbol ∆
denotes the Laplace operator in Cartesian coordinates. The plate occupies a rectangular region
of space, here called Dfir0,Lxsˆr0,Lys, and whose boundary will be denoted by Γ. Constants
appear as: volumetric density ρ, thickness h, tension T0, flexural rigidity DfiE h3{12p1´ν2q,
where Eis Young’s modulus and νis Poisson’s ratio; crepresents a loss parameter (and its
form will actually be cast in a frequency-dependent form when the modal approach is described
in Section 2.2.) Finally, Pptqrepresents the input audio at the transducer location pxp,ypq.
2
2.1 Energy and boundary conditions
In the case of the plate with no loss and forcing, a standard energy analysis leads to the
following energy balance for the plate [5]
d
dt »
—
—
—
–
ρh
2›
›
›
›
Bw
Bt›
›
›
›
2
D
`T0
2}∇w}2
D`D
2}∆w}2
D
looooooooooooooooooooomooooooooooooooooooooon
H
fi
ffi
ffi
ffi
fl
“T0¿
Γ
Bw
Bt
∇w¨dΓ´D¿
Γ
Bw
Bt
∇∆w¨dΓ`D¿
Γ
∆w∇Bw
Bt¨dΓ,(2)
where the notation of norm for a well-behaved (vector) function gpx,yqwas introduced as
}g}2
DfiżD
g¨gdD(3)
The dot notation indicates the euclidean product of two vectors. (Notice that, with a slight
abuse of notation, the norm here is used interchangeably when gis a either a vector or a
scalar; in the latter case, the dot product reduces to multiplication of two scalar functions).
In the boundary terms, Γrepresents the outwardly-oriented boundary (a vector). When the
boundary terms vanish, one is left with
d
dt H“0ÑH“H0,(4)
which gives energy conservation for the total energy. The total energy is clearly non-negative,
being the sum of non-negative quantities, and thus one may write
0ď›
›
›
›
Bw
Bt›
›
›
›D
ďd2H0
ρh,(5)
which is a bound on the growth of the solution.
2.2 Modes
In general, one can attempt to find a solution by decomposing wonto a series of modes, in
the following way [7]
w“
M
ÿ
m“1
Φmpx,yqAmsinpωmt`ζmq(6)
where Mis, in theory, infinite, but it is understood to be a finite integer for any practical ap-
plication. The expansion above is valid is valid in the lossless, unforced case. The modal
phases ζmand modal amplitudes Ammay be determined from initial conditions. The modal
shapes Φmpx,yqmust satisfy the prescribed boundary conditions, and they also have to form a
complete, orthogonal set over D(in the sense of L2function spaces.) It is also assumed that
}Φm}D“1,@m. When (6) is substituted into (1) (with c“P“0), one obtains
ω2
mΦm“D
ρh
∆∆Φm´T0
ρh
∆Φm,@mP r1,Ms.(7)
3
This equation is the eigenvalue problem that must be solved in order to find the eigenfre-
quencies ωm. In order to do so, both sides are multiplied by Φn, and an inner product is
taken. Because of the assumption that the modes are orthogonal, and because they satisfy
the boundary conditions, one gets (after integration by parts)
ω2
m}Φm}2
D“T0
ρh}∇Φm}2
D`D
ρh}∆Φm}2
D.(8)
When loss and forcing are present in the system, the assumption that the time component
oscillates sinusoidally is not any more valid. Hence, (6) must be modified in the following way
w“
M
ÿ
m“1
qmΦmpx,yq,(9)
for unknown qm. This is now substituted back into (1), and an inner product is taken with Φn
on both sides. Recalling (7), one gets
:
qm`ω2
mqm`2cm9
qm´Φmpxp,ypq
ρhPptq “ 0,@mP r0,Ms.(10)
where the dot notation is used to indicate the time derivative (the qm’s are functions of time
only.) This is a system of uncoupled harmonic oscillators, with loss and forcing. Notice that
the loss coefficients cmcan now be set mode by mode, and not just globally like in (1). Finally,
notice that, by virtue of (8), and by modal orthogonality arguments, the total energy in (2) can
be written as
H“
M
ÿ
m“1
Hm“
M
ÿ
m“1
ρh
2«ˆBqm
Bt˙2
`ω2
mq2
mff,(11)
and hence the energy is the sum of independent contributions coming from each one of the
modes.
3 Numerical Solution
In the previous section, the modal decomposition was developed in a general form. So long as
one is able to obtain the modal shapes Φm, the eigenfrequencies can be calculated by means
of (8), and then the time evolution of the modal coordinates can be calculated from (10). In
general, a closed form solution for Φmis not available, but a few cases represent an exception.
Consider simply-supported boundary conditions, w“∆w“0on Γ. For such conditions, the
functions
Φmpx,yq “ d4
LxLy
sin m1πx
Lx
sin m2πy
Ly
,pm1,m2q P Z`(12)
satisfy the requirements of completeness and orthogonality (the scalar multiplying the sine
functions is such that }Φm}D“1@m.). Inserting expression (12) into (8), one gets
ωm“dT0
ρhˆm2
1π2
L2
x
`m2
2π2
L2
y˙`D
ρhˆm2
1π2
L2
x
`m2
2π2
L2
y˙2
,pm1,m2q P Z`(13)
4
3.1 Semi-discrete problem
In order to solve (10), a suitable time stepping scheme is obtained in the following way. Time
is evaluated at discrete, equally-spaced intervals by means of a sampling rate fsfi1{k, where
kis called the time step. The modal coordinates qmare now evaluated at the discrete times kr,
with rPZ`
.The derivative operators are then substituted with the following difference operators
(although different choices are available [3])
:
qmptq Ñ qmpkpr`1qq ´ 2qmpkrq ` qmpkpr´1qq
k2,
9
qmptq Ñ qmpkpr`1qq ´ qmpkpr´1qq
2k.(14)
Substituting (14) into (10) gives the following update equation
„1
k2`cm
kqmpkpr`1qq “ „2
k2´ω2
mqmpkrq ` „cm
k´1
k2qmpkpr´1qq ` Φmpxp,ypq
ρhPpkrq.(15)
The discrete energy is
h“
M
ÿ
m“1
hm“
M
ÿ
m“1
ρh
2˜pqmpkrq ´ qmpkpr´1qqq2
k2`ω2
mqmpkrqqmpkpr´1qq¸(16)
which is a discrete counterpart of (11). Notice that here, as opposed to the continuous case,
the total energy is of undetermined sign. In order to guarantee non-negativity of each of the
modal energies hm(and hence of the energy as a whole) one must impose [3]
ωmă2
k.(17)
This should be regarded as a stability condition for scheme (15): if such condition is enforced,
one may bound the growth of the discrete solution, in an analogous way as (5).
Hence, fixing the sampling rate poses an upper limit on M, the total number of modes. Notice
that the scheme is fully explicit, and therefore possesses a natural parallel structure.
3.2 Dynamic output
Extracting the output is, in some sense, inverting the projection operation that leads to the
modal equations. In a basic configuration, a plate reverb unit has two pickups which record the
displacement of the plate. Let a given pickup be placed at pxo,yoq. Owing to (9), one has that
the displacement at the output point is given by
wo“
M
ÿ
m“1
qmΦmpxo,yoq.(18)
As opposed to impulse-response based plugins, the output point can be rendered dynamically
in a very easy way, by considering pxo,yoqto be time-dependent. This leads to a natural phase
movement with complex auditory cues, see also section 6.
5
4 Computational Testing
The algorithm for computing the plate system consists of two main stages. First, a pre-time
iteration stage that builds vectors based on the modal frequencies. Second, the core time
iteration stage that calculates the displacement and takes the output. There is some cross-over
between these two stages, depending on the level of dynamic behaviour that is required. For
example, if the input position is made fully dynamic (being computed during run-time, instead
of resetting the system) then elements of the pre-time iteration stage need to be moved into
the time iteration itself. For the purpose of initial testing, both the input and output positions
were treated as static to judge the base level of computation required for the real-time system.
The standard dimensions of the plate used for testing were 2m by 1m, with a thickness of
0.5mm. This leads to a system that uses 10,000 modal frequencies in its basic form. The
system was written in C++ and two versions were tested; one a standard code and a second
that used manual AVX intrinsics to vectorise the calculation of the displacement. Only single-
threaded code was considered at this time; multi-threaded usage will be explored at a later
date due the complications involved with spawning multiple threads inside of a real-time plug-in
environment. The codes were tested on two Intel processors; a 2.2GHz Core i7 “Sandy Bridge”
and a 3.7GHz Xeon “Ivy Bridge-EP”. The results in table 2 show the time taken to compute 1
second of sound at 44.1kHz. The standard code was tested using both -O0 and -O3 compiler
optimisation flags, and all codes were tested at both single and double precision floating-point.
i7-Double i7-Single Xeon-Double Xeon-Single
Standard - O0 3.2 3.1 2.5 2.4
Standard - O3 1.1 0.7 0.8 0.5
AVX - O3 1.1 0.7 0.8 0.5
Table 1: Timing results for a 10,000 mode scheme, at single and double precision. Values in
seconds.
The results clearly show the benefit of vectorization, with AVX intrinsics working on 4 double
or 8 single precision variables simultaneously. The straightforward nature of the main dis-
placement calculation allows the compiler to apply AVX instructions automatically when using
–O3 optimisation, a useful benefit. Whilst the timing results show that both the Xeon and i7
processors are capable of computing the simulation in under 1 second (although only at sin-
gle precision for the i7), this does not necessarily translate to real-time performance within a
plug-in environment. Initial testing in an Audio Unit plug-in showed that the single precision
simulation running on the i7 would lead to incomplete buffers, drop-outs in the output audio.
A slightly reduced simulation size that takes 0.6 seconds to compute in stand-alone code was
found to be the maximum simulation size capable of running without drop-outs on the older i7
processor.
6
4.1 Reduction of the number of degrees of freedom
For a typical plate unit, at audio rate, the number of modes is of the order of 10,000. The range
20 ´20,000Hz spans approximately eleven octave bands, but because the modes are more or
less evenly spaced along the frequency axis, the last 3 octave bands are highly populated (for
the 2m by 1m by 0.5mm plate, they contain about 80% of the total modes.) According to (10),
each one of the modes vibrates indipendently of the others. Thus, one may remove a number
of the high-frequency modes without impacting the quality of the output. A possible rule to
decide whether a mode is kept or discarded can be given in terms of perceptually meaningful
parameters: fix a distance between two frequencies, ncent (measured in cents): take the first
mode, at f1, and discard all the modes whose distance from f1is less than ncent. Once the
new frequency fiis obtained, repeat the procedure, and so on. This rule is particularly useful
when ncent is frequency dependent (so it can be made larger for high-frequency bands.) In
general, a careful selection of ncent can reduce the number of modes from the original 104to
the range of 4,000 to 5,000, resulting in substantially less CPU usage.
5 Design and Implementation of the Plug-In
The plate reverb system was implemented as an Audio Unit version 2 plug-in for OSX. The
implementation was created by directly sub-classing the core audio framework, specifically the
AUBase class rather than the standard AUEffectBase approach that produces a kernel for each
audio channel (something that is definitely not desirable in this case for obvious computational
reasons). A custom view was then designed and created using the Cocoa framework and
Objective-C. The central design approach for the user interface was to provide an intuitive
object-based view. The system allows the user to re-size the plate, move the input forcing
positions and output positions to any point on the plate, and also specify the delay time across
8 frequency bands. By providing a graphical representation of these elements, we can minimise
the number of slider controls. Figure 1 shows the final design of the interface, as displayed in
Logic Pro X.
The plate size is adjusted using the “grab” handle in the top-right of the plate, with the input
and output discs keeping their relative positions. The discs with cross-hairs are the two input
forcing positions; for a mono audio input both positions receive the same values, whilst for a
stereo input the left and right channels are separated. The remaining discs are the left and
right channel output positions. The frequency-dependent decay parameters are adjusted by
varying the height of the bars in the chart view to the right. The centre frequency for each
band is shown on the overlaid information sheet (Figure 2). With the reduced mode count, it
is possible to use a maximum plate size of 3m by 2m, at 0.5mm thickness, whilst still allowing
sufficient CPU capacity to dynamically compute the input and output positions during runtime.
6 Examples
In this section some of the features of the plug-in are presented. The reference plate is a
steel plate of dimensions 2m by 1m by 0.5mm, Young’s modulus E“2¨1011Pa, Poisson’s
7
Figure 1: Graphical user interface design, as displayed in Logic Pro X.
ration ν“0.3, tension 600N. The damping coefficients have been selected in order to cover
8 frequency bands, so that the modes belonging to the same band share the same damping
coefficient. Also, the damping coefficients are set by means of a typical decay time, called
T60 , which is the time needed to decay by 60 dB. The relation between the time and the loss
coefficients is
c“6lnp10q
T60
(19)
The coefficients for the bands shown in Figure 2 have been selected as per Table 2.
8
Figure 2: Information sheet, as displayed in Logic Pro X.
Hz 62 125 250 500 1000 2000 4000 8000
sec 8 7 8 6 5 6 3 2
Table 2: Frequency bands (top row) and T60 (bottom row) for the case under study.
Figure 3 presents the spectrograms of the input audio (i.e. with the plug-in bypassed) and two
“wet” cases, with static and dynamic outputs. The input audio is a recording of female vocalist
performing a sustained note. It is difficult to judge the quality of the sound by just looking at the
spectrogram. Notice, however, that the phase movement is evident in Figure 3(c). The inter-
ested reader may find this and more examples at the following link: www.physicalaudio.co.uk.
7 Conclusions
This work presented the development of a software plug-in for simulating plate reverberation.
Unlike standard software implementations based upon impulse responses, the user has control
over a set of physical parameters that define the system. Particularly attractive features include
frequency-dependent decay times over eight octave bands, the selection of plate size, and
dynamic movement of the input forcing and output pickup positions. These allow far greater
experimental control over the resulting effect, allowing the user to tune the reverberation in a
9
(a)
1 1.1 1.2 1.3
0
1
2
3¨103
trmss
frHzs
(b)
1 1.1 1.2 1.3
0
1
2
3¨103
trmss
frHzs
(c)
1 1.1 1.2 1.3
0
1
2
3¨103
trmss
frHzs
Figure 3: Spectrograms of output files. (a): dry sound (bypassed plugin). (b): wet sound
(static). (c) wet sound (dynamic output). The plate parameters are detailed in Section 6.
The input transducer was placed at r0.52Lx,0.53Lysand the output pickup was placed at
r0.47Lx,0.62Lys. For the dynamic case, the pickup was given a velocity of 5m/s, and was set to
scatter off at equal angles at the edges.
creative manner.
10
Acknowledgements
Dr Ducceschi’s research was supported by the Royal Society and the British Academy, through
a Newton International Fellowship.
References
[1] Abbey Road Studios. WAVES [Computer Software], 2015.
[2] S. Bilbao. "A Digital Plate Reverberation Algorithm". Journal of the Audio Engineering
Society, 55(3):135–144, 2007.
[3] S. Bilbao. Numerical Sound synthesis: Finite Difference Schemes and Simulation in Musical
Acoustics. Wiley, Chichester UK, 2009.
[4] S. Bilbao, K. Arcas and A. Chaigne. "A Physical Model of Plate Reverberation". In Pro-
ceedings of the IEEE Conference on Acoustics, Speech, and Signal Processing (ICASSP),
Toulouse, France, 2006.
[5] M. Ducceschi and C. Touzé. "Modal approach for nonlinear vibrations of damped impacted
plates: application to sound synthesis of gongs and cymbals". Journal of Sound and Vi-
bration, 334:313–331, 2015.
[6] B. Hamilton and A. Torin. "Finite Difference Schemes on Hexagonal Grids for Thin Linear
Plates with Finite Volume Boundaries". In Proceedings of the 17th International Conference
on Digital Audio Effects (DAFx), Erlangen, Germany, 2014.
[7] L. Meirovitch. Fundamentals of Vibrations. Waveleand PR Inc, Long Grove, USA, 2010.
[8] Universal Audio. EMTr140 Classic Plate Reverberator Plug-In [Computer Software],
2015.
11