Showcase#

A gallery of standout student work from the course.

Assignment 6: Implementing convolution, Fourier, and filters#

rashid

0:00 / –:––

Composer’s notes

As the iterations progress, the words become harder to understand and the overall sound becomes dominated by the ringing and resonance of the room. After each iteration, the recording is convolved with the room’s IR. This multiplies the room’s frequencies by those of the recording (by the convolution theorem), so over time the room’s frequencies dominate.

Anonymous

0:00 / –:––

Composer’s notes

As iterations go on, my voice becomes more echoey and harder to understand. By the end, all that is left is ringing. This is because in each iteration, the sound gets further convolved with the same room noise.

Assignment 5: Exploring modulation synthesis#

Assignment 5 ran in two directions: a Creative piece built from modulation synthesis, and a Technical project implementing a DX7-style FM synthesizer, presented as a narrated demo video. The tag beside each name says which.

AnonymousCreative

0:00 / –:––

Composer’s notes

Zelda’s Lullaby, played three times in a row with no gap between passes. Pass 1 is in just intonation, pass 2 plays the same notes in 12-tone equal temperament, and pass 3 puts just intonation in the left channel and equal temperament in the right.

The sounds are three factory patches from the original DX7 ROM cartridge: PIANO 1 for the bass, E.PIANO 1 for the accompaniment and VIBE 1 for the melody. I wrote a small DX7 engine that reads the cartridge file and runs the six-operator FM voice: all 32 routing algorithms, feedback, the four-stage envelopes, key scaling and velocity. On top of that there is a tremolo locked to the tempo, a vibrato that uses one clock for every note so simultaneous notes keep their exact frequency ratios, and slow stereo panning.

Sources: Zelda’s Lullaby by Koji Kondo (The Legend of Zelda: A Link to the Past, Nintendo, 1991), transcribed by me as frequency ratios. Yamaha DX7 factory cartridge ROM1A from https://yamahablackboxes.com/collection/yamaha-dx7-synthesizer/patches/. The engine re-implements the level, rate, scaling and routing tables of Dexed (asb2m10/dexed).

AnonymousCreative

0:00 / –:––

Composer’s notes

What Is a Sine Wave? is a 2:15 trap/R&B duet about learning computer music. A curious student sings the questions in the hook, and a teacher raps the answers in the verses: carriers, modulators, the index of modulation, sidebands, inharmonic bells, vibrato, tremolo and the sample rate. By the bridge the student gets it. The song opens on a chopped sample of the student’s question over a muffled bell loop, drops into the first verse, switches to a triplet flow in verse 2, and closes with a beatless string bridge and a double final hook.

Every sound in the instrumental is synthesized in Python, almost all of it with FM: an inharmonic bell loop, a pad whose index and tremolo depth grow over each note, an FM string ensemble, and a full kit of FM percussion and 808. The hi-hat, kick and 808 patterns are generated algorithmically with seeded randomness. The words come from a text-to-speech model and are made musical in code: sung phrases are split into syllables and pitch-shifted along a singer-like curve, and the rap is aligned to the beat by a dynamic program that lands stressed syllables on strong beats.

Sources: melodies, lyrics and arrangement are original. Voices generated with the Kokoro-82M text-to-speech model by hexgrad (Apache-2.0), https://huggingface.co/hexgrad/Kokoro-82M.

Dilan LeonTechnical

Composer’s notes

This project goes beyond the baseline DX7 emulation to a web-based piano roll where several notes can play at once on different presets. It implements 30 of the 32 DX7 algorithms (all except 4 and 6, which have feedback between different operators) and imports SysEx, so the full DX7 factory bank is available apart from patches that use those two algorithms. That bank includes the Taco Bell sound (E3 on the TUB BELLS preset), which was the main reason I added SysEx support.

The backend is a Python FM engine with a SysEx parser that validates framing, checksums and packed fields for both single-voice dumps and 32-voice banks. The frontend is a TypeScript/Lit piano roll covering the real DX7’s C1–C6 range, with per-note presets, adjustable BPM and length, and a WAV download of the composition.

