Enxergando a rotina musical

Clique aqui para voltar para o portfólio

Esse foi o primeiro projeto em data viz que fiz, com o pacote ggplot2, do R, e SQL para ajeitar dados. Primeiro, eu baixei um CSV com meu histórico de músicas ouvidas desde 2015, quando criei uma conta no Last.fm, usando este site e colocando meu nome de usuário. O CSV que ele gera tem uma linha para cada música, e nas colunas ele diz qual o artista, qual o álbum e quando você ouviu aquilo.

Hábitos musicais

No R, primeiro precisei usar um gsub para substituir os nomes dos meses ("Jan", "Feb", etc.) por números. Eu poderia ter feito isso no SQL também, mas eu já tinha montado esse banco de dados antes de aprender a usar SQL, para praticar e aprender R.

Em seguida eu importei esse banco de dado novo que fiz no R para um servidor do PostgreSQL para selecionar somente o que eu queria. Selecionei os 10 artistas que mais ouvi de 2017 para cá — meio arbitrário, mas eu queria um ponto que refletisse mais como meu gosto musical se encontra atualmente sem ignorar o passado — com queries simples. Selecionados os artistas, exportei um novo CSV e importei novamente para o código do R.

Novamente no R, adicionei valores nulos para os artistas que não foram ouvidos em algum ano específico. Foi o caso com Tom Waits, Joanna Newsom, Frank Zappa, todos que comecei a ouvir com mais frequência em algum momento depois de 2017 (que fica visível no gráfico). A partir daqui, o banco de dados estava pronto para ser utilizado.

Não teve nada extremamente complicado no uso do ggplot2, no máximo um scale_color_manual para escolher cores melhores do que as automáticas, que se repetiram, e uns size para ajustar o tamanho do título, das legendas e tudo mais. Selecionei também uma fonte particular para o título e o centralizei. O resultado foi:

Nesse ponto o que realmente ficou nítido é que tenho que voltar um pouco às minhas raízes e ouvir mais Bob Dylan, Blondie e Amy Winehouse.

A segunda parte foi um pouco diferente, eu queria um gráfico que mostrasse meus hábitos musicais ao longo do dia. Em que horários eu mais ouço música?

Para isso, usei principalmente o R. No banco de dados original, tinha o horário em que eu ouvi cada música, em horas e minutos. Quando importei para o SQL, foram adicionados segundos (todos ficaram nulos). Para isso, eu não acredito que ver exatamente os minutos seja muito útil, então eu posso ignorar tanto os segundos quanto os minutos. Não tem muita diferença de começar a ouvir uma música às 14:34 para começar a ouvir outra em outro dia às 14:32.

Para conseguir as horas, eu ignorei os segundos novamente usando um gsub para tirar os dois pontos que dividem horas, minutos e segundos e dividi o resultado (obviamente depois de transformar em numérico) por 100. Ora, se todos terminavam em 00, o resultado é somente as horas e minutos. Para conseguir as horas, basta encontrar a parte inteira da divisão desse novo resultado por 100, ou seja, aplicar %/%.

Assim, consegui uma database nova com tudo que ouvi desde 2015 e o valor das horas em que eu estava ouvindo cada música.

Para gerar o gráfico em si, novamente usei ggplot2, dessa vez com um gráfico de barras e em coordenadas polares, porque na realidade 23 horas está próximo das 00. O fato de se parecer com um relógio também é interessante. Enfim, o gráfico ficou:

Eventualmente eu vi que o gráfico inicial que fiz estava errado. O last.fm mostra os horários em fuso horário GMT 00:00, mas estando no Brasil eu estou no fuso GMT -3:00, então eu tinha que diminuir três horas dos horários. Para isso, eu só subtraí por três e, para identificar e corrigir os valores negativos, apliquei um ifelse para somar 24 horas a eles.

O gráfico real me faz parecer menos preguiçoso e fica nítido que não durmo às 3 da madrugada haha.

Integração com o RateYourMusic

O site Rate Your Music é um fórum de música antigo, que conheci, se não me engano, em 2012. Lá, tendo um perfil, você pode dar notas para obras diferentes em uma escala de cinco estrelas, com variação de meia em meia estrela. Na prática, é uma escala de 1 a 10 (não tem a opção de zero estrelas).

