Можно ли кодировать музыку в R и воспроизводить ее? (Mac OS X)
Интересно, есть ли способ написать скрипт для создания музыки? Как и в программе кодирования (SuperCollider или, не столько кодирование, но все же Pure Data), я хочу знать, есть ли способ генерировать звук в R.
На самом деле, я знаю это. Как я могу играть музыку на день рождения, используя R? что очень приятно. Но я хочу сделать аккорды и многоинструментальную композицию. Является ли это возможным?
Есть ли более простой способ воспроизвести музыку на R, чем ссылка Happy Birthday?
2 ответа
Вы можете создавать музыку в R-программировании, используя библиотеку tuneR
Сначала вам нужно создать простые синусоиды для каждой ноты и объединить все ноты в вектор.
Теперь, когда мелодия будет готова, вы можете редактировать звук, используя различные методы обработки звука, такие как тембр, фильтрация и т. Д.
Пример создания простой заметки формата А4:
library(tuneR) #import the tuneR library
setWavPlayer("audacious")
f=440 #frequency of A4 note
sr=8000
bits=16
secs=2 #length of the note set to 2
amp=1
t=seq(0, secs, 1/sr)
y= amp*sin(2*pi*f*t) #make a sinewave with above attributes
s=floor(2^(bits-2)*y) #floor it to make it an integer value
u=Wave(s, samp.rate=sr, bit=bits) #make a wave structure
play(u)
Чтобы объединить две ноты x и y, мы просто используем векторную запись:
z=c(x,y)
w= Wave(z, samp.rate=sr, bit-bits)
Чтобы сыграть две ноты одновременно (например, сыграть аккорды)
z=x+y
w= Wave(z, samp.rate=sr, bit-bits)
На данный момент это лучшее, что я придумал:
library("audio")
library(tuneR) #import the tuneR library
for (i in 1:10) {
yo=abs(round(rnorm(1,400,500)))
f=yo #frequency of A4 note
sr=1000000
bits=116
secs=5 #length of the note set to 2
amp=1
t=seq(0, secs, 1/sr)
y= amp*sin(2*pi*f*t) #make a sinewave with above attributes
s=floor(2^(bits-2)*y) #floor it to make it an integer value
# u=Wave(s, samp.rate=sr, bit=bits) #make a wave structure
u=audioSample(x = s, rate = sr,bits = bits)
audio::play(u)
}