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 }