Epic Drums: FMOD Adaptive Music Challenge
Build a drum-driven adaptive score in FMOD Studio that a game controls with a single parameter. You get nine audio files and this brief. You get no FMOD instruction.
- Epic_Drums_Audio_Files.zip (32.6 MB): the nine WAVs you build with. Each file also downloads on its own from the table under The audio files.
- Epic_Drums_Stems.zip (172.6 MB): stems of one play-through, with a MIDI tempo map. See Hearing one play-through.
The challenge
You are the audio implementer on a game. The composer has delivered nine audio files and a description of how the score must behave. Build it in FMOD Studio so the game can run the whole score by changing one parameter.
This is sink or swim. Nobody will show you how FMOD works. This brief says what the player must hear, never which FMOD features to use. Figuring that out is the assignment.
- Use FMOD Studio 2.03. It is free to download with an FMOD account.
- The FMOD Studio User Manual, the FMOD forums, and videos are fair game from the start. Other kinds of help open up over time (see Getting help).
- Do not edit the audio files. Every trim, fade, and alignment happens inside FMOD.
- Build and test everything inside FMOD Studio. No game engine is needed.
Getting help
Start by working it out on your own. More kinds of help open up the longer you work. The clock pinned to the top of this page starts when the challenge starts in class. Working on it outside class? Start your own timer from the same bar. Each stage keeps everything the earlier stages allowed.
| Time since you started | What opens up | Still off limits |
|---|---|---|
| 0:00–0:30 | The FMOD manual, ordinary web searches, forums, and YouTube videos. You work alone. | Other people, AI-generated search results, and AI chatbots |
| 0:30–1:00 | Asking other people in the classroom | AI-generated search results and AI chatbots |
| 1:00–1:30 | AI-generated search results, e.g. the AI summary at the top of a Google search | AI chatbots |
| 1:30 on | AI chatbots (ChatGPT, Claude, Gemini, Copilot, and the like) | Giving a chatbot this page |
Until 1:00, skip past any AI summary a search engine puts at the top of the results. From 1:30 on, ask a chatbot about the specific problem you’re stuck on, in your own words. Don’t paste, upload, screenshot, or link this page into the chat.
The audio files
All nine files are stereo WAVs at 48 kHz, 24-bit. All the music is 171 BPM in 5/4, so one beat is 0.351 s and one bar is 1.754 s. The one exception is a single measure of 6/4 in the transitions into Sections 02 and 03.
| File | Used for | What’s in it | Composer’s notes |
|---|---|---|---|
| Intro.wav | Intro | 1 bar of silence, about 6 bars of music, then a ring-out | The music’s first downbeat is 1.754 s into the file. Count that as bar 1 of the intro. |
| Section_01.wav | Section 01 | 2 bars of drums, then about 6 s of ring-out | The ring-out is part of the sound. It must never be cut off. |
| Section_02.wav | Section 02, and the drums in Section 03 | 2 bars of drums, then about 5 s of ring-out | The ring-out must never be cut off. |
| Section_04_A_Synths.wav | Section 03, first half | 8 bars of synths, then a release tail | Despite its name, this belongs to Section 03. |
| Section_04_B_Synths.wav | Section 03, second half | 8 bars of synths, then a release tail | Despite its name, this belongs to Section 03. |
| Transition_01.wav | Intro → Section 01 | 4 bars, with sound in roughly the first 2 | Play from the start of the file. |
| Transition_02.wav | Intro → Section 02, Intro → Section 03, Section 01 → Section 02, Section 01 → Section 03 | Bars 1–2: silence, then a quiet swell. From bar 3: one measure of 6/4, then a long decay. | Always start it at bar 3, which is 3.509 s into the file. The swell is never used. |
| Transition_04.wav | Section 02 → Section 03 | About 4 loud bars, then a long decay | Play from the start of the file. |
| End-Stinger.wav | End | About 2 loud bars that decay away | Use the first 4 bars only, fading to silence over bars 3–4. |
There is no Transition_03.wav. The numbering skips it.
The sections
The score has five sections. The music stays in a section until the game asks for another one, and it leaves only at that section’s exit points.
| Section | What plays | Length | While the game stays here | Exit points |
|---|---|---|---|---|
| Intro | Intro.wav | About 6 bars | Plays once and never repeats. It always leaves at bar 6. | Bar 6, beat 1 (to Section 01). Bar 6, beat 3 (to Section 02, Section 03, or End). |
| Section 01 | Section_01.wav | 2 bars | Repeats forever | The end of every 2-bar pass |
| Section 02 | Section_02.wav | 2 bars | Repeats forever | The end of every 2-bar pass |
| Section 03 | Section_02.wav drums on every 2-bar pass. Synth A over bars 1–8, then Synth B over bars 9–16. | 16 bars | Repeats forever from bar 1 | The end of bar 8 and the end of bar 16 |
| End | End-Stinger.wav | 4 bars | Plays once, then the music stops by itself | None |
Bar 6 of the intro falls 10.53 s into Intro.wav, and beat 3 of that bar falls at 11.23 s.
Moving between sections
The game controls the score through one global parameter named Control. It has four labeled values: Section 01, Section 02, Section 03, and End. Its default is Section 01. The game starts one event, event:/Music, and after that only changes Control.
When Control changes, the music plays on to the current section’s next exit point, then moves to the section Control names. If Control never changes, the intro leads into Section 01, which repeats forever.
Solid arrows play the composed transition music named on them. Dashed arrows have no transition content: the music cuts straight to the next section.
| Move | Transition audio | Before the new section starts | Rings on into the new section |
|---|---|---|---|
| Intro → Section 01 | Transition_01, from the start | 2 bars of 5/4 | Transition_01, and the intro through Section 01’s first pass, fading out over its last 2 beats |
| Intro → Section 02 | Transition_02, from bar 3 | 1 measure of 6/4 | Transition_02 and the intro |
| Intro → Section 03 | Transition_02, from bar 3 | 1 measure of 6/4 | Transition_02 and the intro |
| Section 01 → Section 02 | Transition_02, from bar 3 | 1 measure of 6/4 | Transition_02, fading out |
| Section 01 → Section 03 | Transition_02, from bar 3 | 1 measure of 6/4 | Transition_02 |
| Section 02 → Section 03 | Transition_04, from the start | 1 bar of 5/4, then 1 measure of 6/4 | Transition_04 |
The new section starts on its own downbeat right after the measure listed. Everything in the last column keeps sounding over the start of the new section. How long it rings, and how it fades, is your call.
Every other move is an immediate cut: the new section starts on its first downbeat at the exit point.
How the files line up
Pick where the music starts and where Control sends it. The timeline puts each audio file on the bar grid, so you can see where it starts, which part of it is heard, and what is still ringing when the next section lands. Hover over a file for its exact start and end points.
Hearing one play-through
The stems are one possible play-through of the finished music system, bounced to 14 stereo WAVs (48 kHz, 24-bit, 98.9 s each) with a MIDI tempo map. Use them to hear how the sections and transitions should flow. Your FMOD build still uses only the nine audio files above, and it can take other routes through the score.
- Download and unzip Epic_Drums_Stems.zip (172.6 MB).
- Import
EPIC-DRUMS_Tempo-Map.midinto a new DAW session first. If your DAW asks, import its tempo and time signature changes too. The map is 171 BPM in 5/4 with two single measures of 6/4, at bar 14 and bar 22. If your DAW shows those, the map came in correctly. - Import the 14 stems at the very start of the session, where the MIDI file starts.
- Play it back with the bar grid showing.
The tempo map also downloads on its own: EPIC-DRUMS_Tempo-Map.mid.
Rules that always apply
- Loops are seamless. There is no gap, no flam, and no doubled downbeat where a section repeats.
- Ring-outs are never cut. When a pass repeats, the previous pass’s ring-out keeps sounding under the new one. When the music moves, whatever was playing rings out underneath.
- Moves wait for exit points. A change to Control never moves the music mid-pass.
- Sections land on the grid. Every section starts on a downbeat, including after the 6/4 measure in a transition.
- Nothing plays that shouldn’t. After the music leaves Section 03, no synth layer or extra drum pass starts over the new section.
- The intro plays once. It plays each time the event starts and never again until the event restarts.
- The ending ends everything. End plays the stinger, then the event stops with no further input from the game.
How it’s evaluated
There is nothing to hand in. Your build is evaluated in class against the test checklist below, with Control changed live in FMOD Studio.
Test checklist
Your build passes when every check below behaves as described. Run it yourself before class.
- Default path. Start the event with Control at
Section 01and leave it alone. The intro plays once, Transition_01 starts at bar 6, and Section 01 repeats for at least a minute with no gaps and no cut ring-outs. - Waiting for the exit. In Section 01, switch Control to
Section 02mid-pass. The music finishes the pass, plays one measure of 6/4, and lands in Section 02. - Into Section 03. From Section 02, switch to
Section 03. Transition_04 plays, and Section 03 arrives after one bar of 5/4 and one measure of 6/4. Synth A plays first, Synth B takes over after 8 bars, and the section starts over after 16. - Halfway exit. In the first half of Section 03, switch to
Section 01. The music leaves at the end of bar 8, not bar 16, and no synth starts new material over Section 01. - Endings. From the intro and from each section, switch to
End. The stinger starts at the next exit point and fades out, and the event stops by itself. - Intro routes. Start the event with Control already at
Section 02, then atSection 03, then atEnd. Each time, the intro leaves at bar 6, beat 3, through the right transition. - Stress test. Change Control several times within one pass. At the exit point, the music goes wherever Control points at that moment. Nothing doubles up and nothing drops out.
The solution
Epic_Drums_Solution.zip (36.6 MB) is a finished build of this challenge: an FMOD Studio 2.03 project with the event event:/Music and the global parameter Control. Unzip it, open Epic Drum - Solution.fspro in FMOD Studio, and run it through the test checklist above to compare it with your own build.