videos vicente personalizada para niños mañanitas letra las infantil fernandez feliz español disney cumpleaños canciones cancion alegre r music

r - vicente - cumpleaños feliz infantil disney



¿Cómo puedo reproducir música de cumpleaños usando R? (1)

Me gustaría reproducir música usando R. Aunque R puede no ser la mejor herramienta para este propósito, es la herramienta con la que estoy familiarizado y sería bueno demostrar a otros su flexibilidad en una ocasión tan alegre.

¿Cómo podría lograr esto?


Si realmente quisieras hacer esto:

library("audio") bday_file <- tempfile() download.file("http://www.happybirthdaymusic.info/01_happy_birthday_song.wav", bday_file, mode = "wb") bday <- load.wave(bday_file) play(bday)

Tenga en cuenta que primero deberá install.packages("audio") . Si ya tiene un archivo específico, primero deberá convertirlo al formato WAV.

Si quería algo un poco más programático que reproducir un archivo WAV, aquí hay una versión que genera la melodía a partir de una serie de ondas sinusoidales:

library("dplyr") library("audio") notes <- c(A = 0, B = 2, C = 3, D = 5, E = 7, F = 8, G = 10) pitch <- "D D E D G F# D D E D A G D D D5 B G F# E C5 C5 B G A G" duration <- c(rep(c(0.75, 0.25, 1, 1, 1, 2), 2), 0.75, 0.25, 1, 1, 1, 1, 1, 0.75, 0.25, 1, 1, 1, 2) bday <- data_frame(pitch = strsplit(pitch, " ")[[1]], duration = duration) bday <- bday %>% mutate(octave = substring(pitch, nchar(pitch)) %>% {suppressWarnings(as.numeric(.))} %>% ifelse(is.na(.), 4, .), note = notes[substr(pitch, 1, 1)], note = note + grepl("#", pitch) - grepl("b", pitch) + octave * 12 + 12 * (note < 3), freq = 2 ^ ((note - 60) / 12) * 440) tempo <- 120 sample_rate <- 44100 make_sine <- function(freq, duration) { wave <- sin(seq(0, duration / tempo * 60, 1 / sample_rate) * freq * 2 * pi) fade <- seq(0, 1, 50 / sample_rate) wave * c(fade, rep(1, length(wave) - 2 * length(fade)), rev(fade)) } bday_wave <- mapply(make_sine, bday$freq, bday$duration) %>% do.call("c", .) play(bday_wave)

Hay algunos puntos a tener en cuenta. La octava predeterminada para las notas es la octava 4, donde A4 está a 440 Hz (la nota utilizada para afinar la orquesta). Las octavas cambian en C, por lo que C3 es un semitono más alto que B2. La razón del desvanecimiento en make_sine es que sin él hay pops audibles al iniciar y detener notas.