dorkhub

chiptrack

A programmable cross-platform sequencer for the Game Boy Advance sound chip

jturcotte
Rust1834 forksGPL-3.0updated 5 months ago
visit the demogit clone https://github.com/jturcotte/chiptrack.gitjturcotte/chiptrack

Chiptrack

A programmable cross-platform sequencer for the Game Boy Advance sound chip.

image

Try the Web Player

Install

See the latest release page

Features

  • Instruments are programmable

    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.

  • Songs can be distributed and played from GitHub gists

  • Basic MIDI support in the desktop version

  • Runs natively on the Game Boy Advance

    image

    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=2 and volume=36 to 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).

more like this

anne-key

Firmware for Anne Pro Keyboard written in Rust

Rust572

TachiSnap

TachiSnap — Pixel Snapper for animation pixel artists. Rust + WebAssembly client-side tool for cleaning up AI-generated…

HTML50

bit_gossip

Pathfinding library for calculating all node pairs' shortest paths in an unweighted undirected graph.

Rust50

search

search projects, people, and tags