Twitter and Audio Steganography

Note: This article was originally hosted on Medium.

Markus Persson, famed developer of Minecraft tweeted the above image: a pixelart vinyl LP with the label “Turn Down For What”. Upon seeing this, the pattern of colors in the spiral seemed remarkably non-random, and I set out to see if something was afoot.

My first step was to take the spiral and turn it into an array of bytes to make manipulation easier. I hacked up a tool in C# to do this, the source code of which can be found here. It starts at the outer edge, surveys the surrounding pixels for non-zero values, and moves to the next one that it hasn’t been to yet, accumulating the values into a buffer as it goes.

Once I had the raw data in a file, I set about to see what the internal data was. My immediate efforts in a hex editor were largely unfruitful — the data seemed random and unintelligible.

I then took a second to think; the data was drawn on an LP image, what if it’s audio data? Using Audacity’s “Import Raw Data” option, I was able to test that theory. To start with, I used the default parameters, with a sample rate of 44100Hz. This gave me a very short beepy noise. Not quite what I was after but there was a definite waveform shape, it was certainly an audio file.

I spent a while tweaking the sample rate until I struck gold — at around 4000Hz, it becomes very clearly a clip of the bass drop from DJ Snake & Lil Jon’s Turn Down For What. The audio can be found here.

Also of note, if you read the spiral starting at the middle going out, the first 4 bytes, when converted to ASCII, read “TDF?” — a contraction of Turn Down For What? [Ed: Markus tells me this is just a happy accident]

The raw binary data (as read from the outer edge going inwards) can be found here.