top of page

MAX/MSP_Audio Spectrum in 3D • film score

Patch Design

This patch aims to visualize the soundtrack in a 3D space. It utilizes the pfft object to represent the incoming audio signal flow in the frequency domain, allowing real-time observation of the dynamics of its frequency bands and amplitudes. Additionally, a scrolling histogram will be created to demonstrate the Fast Fourier transform (fft) analysis of this audio flow. The full patch is shown below, including the sub-patch (FreqAnalysis.pfft) for the pfft object in the bottom right corner.

Furthermore, a basic 3D shape will be created, which will be influenced by this analysis as long as the soundtrack is playing or any sound created by the participants occurs in the physical venue (e.g., claps, chats). The rolling speed can be altered by changing the value of speedlim or metro (circled in blue).

Once the system is set up, various visual possibilities can be explored by changing draw_mode, shape, or by connecting the incoming data flow to different parameters (see below).

Diegetic Sound╞ +music

00:00 Music + Rain, Door

00:25 Music + Thunder

jit.genin1 goes directly to

00:36 sphere (normalized coordinate)

00:47 swiz x

00:58 swiz y

01:10 swiz z

jit.genin1 stays at swiz z , while

01:22 Releasing swiz y

01:30 Connecting swiz y to snorm

01:38 snorm goes directly to swiz x

01:46 Releasing the data flow from snorm to swiz x

01:51 Releasing swiz y

02:00 Releasing in1 from swiz z

02:04 Releasing swiz y


02:09 Connecting sphere (1st outlet, surface coordinate ) to swiz y and swiz x , which results in 1 sphere.

02:23 Connecting sphere (2nd outlet, surface normal ) to swiz x and swiz y , which recovers the basic shape (2 spheres as a gourd) with slight distortion.


02:38 Connecting snorm to output 1, which results in 4 spheres (see below). The value (*0.5) controls the heights of the amplitude of the frequencies, shown as the spacing between spheres.

02:52 Connecting snorm to output 2, which affect the matrix color of jit.gen. The value (*10) controls the intensity of color (i.e., saturation).

To make it easier to observe changes in the sphere number, I adjusted the size of by adding the argument @scale 0.65. As a result, you can clearly see that the shape has transformed into four spheres.

If we decrease the value, the spacing between spheres will also decrease. If we use a negative number, will show the same shape but in the opposite position. See the example (*0.25, *-0.25) below.

Finally, the renderings vary based on different sound sources. In comparison to soundtracks created by virtual instruments, human voices exhibit more natural overtones, leading to a softer audio spectrum with richer harmonics (see 5:00-5:35). Examples from left to right include Rain (diegetic sound), Wall-striking (instrumental music), and Female chants (voice) below.

【Music Concept】

0:40 Opening

With the aid of the stormy weather at the beginning, I utilize a somber soundscape to set the tone of this scene. This soundscape also symbolizes the intangible power of the authority and the disinclination of the Principal. Meanwhile, I aim to give the audience hints that this is a little girl's battle against a huge bureaucratic System. To achieve this, I incorporate a vibraphone phrase to depict Peyta's final hope before her disappointment transforms into an uncontrollable rage.

2:00 Peak

After the intensive session made with metallic sounds and strong beats, the string tremolo is introduced into the composition when the Principal showed up in the ground floor to stop Peyta.

2:17 Ending

When Peyta was caught and surrounded by a group of students who didn't step forward to help but instead filmed the 'spectacle' with their phones, it became a tragic and nostalgic event. This tragedy had occurred to the young Bulgarian poet Petya Dubarova 40 years ago and now to this 11th-grade girl Peyta in 2019.

To depict this situation, I have chosen multiple female chants that intertwine the fictional story of 2019 and the historical event of 1979 through human voices. These melancholic chants alternate between antiphonal and choral arrangements, not only portraying the relationship between the two Peytas but also between the protagonist and the crowd.


Music: Hua-Chun Fan (the original score is composed for "FFM Scoring Contest Edition 2" in Sofia in 2023. )

Sound: Bof Pictures  (from【Petya of My Petya】, 2021 film)

Visual: Bof Pictures  (the illustrations are captured from Bof Pictures' YouTube channel & mixed with the Max/MSP rendering still by Hua-Chun Fan)

Max/MSP 8 programming: Hua-Chun Fan


bottom of page