A minha ideia era pegar os dez artistas mais ouvidos e, então, ver a média de nota que eu mesmo dei para eles. Pensando um pouco mais, eu esperava ter uma média mais baixa para o Bob Dylan, por exemplo, porque apesar de ser meu artista favorito, é quem eu mais fui atrás da discogravia, então lidei com as obras ruins também. Além disso, quanto mais álbuns o músico tem, maior a chance de ter álbuns medíocres ou ruins. Então achei que valia a pena também levar em conta a quantidade de notas que eu dei para cada um dos artistas. Assim, temos três variáveis: a nota média, qual artista, e a quantidade de notas dadas.

Para organizar os dados é nítido que o que vai ser usado são códigos join no SQL para integrar os bancos de dados que puxei das minhas contas no RYM e no Last.fm, mas não foi tão simples. O problema é que alguns artistas tinham álbuns em diferentes nomes, então nem todas suas obras caíam sob a mesma variável.

Para isso, eu editei o CSV do RYM com o Vim e suas maravilhosas funções de substituição. Eu poderia ter usado as wildcards do SQL, ? e _, mas para mim não tinha tanta diferença, então usei essa ferramenta também.

No fim das contas, exportei CSVs novos e consegui montar o gráfico abaixo no R.

Os dados contidos nesse gráfico são dados pela tabela abaixo:

No processo, eu também criei colunas com primary keys e uma tabela relacionando outras duas, mas não foi necessário nesse pequeno projeto.

O que significa

Acho que o significado real desses gráficos só pode ser absorvido por mim mesmo, afinal eu sei, por exemplo, por que ouvi tão pouco (comparativamente aos anos anteriores) Bob Dylan em 2021. Alguns resultados são óbvios, como eu só ter começado a ouvir Carla Bley em 2019 — foi quando a conheci —, mas ainda dá para ver algumas coisas interessantes.

Como esperado, o Dylan teve uma média baixa, mas pelo terceiro gráfico e a tabela fica nítido que isso aconteceria. Foram 66 obras avaliadas e, sem sombra de dúvida, muitas foram medíocres, o que aumenta a inconsistência e faz a média diminuir. O mesmo vale para o Kanye West que, apesar de não ter tanto álbuns assim, provavelmente lançou mais álbuns do que deveria (Yeezus, estou te olhando). Por outro lado, a Amy Winehouse e a Joanna Newsom são excelentes exemplos de artistas que lançaram poucos álbuns (ainda que por motivos trágicos no caso da primeira) e acabaram sendo consistentes. Ao mesmo tempo, tem que se levar em conta que certamente existem álbuns que ouvi mas não dei nota. Isso provavelmente foi o caso em especial com a Carla Bley — que, aliás, teve algumas obras-primas sob nomes de outros, como Liberation Music Orchestra, onde teve tanta importância, se não mais, que Charlie Haden, A Genuine Tong Funeral de Gary Burton, onde não só compôs todas as músicas como arranjou e tocou piano especialmente memorável na última peça, e The Jazz Composers' Orchestra, que fariam sua média subir para mais quase 8.5 e talvez eu leve isso em conta em atualizações futuras — mas certamente aconteceu com outros também.

Outra coisa interessante é que em 2019 eu aparentemente me expus a mais artistas novos que eu gostei. Ao mesmo tempo que foi um dos anos em que mais ouvi Bob Dylan, foi o ano em que, de longe, mais ouvi Kanye West, em quem desenvolvi alguma curiosidade depois de certas controvérsias de 2018, e vários artistas foram do zero para algo muito alto: Joanna Newsom (cujo terceiro álbum, Have one on Me, passou a ser, por uma margem muito grande, meu mais ouvido desde que comecei a compilar os dados em 2015), Carla Bley (cuja obra-prima Escalator Over The Hill, que até foi tema de um PDF que se encontra no site, também entrou para os 10 álbuns mais ouvidos além de ser um dos meus cinco, três ou dois favoritos) e, claro, Captain Beefheart, que eu já conhecia por causa de Trout Mask Replica (outro que está entre meus mais ouvidos), mas despertou meu interesse profundamente por essa época.

Esse último provavelmente foi a abertura para eu começar a ouvir com mais frequência a minha mais recente obsessão musical, Frank Zappa e sua banda The Mothers of Invention, que dispararam em 2021 e seguem em 2022. O gráfico conta essa história, de certa forma.

Mencionei bastante alguns álbuns, e se eu tiver alguma ideia gráfica envolvendo eles, vou continuar atualizando essa página.