Grails 在Groovy中生成音频波形

Grails 在Groovy中生成音频波形,grails,audio,groovy,waveform,Grails,Audio,Groovy,Waveform,有没有一种使用Groovy生成音频波形的方法?或者是否有任何第三方库允许您使用groovy生成音频波形 您可以使用java音频生成和播放波形,如so(): 然而,由于您已经标记了这个问题grails,我想您不想玩它吧 import javax.sound.sampled.* byte[] wavform( int freq, int seconds, int sampleRate ) { byte[] ret = new byte[ seconds * sampleRate ] ret

有没有一种使用Groovy生成音频波形的方法?或者是否有任何第三方库允许您使用groovy生成音频波形

您可以使用java音频生成和播放波形,如so():

然而,由于您已经标记了这个问题grails,我想您不想玩它吧

import javax.sound.sampled.*

byte[] wavform( int freq, int seconds, int sampleRate ) {
  byte[] ret = new byte[ seconds * sampleRate ]
  ret.length.times { idx ->
    ret[ idx ] = (byte)( Math.sin( ( 2.0 * Math.PI * idx ) / ( sampleRate / freq ) ) * 127 ) 
  }
  ret
}

int sampleRate = 8000
new AudioFormat( sampleRate, 16, 1, true, true ).with { af ->
  AudioSystem.getSourceDataLine( af ).with { line ->
    line.open( af )
    line.start()
    wavform( 200, 1, sampleRate ).with { byte[] wav ->
      line.write( wav, 0, wav.length )
    }
    line.drain()
    line.close()
  }
}