MeteorLight/utilities.go

31 lines
569 B
Go

package main
import "git.gammaspectra.live/S.O.N.G/Kirika/audio"
func SplitAudioSource(source audio.Source, split int) (sources []audio.Source) {
for i := 0; i < split; i++ {
sources = append(sources, audio.Source{
SampleRate: source.SampleRate,
Channels: source.Channels,
Blocks: make(chan []float32),
})
}
go func() {
defer func() {
for _, s := range sources {
close(s.Blocks)
}
}()
for block := range source.Blocks {
//TODO: this might block?
for _, s := range sources {
s.Blocks <- block
}
}
}()
return
}