Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions channel.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import (
"github.com/gotracker/gomixing/sampling"
"github.com/gotracker/gomixing/volume"
"github.com/gotracker/playback/period"
"github.com/gotracker/playback/player/render"
"github.com/gotracker/playback/voice"

"github.com/gotracker/playback/instrument"
"github.com/gotracker/playback/note"
"github.com/gotracker/playback/player/output"
)

// Channel is an interface for channel state
Expand Down Expand Up @@ -52,8 +52,8 @@ type Channel[TMemory, TChannelData any] interface {
SetPanEnabled(bool)
GetPan() panning.Position
SetPan(panning.Position)
SetOutputChannel(*output.Channel)
GetOutputChannel() *output.Channel
SetRenderChannel(*render.Channel)
GetRenderChannel() *render.Channel
SetVolumeActive(bool)
SetGlobalVolume(volume.Volume)
SetChannelVolume(volume.Volume)
Expand Down
4 changes: 2 additions & 2 deletions format/it/layout/song.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ func (s Song) IsChannelEnabled(channelNum int) bool {
return s.ChannelSettings[channelNum].Enabled
}

// GetOutputChannel returns the output channel for the channel at index `channelNum`
func (s Song) GetOutputChannel(channelNum int) int {
// GetRenderChannel returns the output channel for the channel at index `channelNum`
func (s Song) GetRenderChannel(channelNum int) int {
return s.ChannelSettings[channelNum].OutputChannelNum
}

Expand Down
18 changes: 9 additions & 9 deletions format/it/playback/playback.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package playback

import (
"github.com/gotracker/gomixing/volume"
device "github.com/gotracker/gosound"

"github.com/gotracker/playback"
"github.com/gotracker/playback/format/it/channel"
Expand All @@ -12,10 +11,11 @@ import (
itPeriod "github.com/gotracker/playback/format/it/period"
"github.com/gotracker/playback/index"
"github.com/gotracker/playback/note"
"github.com/gotracker/playback/output"
playpattern "github.com/gotracker/playback/pattern"
"github.com/gotracker/playback/player"
"github.com/gotracker/playback/player/feature"
"github.com/gotracker/playback/player/output"
"github.com/gotracker/playback/player/render"
"github.com/gotracker/playback/player/state"
"github.com/gotracker/playback/song"
)
Expand All @@ -32,7 +32,7 @@ type Manager struct {

preMixRowTxn *playpattern.RowUpdateTransaction
postMixRowTxn *playpattern.RowUpdateTransaction
premix *device.PremixData
premix *output.PremixData

rowRenderState *rowRenderState
OnEffect func(playback.Effect)
Expand Down Expand Up @@ -64,11 +64,11 @@ func NewManager(song *layout.Song) (*Manager, error) {

m.SetNumChannels(len(song.ChannelSettings))
for i, ch := range song.ChannelSettings {
oc := m.GetOutputChannel(ch.OutputChannelNum, m.channelInit)
oc := m.GetRenderChannel(ch.OutputChannelNum, m.channelInit)

cs := m.GetChannel(i)
cs.SetSongDataInterface(song)
cs.SetOutputChannel(oc)
cs.SetRenderChannel(oc)
cs.SetGlobalVolume(m.GetGlobalVolume())
cs.SetActiveVolume(ch.InitialVolume)
cs.SetChannelVolume(ch.ChannelVolume)
Expand Down Expand Up @@ -121,17 +121,17 @@ func (m *Manager) SetNumChannels(num int) {
cs.Trigger.Reset()
cs.RetriggerCount = 0
_ = cs.SetData(nil)
ocNum := m.song.GetOutputChannel(ch)
cs.Output = m.GetOutputChannel(ocNum, m.channelInit)
ocNum := m.song.GetRenderChannel(ch)
cs.RenderChannel = m.GetRenderChannel(ocNum, m.channelInit)

if m.enableNewNoteActions {
cs.PastNotes = &m.PastNotes
}
}
}

func (m *Manager) channelInit(ch int) *output.Channel {
return &output.Channel{
func (m *Manager) channelInit(ch int) *render.Channel {
return &render.Channel{
ChannelNum: ch,
Filter: nil,
GetSampleRate: m.GetSampleRate,
Expand Down
2 changes: 1 addition & 1 deletion format/it/playback/playback_command.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ func (m *Manager) processVoiceUpdates(ch int, cs *state.ChannelState[channel.Mem
func (m *Manager) SetFilterEnable(on bool) {
for i := range m.song.ChannelSettings {
c := m.GetChannel(i)
if o := c.GetOutputChannel(); o != nil {
if o := c.GetRenderChannel(); o != nil {
if on {
if o.Filter == nil {
o.Filter = filter.NewAmigaLPF(period.Frequency(itPeriod.DefaultC2Spd), m.GetSampleRate())
Expand Down
11 changes: 5 additions & 6 deletions format/it/playback/playback_render.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package playback

import (
device "github.com/gotracker/gosound"

"github.com/gotracker/playback/output"
"github.com/gotracker/playback/player/render"
"github.com/gotracker/playback/player/state"
)
Expand All @@ -23,12 +22,12 @@ func (m *Manager) OnTick() error {
}

// GetPremixData gets the current premix data from the manager
func (m *Manager) GetPremixData() (*device.PremixData, error) {
func (m *Manager) GetPremixData() (*output.PremixData, error) {
return m.premix, nil
}

// RenderOneRow renders the next single row from the song pattern data into a RowRender object
func (m *Manager) renderTick() (*device.PremixData, error) {
func (m *Manager) renderTick() (*output.PremixData, error) {
postMixRowTxn := m.pattern.StartTransaction()
defer func() {
postMixRowTxn.Cancel()
Expand All @@ -43,7 +42,7 @@ func (m *Manager) renderTick() (*device.PremixData, error) {
}

var finalData render.RowRender
premix := &device.PremixData{
premix := &output.PremixData{
Userdata: &finalData,
SamplesLen: m.rowRenderState.Samples,
}
Expand Down Expand Up @@ -78,7 +77,7 @@ type rowRenderState struct {
currentTick int
}

func (m *Manager) soundRenderTick(premix *device.PremixData) error {
func (m *Manager) soundRenderTick(premix *output.PremixData) error {
tick := m.rowRenderState.currentTick
var lastTick = (tick+1 == m.rowRenderState.ticksThisRow)

Expand Down
4 changes: 2 additions & 2 deletions format/s3m/layout/song.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ func (s Song) IsChannelEnabled(channelNum int) bool {
return s.ChannelSettings[channelNum].Enabled
}

// GetOutputChannel returns the output channel for the channel at index `channelNum`
func (s Song) GetOutputChannel(channelNum int) int {
// GetRenderChannel returns the output channel for the channel at index `channelNum`
func (s Song) GetRenderChannel(channelNum int) int {
return s.ChannelSettings[channelNum].OutputChannelNum
}

Expand Down
18 changes: 9 additions & 9 deletions format/s3m/playback/playback.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
s3mfile "github.com/gotracker/goaudiofile/music/tracked/s3m"
"github.com/gotracker/gomixing/panning"
"github.com/gotracker/gomixing/volume"
device "github.com/gotracker/gosound"

"github.com/gotracker/playback"
"github.com/gotracker/playback/format/s3m/channel"
Expand All @@ -13,10 +12,11 @@ import (
s3mPeriod "github.com/gotracker/playback/format/s3m/period"
"github.com/gotracker/playback/index"
"github.com/gotracker/playback/note"
"github.com/gotracker/playback/output"
playpattern "github.com/gotracker/playback/pattern"
"github.com/gotracker/playback/player"
"github.com/gotracker/playback/player/feature"
"github.com/gotracker/playback/player/output"
"github.com/gotracker/playback/player/render"
"github.com/gotracker/playback/player/state"
"github.com/gotracker/playback/song"
)
Expand All @@ -32,7 +32,7 @@ type Manager struct {

preMixRowTxn *playpattern.RowUpdateTransaction
postMixRowTxn *playpattern.RowUpdateTransaction
premix *device.PremixData
premix *output.PremixData

rowRenderState *rowRenderState
OnEffect func(playback.Effect)
Expand Down Expand Up @@ -62,11 +62,11 @@ func NewManager(song *layout.Song) (*Manager, error) {
m.SetNumChannels(len(song.ChannelSettings))
lowpassEnabled := false
for i, ch := range song.ChannelSettings {
oc := m.GetOutputChannel(ch.OutputChannelNum, m.channelInit)
oc := m.GetRenderChannel(ch.OutputChannelNum, m.channelInit)

cs := m.GetChannel(i)
cs.SetSongDataInterface(song)
cs.SetOutputChannel(oc)
cs.SetRenderChannel(oc)
cs.SetGlobalVolume(m.GetGlobalVolume())
cs.SetActiveVolume(ch.InitialVolume)
if song.Head.Stereo {
Expand Down Expand Up @@ -111,8 +111,8 @@ func NewManager(song *layout.Song) (*Manager, error) {
return &m, nil
}

func (m *Manager) channelInit(ch int) *output.Channel {
return &output.Channel{
func (m *Manager) channelInit(ch int) *render.Channel {
return &render.Channel{
ChannelNum: ch,
Filter: nil,
GetSampleRate: m.GetSampleRate,
Expand Down Expand Up @@ -152,8 +152,8 @@ func (m *Manager) SetNumChannels(num int) {
cs.Trigger.Reset()
cs.RetriggerCount = 0
_ = cs.SetData(nil)
ocNum := m.song.GetOutputChannel(ch)
cs.Output = m.GetOutputChannel(ocNum, m.channelInit)
ocNum := m.song.GetRenderChannel(ch)
cs.RenderChannel = m.GetRenderChannel(ocNum, m.channelInit)
}
}

Expand Down
2 changes: 1 addition & 1 deletion format/s3m/playback/playback_command.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ func (m *Manager) processVoiceUpdates(ch int, cs *state.ChannelState[channel.Mem
func (m *Manager) SetFilterEnable(on bool) {
for i := range m.song.ChannelSettings {
c := m.GetChannel(i)
if o := c.GetOutputChannel(); o != nil {
if o := c.GetRenderChannel(); o != nil {
if on {
if o.Filter == nil {
o.Filter = filter.NewAmigaLPF(s3mPeriod.DefaultC2Spd, m.GetSampleRate())
Expand Down
11 changes: 5 additions & 6 deletions format/s3m/playback/playback_render.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package playback

import (
device "github.com/gotracker/gosound"

"github.com/gotracker/playback/output"
"github.com/gotracker/playback/player/render"
"github.com/gotracker/playback/player/state"
)
Expand All @@ -20,12 +19,12 @@ func (m *Manager) OnTick() error {
}

// GetPremixData gets the current premix data from the manager
func (m *Manager) GetPremixData() (*device.PremixData, error) {
func (m *Manager) GetPremixData() (*output.PremixData, error) {
return m.premix, nil
}

// RenderOneRow renders the next single row from the song pattern data into a RowRender object
func (m *Manager) renderTick() (*device.PremixData, error) {
func (m *Manager) renderTick() (*output.PremixData, error) {
postMixRowTxn := m.pattern.StartTransaction()
defer func() {
postMixRowTxn.Cancel()
Expand All @@ -40,7 +39,7 @@ func (m *Manager) renderTick() (*device.PremixData, error) {
}

var finalData render.RowRender
premix := &device.PremixData{
premix := &output.PremixData{
Userdata: &finalData,
SamplesLen: m.rowRenderState.Samples,
}
Expand Down Expand Up @@ -74,7 +73,7 @@ type rowRenderState struct {
currentTick int
}

func (m *Manager) soundRenderTick(premix *device.PremixData) error {
func (m *Manager) soundRenderTick(premix *output.PremixData) error {
tick := m.rowRenderState.currentTick
var lastTick = (tick+1 == m.rowRenderState.ticksThisRow)

Expand Down
4 changes: 2 additions & 2 deletions format/xm/layout/song.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ func (s Song) IsChannelEnabled(channelNum int) bool {
return s.ChannelSettings[channelNum].Enabled
}

// GetOutputChannel returns the output channel for the channel at index `channelNum`
func (s Song) GetOutputChannel(channelNum int) int {
// GetRenderChannel returns the output channel for the channel at index `channelNum`
func (s Song) GetRenderChannel(channelNum int) int {
return s.ChannelSettings[channelNum].OutputChannelNum
}

Expand Down
18 changes: 9 additions & 9 deletions format/xm/playback/playback.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package playback

import (
"github.com/gotracker/gomixing/volume"
device "github.com/gotracker/gosound"
"github.com/gotracker/playback"

"github.com/gotracker/playback/format/xm/channel"
Expand All @@ -11,10 +10,11 @@ import (
xmPeriod "github.com/gotracker/playback/format/xm/period"
"github.com/gotracker/playback/index"
"github.com/gotracker/playback/note"
"github.com/gotracker/playback/output"
playpattern "github.com/gotracker/playback/pattern"
"github.com/gotracker/playback/player"
"github.com/gotracker/playback/player/feature"
"github.com/gotracker/playback/player/output"
"github.com/gotracker/playback/player/render"
"github.com/gotracker/playback/player/state"
"github.com/gotracker/playback/song"
)
Expand All @@ -30,7 +30,7 @@ type Manager struct {

preMixRowTxn *playpattern.RowUpdateTransaction
postMixRowTxn *playpattern.RowUpdateTransaction
premix *device.PremixData
premix *output.PremixData

rowRenderState *rowRenderState
OnEffect func(playback.Effect)
Expand All @@ -57,11 +57,11 @@ func NewManager(song *layout.Song) (*Manager, error) {

m.SetNumChannels(len(song.ChannelSettings))
for i, ch := range song.ChannelSettings {
oc := m.GetOutputChannel(ch.OutputChannelNum, m.channelInit)
oc := m.GetRenderChannel(ch.OutputChannelNum, m.channelInit)

cs := m.GetChannel(i)
cs.SetSongDataInterface(song)
cs.SetOutputChannel(oc)
cs.SetRenderChannel(oc)
cs.SetGlobalVolume(m.GetGlobalVolume())
cs.SetActiveVolume(ch.InitialVolume)
cs.SetPanEnabled(true)
Expand All @@ -82,8 +82,8 @@ func NewManager(song *layout.Song) (*Manager, error) {
return &m, nil
}

func (m *Manager) channelInit(ch int) *output.Channel {
return &output.Channel{
func (m *Manager) channelInit(ch int) *render.Channel {
return &render.Channel{
ChannelNum: ch,
Filter: nil,
GetSampleRate: m.GetSampleRate,
Expand Down Expand Up @@ -123,8 +123,8 @@ func (m *Manager) SetNumChannels(num int) {
cs.Trigger.Reset()
cs.RetriggerCount = 0
_ = cs.SetData(nil)
ocNum := m.song.GetOutputChannel(ch)
cs.Output = m.GetOutputChannel(ocNum, m.channelInit)
ocNum := m.song.GetRenderChannel(ch)
cs.RenderChannel = m.GetRenderChannel(ocNum, m.channelInit)
}
}

Expand Down
2 changes: 1 addition & 1 deletion format/xm/playback/playback_command.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ func (m *Manager) processVoiceUpdates(ch int, cs *state.ChannelState[channel.Mem
func (m *Manager) SetFilterEnable(on bool) {
for i := range m.song.ChannelSettings {
c := m.GetChannel(i)
if o := c.GetOutputChannel(); o != nil {
if o := c.GetRenderChannel(); o != nil {
if on {
if o.Filter == nil {
o.Filter = filter.NewAmigaLPF(period.Frequency(xmPeriod.DefaultC2Spd), m.GetSampleRate())
Expand Down
Loading