Go-based music tracker
It's a tracked music player written in Go.
Heucuva needed to learn Go forever ago and figured this was a good way to do it.
Files from/of the following formats/trackers:
WAVE_MAPPER
device)directsound
)pulseaudio
) - NOTE: Not recommended except for WSL (Linux) builds!flac
)flac
)For a Windows build, we recommend the following:
For a non-Windows (e.g.: Linux) build, we recommend the following:
powershell
.go mod download
go build
When the command completes, you should now have the gotracker.exe file. Drag an .S3M file on top of it!go mod download
go build
NOTE: In order to use PulseAudio, you must have your PULSE_SERVER
connection string environment variable configured:
PULSE_SERVER=tcp:127.0.0.1:4713
(Take note that there are bugs associated with TCP connection strings; see bugs section below)
For more information about the PULSE_SERVER
environment variable, please see the PulseAudio documentation.Not well, but it's good enough to play some moderately complex stuff.
Tags | Notes |
---|---|
windows winmm |
Setting the number of channels to more than 2 may cause WinMM and/or Gotracker to do unusual things. You might be able to get a hardware 4-channel capable card (such as the Aureal Vortex 2 AU8830) to work, but driver inconsistencies and weirdnesses in WinMM will undoubtedly cause needless strife. |
pulseaudio |
PulseAudio support is offered through a Pure Go interface originally created by Johann Freymuth, called jfreymuth/pulse. While it seems to work pretty well, it does have some inconsistencies when compared to the FreeDesktop supported C interface. If you see an error about there being a "missing port in address " specifically when using a TCP connection string, make sure to append the default port specifier of :4713 to the end of the PULSE_SERVER environment variable. |
windows directsound |
DirectSound integration is not great code. It works well enough after recent code changes fixing event support, but it's still pretty ugly. |
flac |
Flac encoding is still very beta. |
NOTE: for more known bugs, please check the list from the gotracker/playback library.