@beatbax/cli
v0.2.0
Published
Command-line interface for BeatBax chiptune live-coding language.
Maintainers
Readme
@beatbax/cli
Command-line interface for BeatBax chiptune live-coding language.
Overview
BeatBax CLI provides command-line tools for working with BeatBax chiptune files:
- Play
.baxsongs - Verify syntax
- Export to JSON, MIDI, and UGE (hUGETracker) formats
- Inspect UGE files
Installation
npm install -g @beatbax/cliOr use without installing:
npx @beatbax/cli play song.baxUsage
Play a Song
beatbax play song.baxOptions:
--headless- Play without UI (server environments)--loop- Loop playback
Verify Syntax
beatbax verify song.baxChecks for syntax errors without playing.
Export Formats
JSON (ISM - Intermediate Song Model):
beatbax export json song.bax output.jsonMIDI (4-track Standard MIDI File):
beatbax export midi song.bax output.midUGE (hUGETracker v6):
beatbax export uge song.bax output.ugeExport options:
--verbose- Show detailed progress--debug- Show diagnostic information--strict-gb- Reject non-GB-compatible features
Inspect UGE Files
beatbax inspect file.ugeShows metadata, instruments, patterns, and effects from UGE files.
Example Workflow
# Create a song
cat > mysong.bax << EOF
chip gameboy
bpm 128
inst lead type=pulse1 duty=50 env=gb:12,down,1
inst bass type=pulse2 duty=25 env=gb:10,down,1
pat melody = C4 E4 G4 C5
pat bassline = C3 . G2 .
channel 1 => inst lead pat melody
channel 2 => inst bass pat bassline
EOF
# Verify syntax
beatbax verify mysong.bax
# Play it
beatbax play mysong.bax
# Export to multiple formats
beatbax export json mysong.bax mysong.json
beatbax export midi mysong.bax mysong.mid
beatbax export uge mysong.bax mysong.uge
# Inspect the exported UGE
beatbax inspect mysong.ugeHelp
Get help for any command:
beatbax --help
beatbax play --help
beatbax export --helpProgrammatic Usage
You can also use the CLI programmatically:
import { play, verify, exportFile } from '@beatbax/cli';
await play('song.bax');
const isValid = await verify('song.bax');
await exportFile('uge', 'song.bax', 'output.uge');Requirements
- Node.js 16+ (18+ recommended)
- For audio playback: speaker support (automatic on most platforms)
Resources
License
MIT © BeatBax Contributors
