Ableton Wav Export Easter Egg
miscDiscovery
While developing the the Wavetable of Life app and experimenting how far I could push the WAV file format before it died, I happened across a funky little message in my hex editor.
00000000: 5249 4646 3a8f af02 5741 5645 4a55 4e4b RIFF:...WAVEJUNK
00000010: 1c00 0000 5768 7920 7220 7520 7573 696e ....Why r u usin
00000020: 6720 6120 6865 7820 6564 6974 6f72 3f20 g a hex editor?
00000030: 666d 7420 1000 0000 0100 0200 44ac 0000 fmt ........D...
“Hah!” I thought. Its a pretty fun use of some otherwise useless bytes, but I didn’t think much of it. A few days later, when the app was done, I decided to show off this little easter egg as a party trick. So I booted Ableton, rendered a wav file and…
00000000: 5249 4646 baab 9600 5741 5645 4a55 4e4b RIFF....WAVEJUNK
00000010: 1c00 0000 5468 6520 736c 6565 7065 7220 ....The sleeper
00000020: 6d75 7374 2061 7761 6b65 6e20 2020 2020 must awaken
00000030: 666d 7420 1000 0000 0100 0200 80bb 0000 fmt ............
HUH?
So as it turns out, when you export a wav file from ableton, it puts a fun little message into the junk chunk.
The natural next question to ask is “What other messages are there?” So I coded a little script that went through my music directory and read all the junk chunks. It’s probably not the most elegant code, but it works.
import os
directory = "~/Desktop/Music"
musicFiles = os.listdir(directory)
maxRead = 100
wavFiles=list(filter(lambda x: x[-4:]==".wav", musicFiles))
junkStrings = []
for file in wavFiles:
with open(directory+"/"+file, "rb") as f:
openingBytes = f.read(maxRead)
junkLoc = openingBytes.find(b"JUNK")
if(junkLoc==-1):
pass
else:
junkLength = int.from_bytes(openingBytes[junkLoc+4:junkLoc+8],"little");
junkString = openingBytes[junkLoc+8:junkLoc+junkLength+8]
if junkString not in junkStrings:
junkStrings.append(junkString)
for js in junkStrings:
print(js)
b"Life isn't a problem 2 solve"
b"This is the woman's century "
b'The future is female '
b'Ozymandias, King of Kings '
b'The sleeper must awaken '
b'Hope clouds observation '
b'Why r u using a hex editor? '
b'What r men 2 rocks n mountns'
b'Fear is the mind-killer '
b'Angry ppl r not always wise '
b'The cyborg is our ontology '
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'We are the dreamers o dreams'
And thats all!
Other maybe easter eggs
I went looking for other easter eggs but I didn’t find any other super interesting ones.
The first 4 bytes of the Live binary are cafebabe
but that might well be because its made in java. Theres also a function called rc2_magic_to_meth
but I think it might just be weird terminology for the authentication system. Its pretty disappointing that this is the only easter egg I could find in the whole system.