20210306_Data Sonification2

Data Sonification with GameSynth

The CSV Data module allows for the import of data from a spread sheet into a modular patch. With the help of the other 120 synthesis modules, this transforms GameSynth into a powerful tool for data sonification!

In the video below, the Planetary Data Analysis patch reads data related to the trajectory of the planet Mars in the solar system, such as its position relative to the Earth and the Sun. This data is then used to control the parameters of various generators and processors. The result is a user interface sound that could be used when visualizing data in a sci-fi game or animation, for instance.

The CSV Data module generates control signals based on the data contained in a CSV file, reading a new row of values each time its trigger input is activated. This allows for the modulation or randomization of the reading frequency. The outputs will hold the last value while waiting for a new reading.

Since the module has 4 outputs, only the first 4 columns of the CSV file are used. To process more columns, separate the data into several CSV files and use more CSV Data modules.


In addition to the CSV file providing the data, the module has 2 other parameters. The Reading Mode determines the behavior of the module when all the rows of the CSV files have been read. It can simply stop, or start reading again, either from the start or from the end of the data. The Processing parameter determines the type of processing applied the data of the CSV file before it is sent to the outputs (none, clipping, normalizing, or normalizing per column).

Of course, nothing prevents you from using the data to generate other types of signals. The Magnetic Engine patch shown above uses one column of data to create a waveform, by looping a series of impulses (0, +1 and -1 values in the CSV file) and sending them through a comb filter. The second column of data is used to control the feedback of the filter. When using the CSV Data module to generate audio signals, it is probable that you will need to add some type of filtering to interpolate between the values and make the waveform smoother.

We are looking forward to hearing your data sonification projects! Remember that the CSV file must not have a header line and should have the same number of items in every row. The items should be separated by commas. If an item is not a numerical, its value will be set to 0. Finally, the values are expected to be in the [-1…1] range. If they are not, you can use the clipping and normalizing options of the Processing parameter.

The patches showcased in this article have been added to the Patch Repository, so you can also use them to start sonifying your own data.