I

Ramon Saraiva

Funk music is stuck on repeat

An application of Colin Morris' TED "Pop Music is Stuck on Repeat" theory to Brazilian funk/pop hits.

Measuring a song repetitiveness is as simple as compressing it. Repetitive lyrics are redundant and good compression algorithms can exploit redundancy at scale to shrink text more efficiently.

I used the Python's stdlib zlib library. zlib supports one algorithm called DEFLATE, that is a variation of LZ77 (Lempel-Ziv 1977). This algorithm provides good compression on a wide variety of data with minimal use of system resources. This is also the algorithm used in the ZIP archive format.

From a dataset of 30 top funk/pop songs from known listings in Brazil, I stored their lyrics in simple text files, as listed here, sending them through a pipeline of processors that will unaccent, deponctuate and tokenize the whole text.

After retrieving this cleaned output from the pipeline, I applied the compression to all lyrics and collected a few metrics, like original size, compression size, compression ratio and space savings.

These are the results, ordered by the higher compression ratio:

SongAuthorSizeComp. sizeComp. ratioSpace savings
Amar? AmeiMC Don Juan20022089.6289.61%
Que tiro foi esseJojo Maronttinni12411448.6288.40%
Agora vai sentarMC's Jhowzinho e Kadinho16282346.9685.63%
Olha a explosãoMC Kevinho13201996.6384.92%
Parado no bailãoMC L Da Vinte11091786.2383.95%
Só quer vrauMC MM17062875.9483.18%
Quem tem o domJerry Smith18713155.9483.16%
ChegueiLudmilla15312595.9183.08%
O bebêMC Kevinho13542475.4881.76%
Favela chegouLudmilla13562565.3081.12%
RabiolaMC Kevinho16053045.2881.06%
Din Din DinLudmilla19623745.2580.94%
FacilitaMC Kevinho15703125.0380.13%
Amor de verdadeMC Kekel19954024.9679.85%
Agora é tudo meuDennis DJ14743034.8679.44%
PapumMC Kevinho11382384.7879.09%
Vamos pra gaiolaMC Kevin13132814.6778.60%
Salvou meu diaMC Kevinho15083324.5477.98%
Deu ondaMC G157371664.4477.48%
Vai meninaPedro Sampaio7621744.3877.17%
Solteiro nunca está sóMC Kekel8301944.2876.63%
Ta tum tumMC Kevinho16543984.1675.94%
Amor bandidoLexa17864464.0075.03%
Medley da gaiolaMC Kevin20885413.8674.09%
O grave baterMC Kevinho7932083.8173.77%
Só vocêDennis DJ10982943.7373.22%
TerremotoAnitta16464573.6072.24%
Vai malandraAnitta18775403.4871.23%
Você partiu meu coraçãoNego do Borel14914783.1267.94%
Bola rebolaTropkillaz22017223.0567.20%