- Notifications
You must be signed in to change notification settings - Fork3
Go-based music tracker
License
Unknown and 2 other licenses found
Licenses found
Unknown
LICENSEMIT
LICENSE.MITUnlicense
LICENSE.UnlicenseNotificationsYou must be signed in to change notification settings
gotracker/gotracker
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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:
- S3M - ScreamTracker 3
- MOD - Protracker/Fasttracker/Startrekker (internally up-converted to S3M)
- XM - Fasttracker II
- IT - Impulse Tracker
- Maybe more! (check the support list from thegotracker/player library)
- Windows (Windows 2000 or newer)
- Sound Card
- WinMM (
WAVE_MAPPER
device) - DirectSound (via optional build flag:
directsound
) - PulseAudio (via optional build flag:
pulseaudio
) - NOTE: Not recommended except for WSL (Linux) builds!
- WinMM (
- File
- Wave/RIFF file (built-in)
- Flac (via optional build flag:
flac
)
- Sound Card
- Linux
- Sound Card
- PulseAudio
- File
- Wave/RIFF file (built-in)
- Flac (via optional build flag:
flac
)
- Sound Card
For a Windows build, we recommend the following:
- Windows 2000 (or newer) - we used Windows 11 Pro (Windows 11 Version 23H2 - 22631.3007)
- Visual Studio Code
- Go extension for VSCode v0.19.0 (or newer)
- Go v1.21.5 (or newer)
For a non-Windows (e.g.: Linux) build, we recommend the following:
- Ubuntu 20.04 (or newer) - we used Ubuntu 22.04.2 LTS running in WSL2
- Go v1.21.5 (or newer)
- First, load the project folder in VSCode. If this is the first time you've ever opened a Go project, VSCode will splash up a thousand alerts asking to install various things for Go. Allow it to install them before continuing on.
- Next, open a Terminal for
powershell
. - Enter the following commandsWhen the command completes, you should now have the gotracker.exe file. Drag an .S3M file on top of it!
go mod downloadgo build
- Build the player with the following commands
go mod downloadgo build
NOTE: In order to use PulseAudio, you must have yourPULSE_SERVER
connection string environment variable configured:
- e.g.:(Take note that there are bugs associated with TCP connection strings; see bugs section below)For more information about the
PULSE_SERVER=tcp:127.0.0.1:4713
PULSE_SERVER
environment variable, please see thePulseAudio 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, calledjfreymuth/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 thePULSE_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 thegotracker/playback library.
- There are many, we're sure.
About
Go-based music tracker
Topics
Resources
License
Unknown and 2 other licenses found
Licenses found
Unknown
LICENSEMIT
LICENSE.MITUnlicense
LICENSE.Unlicense