diff --git a/goborator.go b/goborator.go index dff9133..68c8064 100644 --- a/goborator.go +++ b/goborator.go @@ -4,9 +4,7 @@ package goborator // #include import "C" import ( - "encoding/binary" "fmt" - "io" "unsafe" ) @@ -135,22 +133,20 @@ func (g *Gaborator) gaborTransform(audioData []float32) { } } -func (g *Gaborator) GaborTransform(reader io.Reader) [][]float32 { - var err error - var f float32 +func (g *Gaborator) GaborTransform(source chan float32) [][]float32 { - var audioData []float32 + audioData := make([]float32, g.audioBlockSize) for { - err = binary.Read(reader, binary.LittleEndian, &f) - if err != nil { + f, more := <-source + if !more { break } audioData = append(audioData, f) for len(audioData) >= g.audioBlockSize { g.gaborTransform(audioData[0:g.audioBlockSize]) - audioData = audioData[g.audioBlockSize:] + audioData = audioData[:0] } }