Skip to main content
Background Image

Extracting the soundtrack from Tetris Beat

·4 mins·
Table of Contents

More Micro

AI, the first year uni student helping you write code
·4 mins
Banana Blitz
·3 mins
Waves
·1 min
Mini Music Player
·1 min
Lego Mac Mini Case
·1 min

Tetris Beat is a snapshot of history, and a bit of a warning of what may happen to games on Apple Arcade when they’re no longer popular or profitable. It’s now been removed, and unless you had a copy of the .app sitting around in a time machine backup, it can be lost entirely.

I quite like physical media, and think its important to preserve and remember things that have had an impact in your life. Tetris Beat isn’t the best version of falling blocks, but it had some banger tunes that were licensed just for the game, and aren’t available anywhere else on the internet. Some may argue they aren’t that great (that audio in effect is more immersive.. Try the multiplayer modes and you’ll realise it isn’t), but when you’ve played hours of a game with the same songs going over and over, it can sway power to bring back some memories.

It launched in August 2021 and was quietly removed in August 2024, and the music went with it. So one arvo, after finding the app in my backups, and an interest to test the Fable model, I went and got the songs.

TLDR; Tetris Beat hid its soundtrack in a heap of numbered .wem files. A weekend, three open-source tools and one content-hash later, all 43 tracks are out — rescued from a game that no longer exists. code available on Github

Game audio in game codecs
#

Tetris Beat is a Unity game, with audio handled by Wwise, a specialist bit of kit used to make game audio react in real time. And Wwise doesn’t store named MP3s, but packs them into cryptic .wem and .bnk formats named with numeric IDs. So on disk it’s a folder full of 12345678.wem files and no obvious way to listen to them.

Thank you open source
#

There’s a great community that’s already built the hard parts to extract the audio: vgmstream to decode, UnityPy to read Unity’s asset files, and wwiser to make sense of how a soundbank is put together.

The songs that were never finished
#

Some forensics of the app showed that not every track ships as a finished song. There are also a few that ship with the vocals, bass, drums and rhythm as separate layers that the game blends live while you play. For those I stacked the layers back together. It’s recognisably the song, just not the polished master. (An interesting find: the game launched with 18 songs, and I found exactly 18 finished masters buried in the files. The rest, added month by month afterwards, only ever shipped as stems - the layers of the song.)

Full soundtrack
#

I got Clause to make a mini web player that was block themed just as a mini celebration.

web song player
Claude assisted web player to show off those new beats

The full 43-track catalogue (click to expand)
#TitleArtistBPM
0Korobeiniki (TB Remix)Uriel Ohm120
1SummersaultsAlison Wonderland155
2MystificationGARZA116
3Make It HappenMake It Happen93.5
4Time Is FastEquateur157
5Break My HeartCandace Sosa120
6Happy AgainNIKONN feat. Melllo119
7ArtetDauwd124
8En El BloqueEn El Bloque78.5
9BangKaleb The Intern168
10Cosmic HoleOcto Octa126
11GeekLil Debit79.5
12Controlled BreathEris Drew128
13Top of the WorldDYSON124
14Play With My HeartHannah Diamond135
15Caza RatonDru Flecha104
16Date NightCINTHIE124
17DominoesCARNE XL72.5
18I’m Just SayingGidi & Deraj123
19HYDRADJ QBERT100
20Fall For YouMarcopatino128
21Dancing All AloneKatherine Ho122
22TakusanMiyachi74
23Por TiB NAIN138
24BurstYTN Tee x Kay130
25Lovely JourneyMarina Trench118
26SlingshotHalo Sol145
27SnowballLaura BCR125
28Accidental LoveBAIYU120
29Get SetJason Chu95
30Money Over HereBaby Blak79
31Falling FantasyD. Tiffany130
32New WaveVoli Contra95
33Battle ModeThe Fresh Crew170
34Covered - Fvntvcy RemixImportz feat. Jade Josephine108
35No DanceCYRK129
36Feelin'Nate Harlan100
37Time Is Like GoldIron Mic Family feat. A.T.L.92
38Mo MaloyaRibongia feat. Simangavole156
39Yeah YeahNardo Says94
40Far AwayNomdecode Spartacus120
41Phases and FacesGARZA124
42Feel SomethingTitle.Wav120

A little context for the effort: Tetris was made by N3TWORK, and the franchise holds the Guinness World Record for the most official versions of a video game — somewhere north of 200 releases across 65-odd platforms. Tetris Beat is the one you can’t play anymore. Which is really the whole reason this project exists, once it left Arcade the music left with it.

The full script is here: gist link. You’ll need a copy of the Tetris Beat app, then you’ll be able to relive all the music or spoiler maybe even play your own…

Adam Kostarelas
Author
Adam Kostarelas
Tech & Cyber @ HumanAbility