Command line utility to automate the splitting of audio files
  • Go 76.9%
  • Shell 23.1%
Find a file
2026-05-29 19:59:47 +01:00
dist Initial commit 2026-05-29 19:59:47 +01:00
packaging Initial commit 2026-05-29 19:59:47 +01:00
scripts Initial commit 2026-05-29 19:59:47 +01:00
go.mod Initial commit 2026-05-29 19:59:47 +01:00
main.go Initial commit 2026-05-29 19:59:47 +01:00
main_test.go Initial commit 2026-05-29 19:59:47 +01:00
README.md Initial commit 2026-05-29 19:59:47 +01:00

splch (Go rewrite)

splch splits multichannel audio into per-channel files using ffprobe + ffmpeg.

Features

  • Compiled CLI for macOS, Linux, and Windows.
  • Supports -y, -n, --dry-run, -j, --yes, --debug, and --version.
  • Channel layout mapping parity with the original Bash script.
  • Uses bundled ffmpeg / ffprobe if found next to the binary, then falls back to PATH.

Build

go test ./...
go build -o dist/splch .

Usage

./dist/splch --yes -j 4 input1.wav input2.flac

Packaging releases with bundled ffmpeg

Use:

./scripts/package-release.sh

This script:

  • Cross-compiles splch for supported targets.
  • Downloads ffmpeg archives defined in packaging/ffmpeg-sources.tsv.
  • Verifies archive SHA-256 checksums from packaging/ffmpeg-checksums.txt.
  • Creates per-platform release bundles with:
    • splch executable
    • bin/ffmpeg and bin/ffprobe

Licensing note

Bundling ffmpeg introduces redistribution obligations depending on codec/build flags. Before publishing artifacts, verify the selected ffmpeg distributions and include any required notices in your release documentation.