Coffee Pour-over Sonification

Sonification is the technique of transforming data into sound. For example, changes in a dataset can be mapped to variations in pitch, rhythm, or amplitude, allowing listeners to perceive patterns through hearing. In this project, I combine my interests in both coffee and audio by synthesizing sounds to represent each pour in a pour-over brewing process. The sounds are synthesized automatically by a MATLAB-based algorithm that uses coffee scale weight data over time, requiring no manual tuning.

From Scale Data to Flow Features

The system starts with time-series weight data from a Bluetooth coffee scale. By taking the derivative of the weight curve, the algorithm estimates flow rate over time, revealing when water is actively being added and how intense each pour is. This turns a simple brewing log into a signal that can drive sound synthesis.

Weight and flow data from a pour-over brew
Weight data from the scale and the derived flow curve used as the main input to the sonification algorithm.

To make the audio mapping more expressive, the flow signal is separated into low- and high-frequency components. The low-frequency flow captures the overall pouring trend, while the high-frequency flow contains quicker fluctuations caused by hand movement and circular pouring patterns. Since each pour begins and ends with abrupt step-like changes, the algorithm estimates and removes onset-related artifacts before extracting the high-frequency component.

Flow band separation for coffee pour-over data
Flow band separation process: raw flow is onset-cancelled, filtered, and separated into low-frequency pour intensity and high-frequency motion detail.

In the background, the algorithm can provide much more data, including circular pour detection mask, circular pour frequency calculation, and number of circular pours counter. The data can be exported as a JSON file for automatic pour summary generation with LLMs.