Можете ли вы использовать R для создания музыки (по нотам), например, через MIDI или другой формат? - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь использовать R для создания музыки.Я нашел:

  1. пакет musicmakeR , который сломан.
  2. пакет аудио , что больше для манипулирования / воспроизведения существующихаудиофайлы.
  3. package tuneR .

Я ДУМАЮ tuneR может делать все, что я хочу, и я нашел этот пост ( Можно ли кодировать музыку в R и воспроизводить ее? (Mac OS X) ).Первый ответ в этом посте (из 'rakshith1124'), кажется, отвечает на мой вопрос, но либо я что-то кодирую неправильно, либо есть проблема с моей ОС или плеером .wav.Вот код, который я использую:

library(tuneR)

sr <- 8000
bits <- 16
secs <- 1
amp <- 1
t <- seq(0, secs, 1/sr)

C0 <- 16.35
G3 <- 196
A5 <- 880

C0 <- floor(2^(bits-2)*(amp*sin(2*pi*C0*t)))
G3 <- floor(2^(bits-2)*(amp*sin(2*pi*G3*t)))
A5 <- floor(2^(bits-2)*(amp*sin(2*pi*A5*t)))

u <- Wave(c(C0,G3,A5), samp.rate=sr, bit=bits)

play(u)

Это должно сыграть три ноты (C0, G3, A5) по одной секунде каждая.Я получил частоты нот от https://pages.mtu.edu/~suits/notefreqs.html. .wav, играемый скриптом [play (u)], похоже, обрезает первую ноту или что-то еще, чего я не понимаю.Кто-нибудь знает, что происходит, и, соответственно, есть ли лучший пакет для создания музыки?

Спасибо!

Тайлер

1 Ответ

0 голосов
/ 16 октября 2018

Интересный вопрос!

Код отлично воспроизводится на моей машине, включая этот странный "усеченный" звук в начале.Почему это правильно?Проблема в том, что ваш динамик / звуковая карта / проигрыватель не может воспроизводить частоты, которые составляют всего 16 Гц (это действительно низкий).Другие заметки после C0 кажутся нормальными.

См. Также этот вопрос по электронике SE .

...