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

Este código nos permite reproducir y guardar música a través de R Studio, siempre y cuando conozcamos las notas a reproducir en el cifrado americano (A, C, G, F, etc.), y la duración de cada nota.

Para futuros trabajos de reproducción musical, hay que investigar cómo se pueden representar los silencios. Hay canciones que requieren de silencios para su reproducción, sin embargo, desconozco al momento como reproducir un silencio.

LS0tDQp0aXRsZTogIkppbmdsZSBCZWxscyINCmF1dGhvcjogIkphdmllciBBeWFsYSINCmRhdGU6ICcyMDIyLTA5LTExJw0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCi0tLQ0KPGNlbnRlcj4NCjxpbWcgc3JjPSJDOi8vVXNlcnMvL2phdmF3Ly9PbmVEcml2ZSAtIEluc3RpdHV0byBUZWNub2xvZ2ljbyB5IGRlIEVzdHVkaW9zIFN1cGVyaW9yZXMgZGUgTW9udGVycmV5Ly9Mb2dvIElURVNNIHNtYWxsLnBuZyI+DQo8L2NlbnRlcj4gIA0KDQpgYGB7Y3NzLCBlY2hvPUZBTFNFfQ0KaDEsIGg0IHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQpoMSwgaDIsIGgzIHsNCiAgY29sb3I6ICMwNjFGNkI7DQp9DQpgYGANCg0KIyMgQXNpZ25hY2nDs24gZGUgbm90YXMNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpkZXZ0b29sczo6aW5zdGFsbF9naXRodWIoImtlaXRobWNudWx0eS9SbXVzaWMiLCBidWlsZF92aWduZXR0ZXMgPSBUUlVFKQ0KDQpqYmVsbHNfcGl0Y2ggPC0gcGFzdGUoDQogICJFIEUgRSIsDQogICJFIEUgRSIsDQogICJFIEcgQyBEIiwNCiAgIkUiLA0KICAiRiBGIEYgRiIsDQogICJGIEUgRSBFIiwNCiAgIkUgRCBEIEUiLA0KICAiRCBHIiwNCiAgIkUgRSBFIiwNCiAgIkUgRSBFIiwNCiAgIkUgRyBDIEQiLA0KICAiRSIsDQogICJGIEYgRiBGIiwNCiAgIkYgRSBFIEUgRSIsDQogICJHIEcgRiBEIiwNCiAgIkMiLA0KICAiRzMgRSBEIEMiLA0KICAiRzMiLA0KICAiRzMgRzMgRzMgRSBEIEMiLA0KICAiQTMiLA0KICAiQTMgRiBFIEQiLA0KICAiQjMiLA0KICAiRyBHIEYgRCIsDQogICJFIiwNCiAgIkczIEUgRCBDIiwNCiAgIkczIiwNCiAgIkczIEUgRCBDIiwNCiAgIkEzIEEzIiwgDQogICJBMyBGIEUgRCIsDQogICJHIEcgRyBHIEEgRyBGIEQiLA0KICAiQyBDNSBCIEEgRyBGIEciLA0KICAiRSBFIEUgRyBDIEQiLA0KICAiRSBFIEUgRyBDIEQiLA0KICAiRSBGIEcgQSBDIEUgRCBGIiwNCiAgIkUgQyBEIEUgRiBHIEEgRyIsDQogICJGIEYgRiBGIEYgRiIsDQogICJGIEUgRSBFIEUgRSIsDQogICJFIEQgRCBEIEQgRSIsDQogICJEIEQgRSBGIEcgRiBFIEQiLA0KICAiRSBFIEUgRyBDIEQiLA0KICAiRSBFIEUgRyBDIEQiLA0KICAiRSBGIEcgQSBDIEUgRCBGIiwNCiAgIkUgQyBEIEUgRiBHIEEgRyIsDQogICJGIEYgRiBGIEYgRiIsDQogICJGIEUgRSBFIEUgRSIsDQogICJHIEM1IEIgQSBHIEYgRSBEIiwNCiAgIkMgQyBFIEcgQzUiDQopDQoNCg0KamJlbGxzX3BpdGNoIDwtIHN0cnNwbGl0KGpiZWxsc19waXRjaCwgIiAiKVtbMV1dDQoNCmBgYA0KDQoNCiMjIEFzaWduYWNpw7NuIGRlIGR1cmFjacOzbiBkZSBjYWRhIG5vdGENCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpqYmVsbHNfZHVyYXRpb24gPC0gYygNCiAgMSwgMSwgMiwgDQogIDEsIDEsIDIsIA0KICAxLCAxLCAxLjUsIDAuNSwgDQogIDQsIA0KICAxLCAxLCAxLCAxLCANCiAgMSwgMSwgMSwgMSwgDQogIDEsIDEsIDEsIDEsDQogIDIsIDIsDQogIDEsIDEsIDIsIA0KICAxLCAxLCAyLCANCiAgMSwgMSwgMS41LCAwLjUsIA0KICA0LCANCiAgMSwgMSwgMSwgMSwgDQogIDEsIDEsIDEsIDAuNSwgMC41LCANCiAgMSwgMSwgMSwgMSwNCiAgNCwNCiAgMSwgMSwgMSwgMSwgDQogIDMsIC41LCAuNSwgDQogIDEsIDEsIDEsIDEsIA0KICA0LA0KICAxLCAxLCAxLCAxLCANCiAgNCwNCiAgMSwgMSwgMSwgMSwgDQogIDQsDQogIDEsIDEsIDEsIDEsIA0KICA0LA0KICAxLCAxLCAxLCAxLCANCiAgMywgMSwNCiAgMSwgMSwgMSwgMSwNCiAgMSwgMSwgMSwgMSwgDQogIDEsIDEsIDEsIDEsIA0KICAxLCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LA0KICAxLCAxLCAwLjUsIDAuNSwgMC41LCAwLjUsIA0KICAxLCAxLCAwLjUsIDAuNSwgMC41LCAwLjUsDQogIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LA0KICAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwNCiAgMSwgMC41LCAwLjUsIDEsIDAuNSwgMC41LCANCiAgMSwgMC41LCAwLjUsIDEsIDAuNSwgMC41LCANCiAgMSwgMC41LCAwLjUsIDAuNSwgMC41LCAxLA0KICAxLCAwLjMzLCAwLjMzLCAwLjMzLCAxLCAwLjMzLCAwLjMzLCAwLjMzLA0KICAxLCAxLCAwLjUsIDAuNSwgMC41LCAwLjUsIA0KICAxLCAxLCAwLjUsIDAuNSwgMC41LCAwLjUsDQogIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LA0KICAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwNCiAgMSwgMC41LCAwLjUsIDEsIDAuNSwgMC41LCANCiAgMSwgMC41LCAwLjUsIDEsIDAuNSwgMC41LCANCiAgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsDQogIDEsIDAuMzMsIDAuMzMsIDAuMzMsIDINCikNCg0KYGBgDQoNCiMjIFJlcHJvZHVjaXIgeSBndWFyZGFyIGxhIG3DunNpY2ENCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpSbXVzaWM6OnBsYXlfbXVzaWMoamJlbGxzX3BpdGNoLCBqYmVsbHNfZHVyYXRpb24pDQoNClJtdXNpYzo6c2F2ZV9tdXNpYyhqYmVsbHNfcGl0Y2gsIGpiZWxsc19kdXJhdGlvbiwgb3V0cHV0X2ZpbGUgPSAiamJlbGxzLndhdiIpDQpgYGANCg0KIyMgQ29uY2x1c2nDs24NCkVzdGUgY8OzZGlnbyBub3MgcGVybWl0ZSByZXByb2R1Y2lyIHkgZ3VhcmRhciBtw7pzaWNhIGEgdHJhdsOpcyBkZSAqKlIgU3R1ZGlvKiosIHNpZW1wcmUgeSBjdWFuZG8gY29ub3pjYW1vcyBsYXMgbm90YXMgYSByZXByb2R1Y2lyIGVuIGVsIGNpZnJhZG8gYW1lcmljYW5vIChBLCBDLCBHLCBGLCBldGMuKSwgeSBsYSBkdXJhY2nDs24gZGUgY2FkYSBub3RhLiANCg0KUGFyYSBmdXR1cm9zIHRyYWJham9zIGRlIHJlcHJvZHVjY2nDs24gbXVzaWNhbCwgaGF5IHF1ZSBpbnZlc3RpZ2FyIGPDs21vIHNlIHB1ZWRlbiByZXByZXNlbnRhciBsb3Mgc2lsZW5jaW9zLiBIYXkgY2FuY2lvbmVzIHF1ZSByZXF1aWVyZW4gZGUgc2lsZW5jaW9zIHBhcmEgc3UgcmVwcm9kdWNjacOzbiwgc2luIGVtYmFyZ28sIGRlc2Nvbm96Y28gYWwgbW9tZW50byBjb21vIHJlcHJvZHVjaXIgdW4gc2lsZW5jaW8u