Guía Arduino Science Journal

Experimento con tono (Hz)

Autor

Edimer David Jaramillo

Bibliotecas

Código
library(tidyverse)

Datos Juanes

Código
juanes_solo <- read_csv("tonos-canciones/Juanes Solo.csv") %>% 
  mutate(cantante = "Juanes",
         cancion = "Solo")

juanes_cnegra <- read_csv("tonos-canciones/Juanes La camisa negra.csv") %>% 
  mutate(cantante = "Juanes",
         cancion = "La camisa negra")

juanes_vida <- read_csv("tonos-canciones/Juanes La vida es un ratico.csv") %>% 
  mutate(cantante = "Juanes",
         cancion = "La vida es un ratico")

Datos Reggaeton

Código
reg_bichota <- read_csv("tonos-canciones/Raggaeton Bichota.csv") %>% 
  mutate(cantante = "Reggaeton",
         cancion = "Bichota")

reg_gasolina <- read_csv("tonos-canciones/Raggaeton La Gasolina.csv") %>% 
  mutate(cantante = "Reggaeton",
         cancion = "La Gasolina")

reg_nomeconoce <- read_csv("tonos-canciones/Raggaeton No me conoce - remix.csv") %>% 
  mutate(cantante = "Reggaeton",
         cancion = "No me conoce")

Datos Salsa

Código
salsa_preso <- read_csv("tonos-canciones/Salsa El preso.csv") %>% 
  mutate(cantante = "Salsa",
         cancion = "El Preso")

salga_guajira <- read_csv("tonos-canciones/Salsa Guajira Guantanamera.csv") %>% 
  mutate(cantante = "Salsa",
         cancion = "Guajira Guantanamera")

salsa_sonidob <- read_csv("tonos-canciones/Salsa Sonido bestial.csv") %>% 
  mutate(cantante = "Salsa",
         cancion = "Sonido Bestial")

Datos Michael Jackson

Código
mj_beatit <- read_csv("tonos-canciones/Michael J. Beat it.csv") %>% 
  mutate(cantante = "Michael Jackson",
         cancion = "Beat it")

mj_billie <- read_csv("tonos-canciones/Michael J. Billie Jean.csv") %>% 
  mutate(cantante = "Michael Jackson",
         cancion = "Billie Jean")

mj_thriller <- read_csv("tonos-canciones/Michael J. Thriller.csv") %>% 
  mutate(cantante = "Michael Jackson",
         cancion = "Thriller")

Datos completos

Código
datos_completos <-
  bind_rows(
    juanes_cnegra,
    juanes_solo,
    juanes_vida,
    reg_bichota,
    reg_gasolina,
    reg_nomeconoce,
    salga_guajira,
    salsa_preso,
    salsa_sonidob,
    mj_beatit,
    mj_billie,
    mj_thriller
  ) %>% 
  rename(tono = PitchSensor)

datos_completos %>% head()

Juanes

Código
datos_completos %>% 
  filter(cantante == "Juanes") %>% 
  ggplot(aes(x = timestamp, y = tono, color = cancion)) +
  facet_wrap(~cancion, scales = "free") +
  geom_line() +
  geom_smooth()

  • ¿Qué pasa si quito la línea?
Código
datos_completos %>% 
  filter(cantante == "Juanes") %>% 
  ggplot(aes(x = timestamp, y = tono, color = cancion)) +
  facet_wrap(~cancion, scales = "free") +
  geom_smooth()

  • ¿Cómo puedo graficar un modelo lineal (y = mx + b)?
Código
datos_completos %>% 
  filter(cantante == "Juanes") %>% 
  ggplot(aes(x = timestamp, y = tono, color = cancion)) +
  facet_wrap(~cancion, scales = "free") +
  geom_smooth(method = "lm")

Distribuciones

  • ¿Son similares las distribuciones del tono para cada género?
Código
datos_completos %>% 
  ggplot(aes(x = tono, color = cantante)) +
  geom_density() 

  • ¿Qué pasa si aplicamos un logaritmo?
Código
datos_completos %>% 
  ggplot(aes(x = tono, color = cantante)) +
  geom_density() +
  scale_x_log10()

  • Representamos ahora la misma información anterior con un boxplot:
Código
datos_completos %>% 
  filter(cantante == "Juanes") %>% 
  ggplot(aes(x = cancion, y = tono)) +
  geom_boxplot()

  • El mismo gráfico anterior con logaritmos:
Código
datos_completos %>% 
  filter(cantante == "Juanes") %>% 
  ggplot(aes(x = cancion, y = tono)) +
  geom_boxplot() +
  scale_y_log10()

  • El mismo gráfico anterior con logaritmos y agregando gráfico de violín:
Código
datos_completos %>% 
  filter(cantante == "Juanes") %>% 
  ggplot(aes(x = cancion, y = tono)) +
  geom_violin() +
  geom_boxplot(width = 0.1) +
  scale_y_log10()