Simple MaxCSV v1.2

Typically when we think about interacting with and viewing data, we think about doing so via visual media. Spreadsheets, graphs, and the like are often the first things to come to mind for my students. Those visual representations are exactly that - representations. Just as we can represent data in visual formats, we can represent it in ways that take advantage of our other senses. I built Simple MaxCSV as a relatively easy-to-use tool to wrangle data into a form that was easy to use for sound generation. Simple MaxCSV was built in Max/MSP, with the goal of allowing easy import of CSV files and easy mapping of the data within to useful musical parameters (pitch, velocity, duration, MIDI continuous control) over time.

Simple MaxCSV works by stepping through rows of data in a CSV document, and mapping the first four columns to the previously-mentioned musical parameters. The program searches for the minima and maxima of those columns and then provides an interface for remapping that data across user-defined ranges of pitch, velocity, duration and MIDI CC. This program is designed as a tool to generate MIDI data, which would then be recorded into a sequencer, rather than as a tool for real-time performance.

A video demo is embedded below.

Future Steps:

In addition to the main Max patch, I have created a couple of Max4Live patches that allow for the mapping of data to CCs as well as Ableton parameters. These are still experimental, and more M4L devices will be forthcoming. Currently I am using pre-built modules from the Ableton library to connect to arbitrary Ableton parameters, which will be obvious in the user interface. I plan to create a more robust M4L implementation in the future, since many people are more comfortable within Ableton.

Download Link: https://www.dropbox.com/scl/fo/8xfwtdp2ydmcuyr99252k/h?rlkey=r9uabh0eaqr5kkxnecxglkliq&dl=0

A short demo of sonification of historical per-capita CO2 emissions in the USA and the UK. Emissions are mapped to synthesizer pitch, and each years’ data is played sequentially, each with same duration. The year is mapped subtly to velocity (which is turn mapped to filter cutoff), creating a subtle timbral change as the year approaches the present.

An example of the GUI.

The spaghetti within.