Sources: Yamaha DX7 factory ROM1A bank from https://yamahablackboxes.com/collection/yamaha-dx7-synthesizer/patches/. Algorithm routings adapted from voice-dx7.js in mmontag/dx7-synth-js (mmontag/dx7-synth-js).

SudaisTechnical

Composer’s notes

After Hours. I like house, so I built this around Jorja Smith’s Little Things x Gypsy Woman (L BEATS MASHUP). I made a house organ and a bass with a DX7-style synth in Python and NumPy, then used them to play a Gipsy Woman MIDI. The organ is a custom preset on Algorithm 5, and the bass loads Yamaha’s original ROM1A BASS 1 patch on Algorithm 16 through a SysEx parser. A second version adds Jorja Smith’s recorded vocal and synthesized house drums.

A local demo page lets you hear the versions, see the operator routing, and change pitch and velocity; the note buttons call the Python presets directly. For the bonus, I compared the imported bass against Matt Montag’s web DX7 emulator: the averaged spectra match with a cosine similarity of 0.99997.

Sources: Gipsy Woman MIDI from BitMIDI (https://bitmidi.com/gipsy-woman-mid); the original song is by Crystal Waters. Yamaha DX7 ROM1A bank from https://yamahablackboxes.com/collection/yamaha-dx7-synthesizer/patches/. Reference emulator: Matt Montag’s DX7 Synth JS (MIT), mmontag/dx7-synth-js. Vocal: Jorja Smith’s recorded performance from the official Little Things x Gypsy Woman (L BEATS MASHUP) video, separated with Meta’s Demucs; the songs and performance belong to their original creators.

Assignment 4: Implementing FM synthesis#

Anonymous

0:00 / –:––

Composer’s notes

I tried to recreate the song I was listening to while doing this assignment. I used a ratio of 4.0 and index of 1.0 because that sounded the cleanest after trying a few different ones out.

Anonymous

0:00 / –:––

Composer’s notes

I wanted to make a Moog-sounding arpeggio. I selected ratio=8.0, index=4.0 for a bassy sound.

Assignment 3: Exploring timbre and scores#

Assignment 3 ran in two directions: a Creative cover of a TheoryTab song, arranged and synthesized in Pyquist, and a Technical project presented as a narrated demo video. The tag beside each name says which.

AnonymousCreative

0:00 / –:––

Composer’s notes

My composition is a cover/arrangement of “Pixel Galaxy” by Snail’s House (Keitaro Ujiie). I wanted to keep the song’s very high, syncopated lead and unusually rich harmony recognizable while rebuilding the production with my own synthesis. I used the supplied TheoryTab/Hookpad transcription for the Intro, Pre-Outro, and Outro 2 sections. Together, they total 160 beats at 149 BPM, or about 64.4 seconds before the synthesis and effect tails.

The arrangement has five independent layers: a bright lead, revoiced chords, an electronic bass groove, a high bell/arpeggio counter-line, and synthesized drums. The lead keeps the supplied note pitches and timing. For the chords, I kept TheoryTab’s exact construction, including secondary/applied harmony, alterations, borrowed scales, added notes, suspensions, and inversions. I moved the voicings into a lower register so they wouldn’t cover the melody, then used those chord tones to make separate bass and arpeggio rhythms.

Source: Snail’s House, Pixel Galaxy — TheoryTab transcription https://www.hooktheory.com/theorytab/view/snails-house/pixel-galaxy No external audio samples are used; everything is synthesized in Python.

CometgermsTechnical

Composer’s notes

I cloned a dizi, a Chinese bamboo flute, with the goal of reproducing its tone and amplitude evolution in a playable instrument. The clone combines a pitched additive tone with a small amount of filtered noise to approximate the breath component, and it can synthesize notes at different MIDI pitches and durations.

The project has two main parts: a local browser tool for manual audio analysis, and a notebook for synthesis and playback. I used the tool to draw a piecewise-linear envelope, select ADSR regions, and measure partial frequencies and amplitudes, then exported these measurements into Python. The notebook sums 12 sinusoids, adds optional filtered breath noise, applies a duration-aware envelope to each note, and renders both individual notes and a melody using Pyquist.

Source recording: BOS_WWW_130_Flute_Dizi_Loop_Crown_E.wav from Black Octopus Sound — Woodwinds of the World, licensed through Splice.

Marco MiletiCreative

0:00 / –:––

Composer’s notes

For this project, my intent was to create a dynamic, energetic pop-punk electronic cover of “Misery Business” by Paramore. I wanted to transform the driving rock energy of the original track into a synthesis-driven arrangement, balancing high-tempo lead melodies with a heavy, grounded rhythm section and punchy percussive synthesis.

To accomplish this, I extracted the melodic and harmonic structure from TheoryTab and implemented a custom symbolic arrangement pipeline using Pyquist. The lead synth utilizes dynamic amplitude modulation (a 6 Hz tremolo effect) to give the melody continuous motion without overpowering the mix. The harmony was pitch-shifted into a low octave to create a heavy sub-bass line, while the drum track was synthesized using frequency-swept sine waves for the kick and burst-filtered noise for the snare, spaced out in a quasi half-time pattern in light of the really fast 173 BPM tempo.

Source: melody and chord progression from Paramore, Misery Business, via TheoryTab.

rashidCreative

0:00 / –:––

Composer’s notes

Aerodynamic → One More Time → Aerodynamic. I was in the shower, and I had Voyager by Daft Punk on shuffle playing outside, kind of muffled, and in my head, I thought the two songs Aerodynamic and One More Time would merge well together. I wanted this piece to feel like a small live electronic set, with Aerodynamic as its foundation. It opens with a bell and swooshy wind sound, then the drums and funk groove enter suddenly. The electric guitar solo develops before the groove returns with it. One More Time vocals gradually introduce the second song, until the full chorus plays. At the end, the music blends back into Aerodynamic’s outro and ends in a full-circle moment with the wind and bells from the beginning. The structure of the way the songs overlap, the moments which they lead into each other, and the revised order of some sections is my contribution.

I built the arrangement from TheoryTab and synthesized most of the sounds in Python/Pyquist. The bells combine inharmonic sine-wave partials with individual decays; the guitar-like sounds use damped string modes, short excitation transients, distortion and filtering. Separate bass, percussion, brass, FM, counter-melody and pad parts provide contrasting textures. I asked AI to build a sample pad that I could use to add the vocals over it, then refined their timing by listening and giving annotations. The code stretches those clips to their musical slots, brings the brass in gradually, exchanges the bass parts, and moves the outro melodies through the stereo field.

Sources: both songs are from Daft Punk’s Discovery — Aerodynamic by Thomas Bangalter and Guy-Manuel de Homem-Christo, and One More Time by Thomas Bangalter, Guy-Manuel de Homem-Christo and Anthony Moore. Melody and chord notation from Hooktheory’s community TheoryTab entries. Three short vocal crops from “One More Time” (Romanthony’s vocals) were sourced from Myinstants, uploaded there by Hydrargyrum; no Creative Commons or public-domain license is claimed for them. Everything else is synthesized.

Sudais ArifCreative

0:00 / –:––

Composer’s notes

Promise / Home — After Class is an arrangement of Drake featuring Majid Jordan’s Hold On, We’re Going Home, Bella Kay’s Promise?, and harmonic material from Zelgin Jackson’s I Told My Math Teacher…, with a short rap performance by my friend Vern. I wanted a warm R&B opening with a strong beat, a smooth DJ-style transition, and an energetic ending that makes the computer-generated instruments stand out.

The piece lasts 1:49.21. Drake and Bella share a 112 BPM setting, with Bella’s question leading into Drake’s reassuring refrain. At 1:19.29, the arrangement switches to a 140 BPM rap beat. Vern’s excerpt ends at 1:32.93, followed by an instrumental feature with fast hat rolls, bass slides, plucked-string responses, and drum fills. The backing is synthesized in Python; the sung and rapped excerpts are recorded performances.

The ending adapts Zelgin’s bass/harmonic centres into Emaj7 and C-sharp minor9. Its melodic hook, counter-melody, drum patterns, synthesis, and transition are newly programmed. No Zelgin recording is sampled in the final mix.

Songwriters and performers:

  • Hold On, We’re Going Home: Aubrey Drake Graham, Noah Shebib, Paul Jefferies, Jordan Ullman, and Majid Al Maskati.

  • Promise?: Bella Kay and Alexander Glantz.

  • I Told My Math Teacher…: Zelgin Uri Jackson.

  • Additional rap performance: Vern, from the recording I supplied; its embedded credit is “vern x H A L L O.”

Wenguang DongTechnical

Composer’s notes

This project clones the timbre of a baritone saxophone using additive synthesis. Starting from a single reference recording of one sustained note, I measured its fundamental frequency, the relative amplitude of its first 20 harmonics, and the shape of its amplitude envelope. The cloned instrument reconstructs that timbre from scratch as a sum of sinusoids (via a precomputed one-period wavetable) shaped by the measured envelope.

The pipeline is: download the source note from FreeSound and trim off the leading silence/breath noise; analyze its magnitude spectrum and auto-detect each harmonic peak’s frequency and amplitude; build a one-period wavetable from those 20 harmonic amplitudes and read it back at any target pitch via a phase-accumulator; measure the envelope’s attack time and fit a decay/release curve against the real waveform; and multiply the two together in the cloned instrument. The wavetable/phase-accumulator synthesis technique and the two-stage envelope model are both adapted from the course’s pcm-04-piano.ipynb example notebook.

Source recording: “Sax Baritone - C#3” by MTG — https://freesound.org/people/MTG/sounds/360251/ — License: Creative Commons Attribution 3.0.

Assignment 1: Hello Pyquist and Synthesis#

Arisa Okamura

0:00 / –:––

Composer’s notes

I came across this Netherlands radio bulletin (Scheldt maritime radio bulletin from the Vlissingen Traffic Control Centre, the Netherlands 755 pm 260825 by klankbeeld – https://freesound.org/s/867767/ – License: Attribution 4.0), and thought it could be really cool if I turn some radio bulletin into a rap beat (I really liked the raspiness of the sound and how monotone the voice sounded). The collage creates a “rap track” consisting of 1. a monotone radio bulletin, 2. a rather energetic, aggressive rap beat track to highlight the monotone-ness of the radio, and 3. a background chatter of the children to emphasize the raspiness of the voice (since the radio bulletin I ultimately chose had a clearer voice than the Netherland audio I liked). Offsets and volume balance were carefully adjusted so that the three audios come together naturally as one song, instead of sounding like 3 audios obviously put together. I hope the discrepancy of mood and energy between the chatters of children, the heavy rap beat, and the mechanical radio bulletin announcement contribute to an ominous, dystopian ambience of the song.

License for used audio requiring attribution: 14066 school children ambience loop by Robinhood76 – https://freesound.org/s/867210/ – License: Attribution NonCommercial 4.0

Kathy Ho

0:00 / –:––

Composer’s notes

To be completely honest, this was my first time doing anything even remotely related to music composition/mixing, so I didn’t really know what I was doing. I didn’t go in with a plan and was just experimenting with everything. I wanted to try everything shown in the tutorial (ie. including volume, panning, fading in and out) and had a lot of fun with that, especially panning. I think as I was creating it though, I settled on a slightly spooky/enigmatic theme where I was envisioning a young girl/ghost in a white flowy dress standing alone at a graveyard overlooking everything on a windy night.

Attribution Texts:

grand piano C scale alt by djgriffin

Half-speed! Gypsy and Pluto wind chimes in a GALE by Philip_Goddard

Past semesters#

Note

These showcases refer to a previous version of the course that involved a completely different set of assignments in the Nyquist programming language.