An SPC player and WAV converter
  • C++ 73%
  • Makefile 12.6%
  • Shell 9.5%
  • C 4.6%
  • Dockerfile 0.3%
Find a file
2026-01-29 20:54:08 -05:00
dockerfiles clean up makefile and eliminate windows dockerfile 2025-03-30 10:20:31 -04:00
vendor switch to the bugfix branch for vendored libgme 2025-06-24 13:55:22 -04:00
.gitignore ignore .obj files 2025-03-29 16:34:57 -04:00
.gitmodules vendor only the miniaudio header, not the whole repo 2025-03-15 13:28:05 -04:00
compile-cross.sh use make install for cross release builds as well 2025-07-11 13:06:50 -04:00
docker-compose.yml add a build for an archive libspct.a 2025-06-14 01:11:34 -04:00
getch2-win.cpp clean up getch2-win 2025-03-30 10:19:53 -04:00
getch2.cpp implement screen width detection on windows 2025-03-29 20:57:22 -04:00
getch2.h implement screen width detection on windows 2025-03-29 20:57:22 -04:00
LICENSE add attributions and license 2025-02-12 14:13:39 -05:00
main.cpp simplify the unlocking logic 2026-01-29 20:54:08 -05:00
Makefile allow SPCT_CXXFLAGS from the env 2025-09-26 14:52:36 -04:00
README.md document homebrew install 2025-07-09 20:42:40 -04:00
release.sh use make install for cross release builds as well 2025-07-11 13:06:50 -04:00

spct, an SPC tool for SNES music playback

This is a CLI program to play back or render SPC files.

Uses the following libraries:

  • miniaudio for WAV output and audio playback
  • Blargg's libgme for SPC emulation
  • An adaptation of getch2 from MPlayer (Originally from GyS-TermIO v2.0 for GySmail v3) for terminal UI keybinding / termcap management.

Usage

$ spct --help
usage:
  spct render [opts] infile.spc outfile.wav
    opts:
      -s N
      --seconds N
           number of seconds to record (default: 45)

  spct play [opts] infile.spc
    opts:
      -s N
      --seek N
           number of seconds to seek at the start (default: 0)
           can be a floating point number like 123.456

Building

  • Requirements: ncurses headers, basic libc, make, and cmake.
  • Clone the repository recursively with git clone --recursive or initialize the submodules with git submodule update --init.
  • Run make.

Installing

  • Copy the file spct somewhere on your PATH, or run it with a direct filepath.
  • Macos users can install with homebrew:
$ brew tap jneen/tap https://codeberg.org/jneen/tap
$ brew install spct