jturcotte/chiptrack
A programmable cross-platform sequencer for the Game Boy Advance sound chip
Chiptrack
A programmable cross-platform sequencer for the Game Boy Advance sound chip.
Install
Features
-
Each song carries a little WebAssembly program that converts sequenced notes to Game Boy Advance sound
commands.
This gives almost complete control over the sound chip to each song. -
Basic MIDI support in the desktop version
-
Runs natively on the Game Boy Advance
It can also be run on the 3DS through open_agb_firm
-
Master Sync Mode to send clock signals to a Pocket Operator or Volca
On the GBA the output volume is too low and it won't trigger unless amplified.
On the 3DS this can be worked around with open_agb_firm by setting
audioOut=2andvolume=36to override the physical volume slider.
Key / Button Mapping
| Function | Desktop | Game Boy Advance |
|---|---|---|
| Move cursor | ←|↑|→|↓ | ←|↑|→|↓ |
| Switch panel (Patterns, Steps, Instruments) | Shift + (←|→) | (L|R) + (←|→) |
| Select previous/next song pattern | B + (↑/↓) | B + (↑/↓) |
| Select previous/next pattern non-empty instruments | Z + (←/→) | B + (←/→) |
| Cycle the selected pattern/note/param value | X + (←|→) | A + (←|→) |
| Copy | X | A |
| Cut | Z + X | B + A |
| Paste (on empty slot) | X | A |
| Play song | Enter | Start |
| Play pattern | Ctrl + Enter | Select + Start |
| Reset sound channels | Esc | Select |
| Save | Ctrl + S | N/A |
| Export song to GBA save file | Ctrl + G | N/A |
| Toggle recording mode | . | N/A |
| Black notes | W|E|T|YU | N/A |
| White notes | A|S|D|F|G|H|J|K | N/A |
| Erase step (or hold during playback) | Backspace | N/A |
Song Patterns Panel
| Function | Desktop | Game Boy Advance |
|---|---|---|
| Cycle pattern | X + (←|→) | A + (←|→) |
| Duplicate pattern | Shift + (Z, X) | (L|R) + (B, A) |
| Copy | X | A |
| Cut (only on the last non-empty slot ) | Z + X | B + A |
| Paste (only on the placeholder slot) | X | A |
| Insert an empty pattern instead of pasting | X, X | A, A |
Pattern Steps Panel
| Function | Desktop | Game Boy Advance |
|---|---|---|
| Cycle note/param | X + (←|→) | A + (←|→) |
| Cycle note/param (large amount) | X + (↓|↑) | A + (↓|↑) |
| Enter selection mode | Shift + Z | (L|R) + B |
| Select all rows (in selection) | Shift + Z | (L|R) + B |
| Copy (in selection) | Z | B |
| Cut (in or not in selection) | Z + X | B + A |
| Cancel selection | Shift | L|R |
| Paste selection clipboard | Shift + X | (L|R) + A |
| Paste edit clipboard (on empty slot) | X | A |
Notes:
- B + A means that B must be held first*
- The selection clipboard is set when copy/cutting in selection mode
- The edit clipboard is set after a note/param cycle (also if unchanged)
- Cutting when not in selection mode sets both the selection and edit clipboards
Based on the awesome work of
License
The source code is available under the terms of the MIT license
(See LICENSE-MIT for details).
However, because of the use of GPL dependencies, Chiptrack compiled binaries
are licensed under the terms of the GPLv3 (See LICENSE-GPL).

