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.

LS0tCnRpdGxlOiAiSmluZ2xlIEJlbGxzIgphdXRob3I6ICJJdmFubmEgR2FyemEgQTAxMjgzNzU5IgpkYXRlOiAiMjAyMi0wOS0wNiIKb3V0cHV0OiAKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIHRoZW1lOiBjZXJ1bGVhbgogICAgaGlnaGxpZ2h0OiB0YW5nbwogICAgY29kZV9kb3dubG9hZDogdHJ1ZSAKLS0tCjxpbWcgc3JjPSAiL1VzZXJzL2l2YW5uYWdhcnphL0Rlc2t0b3AvNDViMTM1NThhZDExNDcwNjE1NWEzZThlMTE4Mzg5MDEuZ2lmIj4KCiMjIFBhcXVldGVzIApJbnN0YWxhciBsb3MgcGFxdWV0ZXMgbmVjZXNhcmlvcyAKYGBge3J9CiMgaW5zdGFsbC5wYWNrYWdlcygiZGV2dG9vbHMiKQpkZXZ0b29sczo6aW5zdGFsbF9naXRodWIoImtlaXRobWNudWx0eS9SbXVzaWMiLCBidWlsZF92aWduZXR0ZXMgPSBUUlVFKQoKYGBgCgojIyBUZWNsYXMgPSBzb25pZG8KSWRlbnRpZmljYXIgZWwgc29uaWRvIGNvbiB1bmEgdGVjbGEgCmBgYHtyfQpqYmVsbHNfcGl0Y2ggPC0gcGFzdGUoCiAgIkUgRSBFIiwKICAiRSBFIEUiLAogICJFIEcgQyBEIiwKICAiRSIsCiAgIkYgRiBGIEYiLAogICJGIEUgRSBFIiwKICAiRSBEIEQgRSIsCiAgIkQgRyIsCiAgIkUgRSBFIiwKICAiRSBFIEUiLAogICJFIEcgQyBEIiwKICAiRSIsCiAgIkYgRiBGIEYiLAogICJGIEUgRSBFIEUiLAogICJHIEcgRiBEIiwKICAiQyIsCiAgIkczIEUgRCBDIiwKICAiRzMiLAogICJHMyBHMyBHMyBFIEQgQyIsCiAgIkEzIiwKICAiQTMgRiBFIEQiLAogICJCMyIsCiAgIkcgRyBGIEQiLAogICJFIiwKICAiRzMgRSBEIEMiLAogICJHMyIsCiAgIkczIEUgRCBDIiwKICAiQTMgQTMiLCAKICAiQTMgRiBFIEQiLAogICJHIEcgRyBHIEEgRyBGIEQiLAogICJDIEM1IEIgQSBHIEYgRyIsCiAgIkUgRSBFIEcgQyBEIiwKICAiRSBFIEUgRyBDIEQiLAogICJFIEYgRyBBIEMgRSBEIEYiLAogICJFIEMgRCBFIEYgRyBBIEciLAogICJGIEYgRiBGIEYgRiIsCiAgIkYgRSBFIEUgRSBFIiwKICAiRSBEIEQgRCBEIEUiLAogICJEIEQgRSBGIEcgRiBFIEQiLAogICJFIEUgRSBHIEMgRCIsCiAgIkUgRSBFIEcgQyBEIiwKICAiRSBGIEcgQSBDIEUgRCBGIiwKICAiRSBDIEQgRSBGIEcgQSBHIiwKICAiRiBGIEYgRiBGIEYiLAogICJGIEUgRSBFIEUgRSIsCiAgIkcgQzUgQiBBIEcgRiBFIEQiLAogICJDIEMgRSBHIEM1IgopCmBgYAoKIyMgRHVyYWNpw7NuCkluZGljYXIgbGEgZHVyYWNpw7NuIGRlIGNhZGEgdGVjbGEgCmBgYHtyfQoKamJlbGxzX3BpdGNoIDwtIHN0cnNwbGl0KGpiZWxsc19waXRjaCwgIiAiKVtbMV1dCgpqYmVsbHNfZHVyYXRpb24gPC0gYygKICAxLCAxLCAyLCAKICAxLCAxLCAyLCAKICAxLCAxLCAxLjUsIDAuNSwgCiAgNCwgCiAgMSwgMSwgMSwgMSwgCiAgMSwgMSwgMSwgMSwgCiAgMSwgMSwgMSwgMSwKICAyLCAyLAogIDEsIDEsIDIsIAogIDEsIDEsIDIsIAogIDEsIDEsIDEuNSwgMC41LCAKICA0LCAKICAxLCAxLCAxLCAxLCAKICAxLCAxLCAxLCAwLjUsIDAuNSwgCiAgMSwgMSwgMSwgMSwKICA0LAogIDEsIDEsIDEsIDEsIAogIDMsIC41LCAuNSwgCiAgMSwgMSwgMSwgMSwgCiAgNCwKICAxLCAxLCAxLCAxLCAKICA0LAogIDEsIDEsIDEsIDEsIAogIDQsCiAgMSwgMSwgMSwgMSwgCiAgNCwKICAxLCAxLCAxLCAxLCAKICAzLCAxLAogIDEsIDEsIDEsIDEsCiAgMSwgMSwgMSwgMSwgCiAgMSwgMSwgMSwgMSwgCiAgMSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwKICAxLCAxLCAwLjUsIDAuNSwgMC41LCAwLjUsIAogIDEsIDEsIDAuNSwgMC41LCAwLjUsIDAuNSwKICAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwKICAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwKICAxLCAwLjUsIDAuNSwgMSwgMC41LCAwLjUsIAogIDEsIDAuNSwgMC41LCAxLCAwLjUsIDAuNSwgCiAgMSwgMC41LCAwLjUsIDAuNSwgMC41LCAxLAogIDEsIDAuMzMsIDAuMzMsIDAuMzMsIDEsIDAuMzMsIDAuMzMsIDAuMzMsCiAgMSwgMSwgMC41LCAwLjUsIDAuNSwgMC41LCAKICAxLCAxLCAwLjUsIDAuNSwgMC41LCAwLjUsCiAgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsCiAgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsCiAgMSwgMC41LCAwLjUsIDEsIDAuNSwgMC41LCAKICAxLCAwLjUsIDAuNSwgMSwgMC41LCAwLjUsIAogIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LAogIDEsIDAuMzMsIDAuMzMsIDAuMzMsIDIKKQpgYGAKCiMjIEFjY2nDs24KSW5kaWNhciBxdWUgc2UgcmVwcm9kdXpjYSBjb24gbGFzIHRlY2xhcyB5IGR1cmFjacOzbiBwcmV2aWFtZW50ZSBtZW5jaW9uYWRhcwpgYGB7cn0KUm11c2ljOjpwbGF5X211c2ljKGpiZWxsc19waXRjaCwgamJlbGxzX2R1cmF0aW9uKQoKYGBgCgojIyBHdWFyZGFyCmBgYHtyfQpSbXVzaWM6OnNhdmVfbXVzaWMoamJlbGxzX3BpdGNoLCBqYmVsbHNfZHVyYXRpb24sIG91dHB1dF9maWxlID0gImpiZWxscy53YXYiKQpgYGAKCiMjIENvbmNsdXNpw7NuIApBc2kgY29tbyAqSmluZ2xlIEJlbGxzKiwgcHVlZGVuIGV4aXN0aXIgbXVjaGFzIG90cmFzIGNhbmNpb25lcyBxdWUgcHVlZGVuIHNlciBjb2RpZmljYWRhcyBlbiAqUiosIHByaW1lcm8gc2UgZXN0YWJsZWNlbiBsYXMgdGVjbGFzIGNvbW8gc29uaWRvcywgcGFyYSBhc2kgZGVzcHVlcyBhc2lnbmFybGUgdW5hIGR1cmFjacOzbiBhIGNhZGEgdGVjbGEuICpSbXVzaWM6OnBsYXlfbXVzaWMqIGVuIGVzdGUgY2FzbyBzaXJ2ZSBwYXJhIHJlcHJvZHVjaXIgbGEgY2FuY2nDs24gY29uIGxhcyB0ZWNsYXMgeSBkdXJhY2nDs24gZXN0YWJsZWNpZGFzLCB5ICpSbXVzaWM6OnNhdmVfbXVzaWMqIHNpcnZlIHBhcmEgZ3VhcmRhcmxvIGVuIHR1IGNhcnBldGEuICAKCk51ZXZhbWVudGUgcG9kZW1vcyBvYnNlcnZhciBxdWUgKlJTdHVkaW8qIHB1ZWRlIG1hbmVqYXIgdW5hIGNhbnRpZGFkIGlubWVuc2EgZGUgcGFxdWV0ZXMgeSBsaWJyZXJpYXMgcXVlIGF5dWRhbiBhIGVqZWN1dGFyIGN1YWxxdWllciBpZGVhIHF1ZSBlbCB1c3VhcmlvIHRpZW5lIGVuIG1lbnRlLiAK