M player/channel.go +10 -9
@@ 82,19 82,20 @@ func (c *Channel) AddInstrumentPlayer(ip
// ProcessTick
// ProcessTickBuf
// should be called every tick (?)
-func (c *Channel) RenderBuf(lenSamples int) [][2]float64 {
+//func (c *Channel) RenderBuf(lenSamples int) [][2]float64 {
+func (c *Channel) RenderTick(tickSize int) [][2]float64 {
//func (c *Channel) ProcessTickBuf(lenSamples int) (bool, [][2]float64) {
- fmt.Println("Channel RenderBuf lenSamples:", lenSamples)
+ fmt.Println("Channel RenderTick tickSize:", tickSize)
// gen empty sygnal ?
//if c.instrumentPlayer == nil {
if c.instrumentPlayer == nil || c.mute {
- buf := Ctx.Player._renderSilence(lenSamples)
+ buf := Ctx.Player._renderSilence(tickSize)
//buf := GenEmptyBuf(lenSamples)
// XXX check
- //if len(buf) != tickSize {
- if len(buf) != lenSamples {
+ if len(buf) != tickSize {
+ //if len(buf) != lenSamples {
pp(2)
}
@@ 122,14 123,14 @@ func (c *Channel) RenderBuf(lenSamples i
// XXX pad signal / buffer ?
- //buf1 := PadBufToLen(buf, tickSize)
- buf1 := PadBufToLen(buf, lenSamples)
+ buf1 := PadBufToLen(buf, tickSize)
+ //buf1 := PadBufToLen(buf, lenSamples)
fmt.Println("len buf1:", len(buf1))
// XXX check
- //if len(buf1) != tickSize {
- if len(buf1) != lenSamples {
+ if len(buf1) != tickSize {
+ //if len(buf1) != lenSamples {
pp(2)
}
M player/channelmixer.go +19 -0
@@ 98,14 98,33 @@ func (cm *ChannelMixer) mixbufs(buf1, bu
return res
}
+func (cm *ChannelMixer) RenderChannelTick(chId int, tickSize int) [][2]float64 {
+ ch := cm.channelSys.Channels[chId]
+
+ //buf := ch.RenderBuf(tickSize)
+ buf := ch.RenderTick(tickSize)
+
+ // XXX update renderTickBuf
+ if true {
+ cm.renderTickBuf[chId] = buf
+ }
+
+ return buf
+}
+
// tickSize = tickSize samples
func (cm *ChannelMixer) MixBufTest(tickSize int) [][2]float64 {
n := cm.channelSys.numChannels
bufs := make([][][2]float64, 0)
for i := 0; i < n; i++ {
+ /*
ch := cm.channelSys.Channels[i]
buf := ch.RenderBuf(tickSize)
+ */
+
+ // XXX
+ buf := cm.RenderChannelTick(i, tickSize)
bufs = append(bufs, buf)
}