Back from the grave

Modular Environments


A lot of activities of the NESS project are concerned with emulating existing well-known instruments, such as the trumpet, gong or guitar, with a view towards allowing the user a means of extending design and playing technique—while maintaining a connection with an underlying physical system, and, hopefully, to allow for natural synthetic sound.

The modular synthesis framework is slightly different. Here, we are abandoning any attempt at modelling an existing instrument, and simply providing the user with a set of canonical objects, or basic elements, as well as connection types, as the tools for designing a new instrument. This is an old idea, of course, and has been used in lumped mass-spring models, leading to the CORDIS environment, and plays a key role in the modal Modalys system.

Here, our basic elements are bars, plates, strings and membranes, and in NESS, we simulate these using FDTD methods; due to the locality of our difference schemes, this makes certain operations, such as connecting objects, or introducing input signals and drawing multichannel output easier than in, say, a modal setting, which is based on global representations of such objects.

bar plate

Canonical bar and plate elements

There have been several iterations of our modular environments during the course of NESS. The first attempt in 2013 led to what we call the zero code. A zero code instrument consists of an interconnected set of bars and plates, of user-defined materials and sizes, as well as a set of simple connection elements, which are restricted to be of linear or nonlinear cubic spring type, and which incorporate loss. The zero code derives from an even earlier attempt at a modular network (Matlab only), and was ported to NESS GPU. Here is a typical configuration, as well as associated sound examples.

A modular plate environment

Sounds generated using a modular bar/plate environment

You can read about our early modular synthesis environment here, and also listen to a piece that was composed partly using these methods here.

We came back to modular networks in 2016, after a long stretch of work on collision modelling, and introduced a new type of connection (the rattler), which allows for quite a wide variety of new sounds. Have a listen to the sounds below, which were generated using randomly generated modular instruments.

Sounds generated using the net1 environment

The new environment, called net1, has been ported to multicore, and has been used in order to generate two new multichannel pieces, which you can listen to here. It also forms the basis for a new real-time plugin, which will be available shortly at our associated spinout company Physical Audio.