- Notifications
You must be signed in to change notification settings - Fork4
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.UnlicenseUh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.