From 392a67c6d73da41e832b658646f62b1e82d58c8f Mon Sep 17 00:00:00 2001 From: jesseward Date: Sat, 9 Aug 2025 16:02:39 -0400 Subject: [PATCH 1/6] Removing devcontainer cruft --- .devcontainer/devcontainer.json | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index e2dfa95..0000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "customizations": { - "vscode": { - "extensions": [ - "golang.Go", - "github.copilot" - ] - } - }, - "features": { - "ghcr.io/devcontainers/features/sshd:1": { - "version": "latest" - } - }, - "image": "mcr.microsoft.com/devcontainers/go" -} From 6c098a612d4465e29a8350d144b10cb723fa2095 Mon Sep 17 00:00:00 2001 From: jesseward Date: Sat, 9 Aug 2025 16:08:10 -0400 Subject: [PATCH 2/6] Re-adding makefile and test file example --- Makefile | 28 ++++++++++++++++++++++++++++ examples/volume-envelope.xm | Bin 0 -> 3090 bytes 2 files changed, 28 insertions(+) create mode 100644 Makefile create mode 100644 examples/volume-envelope.xm diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5f5c41c --- /dev/null +++ b/Makefile @@ -0,0 +1,28 @@ +.PHONY: all +all: setup fmt build test + +.PHONY: setup +setup: + go mod download + go mod tidy + +.PHONY: build +build: clean + @echo "==> Building Packages <==" + go build -v ./... + @echo "==> Building cli <==" + go build -o dist/cli ./cmd/impulse/... + +.PHONY: test +test: + @echo "==> running Go tests <==" + go test -race ./... + +.PHONY: fmt +fmt: + go fmt ./... + +.PHONY: clean +clean: + @echo "==> Cleaning dist/ <==" + rm -fr dist/* diff --git a/examples/volume-envelope.xm b/examples/volume-envelope.xm new file mode 100644 index 0000000000000000000000000000000000000000..395ce887594d858c52237580e71c60d810df7eb9 GIT binary patch literal 3090 zcmeHJTTc@~6h5=PP<^0V>?$$FjERXnDCr_7H?^o#QNexiiMQIWv7v4WT@~LBa!mXQ zO~4<;Kk-q0!Ed*_jfGM)R$`*3J#*&r&77HU&YbMxrtf-Hx2l&L)z@`*R`-(grE=5v zH_DYYcSA2N=}Nufxk;5*L@6RNP^L)Xr-_u2NTTmwl~cjNU(%e~wv}xZvWmrKnP9oj zGRZQJ+wL#lHXGIWJLmCda2p=|EhYIqNUI=t7)s_sw~Q_LYe@n>$+M}nw%-ETTgW8EEpsHKrr zid4Yr)09E&I0^9jI8bLiWhevrN)2^-dR2;1XJCt@6y;y|6NPDAcQ@9X+V$SJ^~SoZ zbp#7dk%%e3-l%zgQ$Kh8x324HzgAgm_P|lEwA%wW0>9V7^sDXhnMqyts=>@desiyC z^|g0#%C^S~Q=x-HxOBCly@r3#J7ppnitLxRe2wfO6XWA)il}?19nb27!lp<;*!;Zw zTG$u{VkZ3e^AP(FEW&1==pfPU_8{m!Vjm|*w~05J!!8*54ac2_4YUMxpsUa-w4FvY zokk#Bq*0o{Ma@G?PzSmStwKHMCiFctmB!bFkw^{bmB!Kf8_|t}^pcaKTfx2Y1I>e^ gJCQcX0NugI-O*Bvh639+DgLLse{{!m{~gi&9hx2;y8r+H literal 0 HcmV?d00001 From b71b1597c727e9a0c2111f6a85a14ca7cda9db6b Mon Sep 17 00:00:00 2001 From: jesseward Date: Sat, 9 Aug 2025 16:08:29 -0400 Subject: [PATCH 3/6] go fmt ./... --- cmd/impulse/loader.go | 2 +- cmd/impulse/main.go | 2 +- internal/player/audioplayer.go | 14 +++++++------- internal/player/protracker_ticker.go | 3 +-- pkg/protracker/protracker.go | 1 - pkg/xm/xm.go | 1 - pkg/xm/xm_test.go | 2 +- 7 files changed, 11 insertions(+), 14 deletions(-) diff --git a/cmd/impulse/loader.go b/cmd/impulse/loader.go index 72f0715..fa6c33f 100644 --- a/cmd/impulse/loader.go +++ b/cmd/impulse/loader.go @@ -20,4 +20,4 @@ func loadModule(filePath string) (module.Module, error) { return nil, fmt.Errorf("failed to load module: %v", err) } return m, nil -} \ No newline at end of file +} diff --git a/cmd/impulse/main.go b/cmd/impulse/main.go index b5c76b4..a09e005 100644 --- a/cmd/impulse/main.go +++ b/cmd/impulse/main.go @@ -85,4 +85,4 @@ func main() { if err := app.Run(os.Args); err != nil { log.Fatal(err) } -} \ No newline at end of file +} diff --git a/internal/player/audioplayer.go b/internal/player/audioplayer.go index cf3d08b..de02fc8 100644 --- a/internal/player/audioplayer.go +++ b/internal/player/audioplayer.go @@ -130,15 +130,15 @@ func (w *WavPlayer) writeWavHeader() { // "fmt " sub-chunk w.writer.Write([]byte("fmt ")) - binary.Write(w.writer, binary.LittleEndian, uint32(16)) // Sub-chunk size - binary.Write(w.writer, binary.LittleEndian, uint16(1)) // Audio format (PCM) - binary.Write(w.writer, binary.LittleEndian, uint16(w.opts.NumChannels)) // Num channels - binary.Write(w.writer, binary.LittleEndian, uint32(w.opts.SampleRate)) // Sample rate + binary.Write(w.writer, binary.LittleEndian, uint32(16)) // Sub-chunk size + binary.Write(w.writer, binary.LittleEndian, uint16(1)) // Audio format (PCM) + binary.Write(w.writer, binary.LittleEndian, uint16(w.opts.NumChannels)) // Num channels + binary.Write(w.writer, binary.LittleEndian, uint32(w.opts.SampleRate)) // Sample rate binary.Write(w.writer, binary.LittleEndian, uint32(w.opts.SampleRate*w.opts.NumChannels*w.opts.BitDepth)) // Byte rate - binary.Write(w.writer, binary.LittleEndian, uint16(w.opts.NumChannels*w.opts.BitDepth)) // Block align - binary.Write(w.writer, binary.LittleEndian, uint16(w.opts.BitDepth*8)) // Bits per sample + binary.Write(w.writer, binary.LittleEndian, uint16(w.opts.NumChannels*w.opts.BitDepth)) // Block align + binary.Write(w.writer, binary.LittleEndian, uint16(w.opts.BitDepth*8)) // Bits per sample // "data" sub-chunk w.writer.Write([]byte("data")) binary.Write(w.writer, binary.LittleEndian, uint32(0)) // Placeholder for data size -} \ No newline at end of file +} diff --git a/internal/player/protracker_ticker.go b/internal/player/protracker_ticker.go index 1f76d71..55d0751 100644 --- a/internal/player/protracker_ticker.go +++ b/internal/player/protracker_ticker.go @@ -2,7 +2,6 @@ package player import "github.com/jesseward/impulse/pkg/module" - var periodTable = [16 * 36]uint16{ 856, 808, 762, 720, 678, 640, 604, 570, 538, 508, 480, 453, 428, 404, 381, 360, 339, 320, 302, 285, 269, 254, 240, 226, 214, 202, 190, 180, 170, 160, 151, 143, 135, 127, 120, 113, 850, 802, 757, 715, 674, 637, 601, 567, 535, 505, 477, 450, 425, 401, 379, 357, 337, 318, 300, 284, 268, 253, 239, 225, 213, 201, 189, 179, 169, 159, 150, 142, 134, 126, 119, 113, @@ -356,4 +355,4 @@ func (t *ProtrackerTicker) RenderChannelTick(p *Player, state *channelState, tic state.samplePos += step } } -} \ No newline at end of file +} diff --git a/pkg/protracker/protracker.go b/pkg/protracker/protracker.go index 2edba17..3266ae1 100644 --- a/pkg/protracker/protracker.go +++ b/pkg/protracker/protracker.go @@ -166,7 +166,6 @@ func (s *Sample) Panning() byte { return 128 // Protracker is mono } - func (s *Sample) LoopEnd() uint32 { return uint32(s.loopStart + s.loopLength) } diff --git a/pkg/xm/xm.go b/pkg/xm/xm.go index b2b591e..856cf42 100644 --- a/pkg/xm/xm.go +++ b/pkg/xm/xm.go @@ -542,7 +542,6 @@ func (s *Sample) Panning() byte { return s.panning } - func (s *Sample) LoopEnd() uint32 { return s.loopStart + s.loopLength } diff --git a/pkg/xm/xm_test.go b/pkg/xm/xm_test.go index 95bafce..a9f4b5d 100644 --- a/pkg/xm/xm_test.go +++ b/pkg/xm/xm_test.go @@ -18,4 +18,4 @@ func TestRead(t *testing.T) { if err != nil { t.Fatalf("Read() failed: %v", err) } -} \ No newline at end of file +} From a7e294321037e277d38c20235f39d4e583efec0f Mon Sep 17 00:00:00 2001 From: jesseward Date: Sat, 9 Aug 2025 16:09:57 -0400 Subject: [PATCH 4/6] bump GA to go 1.24 --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 0845eaf..5667758 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -14,7 +14,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.24' - name: Build run: make setup build From 430ba9e1ce7d389b31477a65248aa501bbc888c7 Mon Sep 17 00:00:00 2001 From: jesseward Date: Sat, 9 Aug 2025 16:14:46 -0400 Subject: [PATCH 5/6] install alsa-utils in GA image --- .github/workflows/build-and-test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 5667758..1e9fa74 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -11,6 +11,11 @@ jobs: steps: - uses: actions/checkout@v3 + - name: install alsa-utils + run: | + sudo apt-get -y update + sudo apt-get -y install alsa-utils + - name: Set up Go uses: actions/setup-go@v4 with: From 7a54ce871ecd008729d146c794378ac63bccd4a3 Mon Sep 17 00:00:00 2001 From: jesseward Date: Sat, 9 Aug 2025 16:19:07 -0400 Subject: [PATCH 6/6] Adding libasound2-dev to GA workload installer --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 1e9fa74..c5456fc 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -14,7 +14,7 @@ jobs: - name: install alsa-utils run: | sudo apt-get -y update - sudo apt-get -y install alsa-utils + sudo apt-get -y install alsa-utils libasound2-dev - name: Set up Go uses: actions/setup-go@v4