Texto

Gráfico 1 - Nuvem de Palavras: mostra as palavras mais recorrentes nas músicas do Chico buarque. As palavras consideradas são aquelas que tem uma frequência mínima (>5) nos textos, para não “poluir” a nuvem.

Gráfico 2 - Rede de Associações: mostra as palavras mais comumente associadas, ou seja, que mais aparecem conjutamente (antes ou depois) com a palavras “amor”. O “amor” foi escolhido como referência, mas a rede pode ser feita com outras palavras, inclusive mais de uma.

Gráfico 3 - % de Polaridades por Música: em análise de texto, podemos atribuir polaridades (-1, 0, 1) que corresponde aos sentimentos “Negativo”, “Neutro” e “Positivo”, respectivamente, às palavras das letras. O gráfico exibido mostra as porcentagens de cada sentimento nas músicas de Chico Buarque, considerando palavra a palavra.

% de polaridades por música
0.000.250.500.751.00A Noiva Da CidadeA VioleiraFuturos AmantesA Volta Do MalandroBasta Um DiaHomenagem Ao MalandroAlmanaquePiano Na MangueiraAmor BaratoAssentamentoDeus Lhe PagueIracema VoouAs VitrinesAna De AmsterdamA Mais BonitaSonho De Um CarnavalA Mulher De Cada PortoAs CaravanasFesta ImodestaTanto AmarA RitaA Cidade IdealA GalinhaAnos DouradosBom TempoA BandaAcorda AmorAmando Sobre Os JornaisAno NovoBaioqueO Meu AmorAs Minhas MeninasA RosaAs AtrizesAs CartasAcalanto
NegativoNeutroPositivoPolaridadesSentimento
Nuvem de palavras

Associação entre palavras
aguentaamorandorbrasileiracafunécantadorcerzircurtoesfarraparesquentafurtohonestolevomariasemvergonhamendigarmodestopechinchapobreprecisãoquestãosonhavalorvelozelo
Acordes distintos/música
1020304050AcalantoA GalinhaA BandaBaioqueTanto AmarAlmanaqueAno NovoAna De AmsterdamDeus Lhe PagueA Cidade IdealA Volta Do MalandroBom TempoFesta ImodestaFuturos AmantesAcorda AmorAs CartasA RosaSonho De Um CarnavalA RitaA VioleiraPiano Na MangueiraHomenagem Ao MalandroAs Minhas MeninasO Meu AmorAs CaravanasAmando Sobre Os JornaisBasta Um DiaA Mulher De Cada PortoAnos DouradosIracema VoouAs VitrinesAssentamentoA Noiva Da CidadeAmor BaratoAs AtrizesA Mais Bonita
Quantidade de acordes distintos
Densidades de Variáveis Extraídas

Texto

Gráfico 1 - Quantidade de acordes distintos: este gráfico mostra as quantidades de acordes diferentes, desconsiderando as repetições, que aconteceram em cada música considerada aqui.

Gráfico 2 - Densidades de Variáveis Extraídas: com os acordes em mão, podemos realizar a extração de algumas covariáveis legais. Os exemplos aqui são de porcentagens de acorde com sétima, quinta, quarta, nona, acordes menores, entre outros, tudo isso por música. o gráfico mostra as densidades destas variáveis.

Gráfico 3 - O Diagrama de Cordas: este gráfico representa as frequências que cada transição entre os acordes ocorreram no total de músicas trabalhadas aqui. No caso, considera-se apenas a versão “simples” do acorde, ou seja, sem notas extras. O diagrama está na ordem do círculo das quintas,

Diagrama de cordas
Gráficos sobre Dançabilidade

Escalas: Cifraclub x Spotify
    
        C   C#    D   D#    E    F   F#    G   G#    A   A#    B
  C  1537    0  358   87  807   41    0  436  172  371    0   87
  C#    0    0    0    0    0    0    0    0    0    0    0    0
  D     0   77  291   77    0  154  231  154    0    0    0   77
  D#   83    0   83    0   83    0    0    0    0    0    0    0
  E     0    0  176   51  528    0  176  176    0  148    0  148
  F   152  238  247   70    0  222  119  689  119   82  201  790
  F#    0    0    0   85    0    0    0    0    0    0    0    0
  G     0    0    0    0   47    0    0  255    0    0    0  321
  G#    0    0    0    0    0    0    0    0    0    0    0    0
  A   159    0  194   97  360  216   34 2103    0  515  144    0
  B     0    0    0    0    0    0    0    0    0    0    0    0
