使用seewave和tuneR在闪亮的应用程序中编写wav文件

时间:2015-11-08 12:34:32

标签: shiny

我有一个闪亮的应用程序,有许多tabPanel。 在其中一个面板中,我想将seewave和tuneR中生成的时间信号写入www子目录。 如果我在R-promt上运行命令,一切正常,但我不能让它在我的服务器上运行.R。 我试过观察,但输入的$变量没有更新:

observeEvent(input$button,{
        cat("Writing wav file")
})
eventReactive(input$button,{
        "Inbutton"
        pi<-4*atan(1)
        s5<-synth(44100,5,input$freq1,input$amp1*2000,"sine",shape=NULL,p=0,
                 am=c(0,0,0),fm=c(0,0,0),harmonics=1,plot=FALSE,output="Wave")
        s6<-synth(44100,5,input$freq2,input$amp2*2000,"sine",shape=NULL,
                  p=input$phase/180*pi,am=c(0,0,0),fm=c(0,0,0),
                  harmonics=1,plot=FALSE,output="Wave")
        s7<-s5+s6  
        str(s7)
        Wobj<-s7
        wav_dir<-"./www"
        wav_file<-file.path(wav_dir,"howling2.wav")
        writeWave(Wobj,filename=wav_file)
        play(s7)
})

1 个答案:

答案 0 :(得分:0)

我已经设法以某种方式保存文件。我定义了生成声音并预先加载声音的函数。然后在服务器函数中我称之为:

server <- function(input, output){  

  observeEvent(input$button, {
  sound <- sonify(input$name) # this is already a Wave object

  wvname <- paste0("sound", input$button,".wav")
  writeWave(sound, paste0("www/", wvname))

  })

}

然后按照thisthis

在UI中实现它