Jingle Bells

Asignación de Notas

devtools::install_github("keithmcnulty/Rmusic", build_vignettes = TRUE)

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"
)


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

Asignación de duración de cada nota

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
)

Reproducir y guardar la música

Rmusic::play_music(jbells_pitch, jbells_duration)

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

Conclusión

Al tener esta actividad asignada fue interesante poder ver que R no solamente puede analizar y visualizar grandes bases de datos, sino que también puede procesar la asignación y clasificación de notas para poder crear música. Fue un ejercicio dinámico y divertido que nos permitió ver otro lado de la herramienta.

LS0tCnRpdGxlOiAiSmluZ2xlIEJlbGxzIgphdXRob3I6ICJFcmlja2EgTWFydMOtbmV6IC0gQTAxMTc3MDE3IgpkYXRlOiAnMjAyMi0wOS0xMScKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHRydWUKICAgIHRvY19mbG9hdDogdHJ1ZQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQotLS0KCiMjIDxpbWcgc3JjPSAiL1VzZXJzL0VyaWNrYU10ei9EZXNrdG9wLzQxOTEwNjQuanBlZyI+CgojIyA8c3BhbiBzdHlsZT0iY29sb3I6ICMwMDhCMDAiID4gKipKaW5nbGUgQmVsbHMqKiA8L3NwYW4+CgojIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiAjOEIxQTFBIiA+IEFzaWduYWNpw7NuIGRlIE5vdGFzIDwvc3Bhbj4KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KZGV2dG9vbHM6Omluc3RhbGxfZ2l0aHViKCJrZWl0aG1jbnVsdHkvUm11c2ljIiwgYnVpbGRfdmlnbmV0dGVzID0gVFJVRSkKCmpiZWxsc19waXRjaCA8LSBwYXN0ZSgKICAiRSBFIEUiLAogICJFIEUgRSIsCiAgIkUgRyBDIEQiLAogICJFIiwKICAiRiBGIEYgRiIsCiAgIkYgRSBFIEUiLAogICJFIEQgRCBFIiwKICAiRCBHIiwKICAiRSBFIEUiLAogICJFIEUgRSIsCiAgIkUgRyBDIEQiLAogICJFIiwKICAiRiBGIEYgRiIsCiAgIkYgRSBFIEUgRSIsCiAgIkcgRyBGIEQiLAogICJDIiwKICAiRzMgRSBEIEMiLAogICJHMyIsCiAgIkczIEczIEczIEUgRCBDIiwKICAiQTMiLAogICJBMyBGIEUgRCIsCiAgIkIzIiwKICAiRyBHIEYgRCIsCiAgIkUiLAogICJHMyBFIEQgQyIsCiAgIkczIiwKICAiRzMgRSBEIEMiLAogICJBMyBBMyIsIAogICJBMyBGIEUgRCIsCiAgIkcgRyBHIEcgQSBHIEYgRCIsCiAgIkMgQzUgQiBBIEcgRiBHIiwKICAiRSBFIEUgRyBDIEQiLAogICJFIEUgRSBHIEMgRCIsCiAgIkUgRiBHIEEgQyBFIEQgRiIsCiAgIkUgQyBEIEUgRiBHIEEgRyIsCiAgIkYgRiBGIEYgRiBGIiwKICAiRiBFIEUgRSBFIEUiLAogICJFIEQgRCBEIEQgRSIsCiAgIkQgRCBFIEYgRyBGIEUgRCIsCiAgIkUgRSBFIEcgQyBEIiwKICAiRSBFIEUgRyBDIEQiLAogICJFIEYgRyBBIEMgRSBEIEYiLAogICJFIEMgRCBFIEYgRyBBIEciLAogICJGIEYgRiBGIEYgRiIsCiAgIkYgRSBFIEUgRSBFIiwKICAiRyBDNSBCIEEgRyBGIEUgRCIsCiAgIkMgQyBFIEcgQzUiCikKCgpqYmVsbHNfcGl0Y2ggPC0gc3Ryc3BsaXQoamJlbGxzX3BpdGNoLCAiICIpW1sxXV0KCmBgYAoKIyMjIDxzcGFuIHN0eWxlPSJjb2xvcjogIzhCMUExQSIgPiBBc2lnbmFjacOzbiBkZSBkdXJhY2nDs24gZGUgY2FkYSBub3RhIDwvc3Bhbj4KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KamJlbGxzX2R1cmF0aW9uIDwtIGMoCiAgMSwgMSwgMiwgCiAgMSwgMSwgMiwgCiAgMSwgMSwgMS41LCAwLjUsIAogIDQsIAogIDEsIDEsIDEsIDEsIAogIDEsIDEsIDEsIDEsIAogIDEsIDEsIDEsIDEsCiAgMiwgMiwKICAxLCAxLCAyLCAKICAxLCAxLCAyLCAKICAxLCAxLCAxLjUsIDAuNSwgCiAgNCwgCiAgMSwgMSwgMSwgMSwgCiAgMSwgMSwgMSwgMC41LCAwLjUsIAogIDEsIDEsIDEsIDEsCiAgNCwKICAxLCAxLCAxLCAxLCAKICAzLCAuNSwgLjUsIAogIDEsIDEsIDEsIDEsIAogIDQsCiAgMSwgMSwgMSwgMSwgCiAgNCwKICAxLCAxLCAxLCAxLCAKICA0LAogIDEsIDEsIDEsIDEsIAogIDQsCiAgMSwgMSwgMSwgMSwgCiAgMywgMSwKICAxLCAxLCAxLCAxLAogIDEsIDEsIDEsIDEsIAogIDEsIDEsIDEsIDEsIAogIDEsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsCiAgMSwgMSwgMC41LCAwLjUsIDAuNSwgMC41LCAKICAxLCAxLCAwLjUsIDAuNSwgMC41LCAwLjUsCiAgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsCiAgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsCiAgMSwgMC41LCAwLjUsIDEsIDAuNSwgMC41LCAKICAxLCAwLjUsIDAuNSwgMSwgMC41LCAwLjUsIAogIDEsIDAuNSwgMC41LCAwLjUsIDAuNSwgMSwKICAxLCAwLjMzLCAwLjMzLCAwLjMzLCAxLCAwLjMzLCAwLjMzLCAwLjMzLAogIDEsIDEsIDAuNSwgMC41LCAwLjUsIDAuNSwgCiAgMSwgMSwgMC41LCAwLjUsIDAuNSwgMC41LAogIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LAogIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LAogIDEsIDAuNSwgMC41LCAxLCAwLjUsIDAuNSwgCiAgMSwgMC41LCAwLjUsIDEsIDAuNSwgMC41LCAKICAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwKICAxLCAwLjMzLCAwLjMzLCAwLjMzLCAyCikKCmBgYAoKIyMjIDxzcGFuIHN0eWxlPSJjb2xvcjogIzhCMUExQSIgPiBSZXByb2R1Y2lyIHkgZ3VhcmRhciBsYSBtw7pzaWNhIDwvc3Bhbj4KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KUm11c2ljOjpwbGF5X211c2ljKGpiZWxsc19waXRjaCwgamJlbGxzX2R1cmF0aW9uKQoKUm11c2ljOjpzYXZlX211c2ljKGpiZWxsc19waXRjaCwgamJlbGxzX2R1cmF0aW9uLCBvdXRwdXRfZmlsZSA9ICJqYmVsbHMud2F2IikKYGBgCgojIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiAjOEIxQTFBIiA+IENvbmNsdXNpw7NuIDwvc3Bhbj4KCjxwIHN0eWxlPSd0ZXh0LWFsaWduOmp1c3RpZnk7Jz4gKipBbCB0ZW5lciBlc3RhIGFjdGl2aWRhZCBhc2lnbmFkYSBmdWUgaW50ZXJlc2FudGUgcG9kZXIgdmVyIHF1ZSAqUiogbm8gc29sYW1lbnRlIHB1ZWRlIGFuYWxpemFyIHkgdmlzdWFsaXphciBncmFuZGVzIGJhc2VzIGRlIGRhdG9zLCBzaW5vIHF1ZSB0YW1iacOpbiBwdWVkZSBwcm9jZXNhciBsYSBhc2lnbmFjacOzbiB5IGNsYXNpZmljYWNpw7NuIGRlIG5vdGFzIHBhcmEgcG9kZXIgY3JlYXIgbcO6c2ljYS4gRnVlIHVuIGVqZXJjaWNpbyBkaW7DoW1pY28geSBkaXZlcnRpZG8gcXVlIG5vcyBwZXJtaXRpw7MgdmVyIG90cm8gbGFkbyBkZSBsYSBoZXJyYW1pZW50YS4qKiA8L3A+Cg==