Paquetes

Instalar los paquetes necesarios

# install.packages("devtools")
devtools::install_github("keithmcnulty/Rmusic", build_vignettes = TRUE)
## Skipping install of 'Rmusic' from a github remote, the SHA1 (07d3c027) has not changed since last install.
##   Use `force = TRUE` to force installation

Teclas = sonido

Identificar el sonido con una tecla

jbells_pitch <- paste(
  "E E E",
  "E E E",
  "E G C D",
  "E",
  "F F F F",
  "F E E E",
  "E D D E",
  "D G",
  "E E E",
  "E E E",
  "E G C D",
  "E",
  "F F F F",
  "F E E E E",
  "G G F D",
  "C",
  "G3 E D C",
  "G3",
  "G3 G3 G3 E D C",
  "A3",
  "A3 F E D",
  "B3",
  "G G F D",
  "E",
  "G3 E D C",
  "G3",
  "G3 E D C",
  "A3 A3", 
  "A3 F E D",
  "G G G G A G F D",
  "C C5 B A G F G",
  "E E E G C D",
  "E E E G C D",
  "E F G A C E D F",
  "E C D E F G A G",
  "F F F F F F",
  "F E E E E E",
  "E D D D D E",
  "D D E F G F E D",
  "E E E G C D",
  "E E E G C D",
  "E F G A C E D F",
  "E C D E F G A G",
  "F F F F F F",
  "F E E E E E",
  "G C5 B A G F E D",
  "C C E G C5"
)

Duración

Indicar la duración de cada tecla

jbells_pitch <- strsplit(jbells_pitch, " ")[[1]]

jbells_duration <- c(
  1, 1, 2, 
  1, 1, 2, 
  1, 1, 1.5, 0.5, 
  4, 
  1, 1, 1, 1, 
  1, 1, 1, 1, 
  1, 1, 1, 1,
  2, 2,
  1, 1, 2, 
  1, 1, 2, 
  1, 1, 1.5, 0.5, 
  4, 
  1, 1, 1, 1, 
  1, 1, 1, 0.5, 0.5, 
  1, 1, 1, 1,
  4,
  1, 1, 1, 1, 
  3, .5, .5, 
  1, 1, 1, 1, 
  4,
  1, 1, 1, 1, 
  4,
  1, 1, 1, 1, 
  4,
  1, 1, 1, 1, 
  4,
  1, 1, 1, 1, 
  3, 1,
  1, 1, 1, 1,
  1, 1, 1, 1, 
  1, 1, 1, 1, 
  1, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
  1, 1, 0.5, 0.5, 0.5, 0.5, 
  1, 1, 0.5, 0.5, 0.5, 0.5,
  0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
  0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
  1, 0.5, 0.5, 1, 0.5, 0.5, 
  1, 0.5, 0.5, 1, 0.5, 0.5, 
  1, 0.5, 0.5, 0.5, 0.5, 1,
  1, 0.33, 0.33, 0.33, 1, 0.33, 0.33, 0.33,
  1, 1, 0.5, 0.5, 0.5, 0.5, 
  1, 1, 0.5, 0.5, 0.5, 0.5,
  0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
  0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
  1, 0.5, 0.5, 1, 0.5, 0.5, 
  1, 0.5, 0.5, 1, 0.5, 0.5, 
  0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
  1, 0.33, 0.33, 0.33, 2
)

Acción

Indicar que se reproduzca con las teclas y duración previamente mencionadas

Rmusic::play_music(jbells_pitch, jbells_duration)
## Warning: `data_frame()` was deprecated in tibble 1.1.0.
## Please use `tibble()` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.

Guardar

Rmusic::save_music(jbells_pitch, jbells_duration, output_file = "jbells.wav")

Conclusión

Asi como Jingle Bells, pueden existir muchas otras canciones que pueden ser codificadas en R, primero se establecen las teclas como sonidos, para asi despues asignarle una duración a cada tecla. Rmusic::play_music en este caso sirve para reproducir la canción con las teclas y duración establecidas, y Rmusic::save_music sirve para guardarlo en tu carpeta.

Nuevamente podemos observar que RStudio puede manejar una cantidad inmensa de paquetes y librerias que ayudan a ejecutar cualquier idea que el usuario tiene en mente.