Definindo as variáveis

As variáveis mostradas nos gráficos sobre as músicas do Chico Buarque podem ser definidas simplificadamente como:

Dançabilidade: descreve o quanto uma música é “dançável”. Esta é uma medida que considera elementos como o ritmo, a batida, o tempo e a regularidade da música.

Energia: é uma midade que representa a intensidade e atividade da música. Músicas mais energéticas são rápidas, altas e ruidosas, por exemplo. Por outro lado, músicas clássicas são consideradas de pouca energia.

Sonoridade: é uma medida em decibéis sobre o quanto as canções são “altas”, no sentido sonoro. Essa variável tem relação com com força física, ou amplitude, das músicas.

Fala: essa é a variável que mostra o quanto da música são palavras faladas. Se esta medida estiver acima de 0.66, há grande chances dela ser inteiramente falada. De forma análoga, valores abaixo de 0.33 indicando músicas que provavelmente tem pouco ou quase nada de palavras.

Vivacidade: detecta a presença de audiências nas gravações. Se este valor estiver acima de 0.8, por exemplo, existe uma alta probabilidade da música ser ao vivo.

Duração: é a duração da música em milisegundos.

Acusticidade: é uma medida de confiança sobre o quanto uma música é acústica.

Gráficos - Os gráficos apresentados são da variável dançabilidade contra as outras explicadas acima, com uma reta de regressão linear simples sobre os pontos. Podemos observar o quanto as relações explicitadas fazem sentido. Por exemplo, quanto mais temos de energia em uma música, maior é seu nível de dançabilidade. Da mesma forma, quanto mais acústica, ela é menos dançável também, e assim por diante.

Tabela - A tabela apresentada nessa seção representa as escalas obtidas através do Cifraclub versus as escalas do Spotify. Um dos grandes problemas do Cifraclub é a quantidade de informações incorretas que os usuários inserem. Esta comparação demonstra o quanto os dados de um software diferem do que foi escrito no Cifraclub.

Letras
# install.packages(“vagalumeR”)
library(vagalumeR)
chave <- "sua-api-key"
artista <- "chico-buarque"
ids <- songNames(artista)
# todas as letras
letra <- purrr::map(ids$song.id, lyrics, 
                    artist = artista, key = chave, type = "id") %>% 
  purrr::map_dfr(data.frame)

# letras por nome da música
letra <- lyrics("a-banda", artist = "chico-buarque", 
                key = chave, type = "name")
Acordes
library(tidyverse)

# install.packages(“chorrrds”)
library(chorrrds)

nomes <- get_songs(artista)
# todos os acordes
acordes <- get_chords(nomes$url)
head(acordes)
# letras por música específica
musica <- nomes %>% dplyr::filter(
  stringr::str_detect(name ,pattern  = "a banda"))
Spotify
# devtools::install_github("tiagomendesdantas/Rspotify")
library(Rspotify)

busca <- unique(acordes$music) # do objeto anterior

chave <- spotifyOAuth("app_id","client_id","client_secret")

# buscando os ids das músicas dentro do Spotify
possibly_track <- purrr::possibly(searchTrack, otherwise = "mensagem")
ids <- purrr::map(busca, possibly_track, token = chave) %>% 
  purrr::map_dfr(data.frame) %>% 
  dplyr::select(id, display_name)

# buscando as features dos ids anteriores
info <- purrr::map_dfr(ids$id, getFeatures, token = chave)  
spotify <- dplyr::inner_join(ids, info, "id") %>% 
  group_by(id, display_name) %>% 
  slice(1) # mantendo apenas a primeira linha de cada nome de música
Unindo tudo
acordes <- acordes %>% 
  dplyr::mutate(acorde = stringr::str_extract(chord, 
                                              pattern = "^([A-G]#?b?)"),
                song = stringr::str_remove(music, "chico buarque ")) 

letra <- letra %>% 
  dplyr::mutate(song = stringr::str_to_lower(song),
                song = abjutils::rm_accent(song))

spotify <- spotify %>% 
  dplyr::mutate(song = stringr::str_to_lower(display_name), 
                song = abjutils::rm_accent(song))

match <- dplyr::inner_join(letra, acordes, by = "song") %>% 
  dplyr::inner_join(spotify, by = "song") %>% 
  dplyr::select(-c(uri, analysis_url))