Skip to content

Pocket Composer ​

A four-track step sequencer with a piano-roll grid, transport, track mutes and a visible playhead.

Run it ​

Build examples with devenv shell -- lcom-ng-build, then:

sh
lcom-ng run -- build/examples/music_maker build/pattern.mlpat

Controls ​

ControlAction
Space / PPlay or pause
Click / arrows + EnterWrite or toggle a note
1-4 / TabSelect instrument
M / track M buttonMute selected track
- / + or transport buttonsChange tempo
Backspace / DeleteRemove current note
C / RClear track / restore demo pattern
Cmd/Ctrl+S / S / F2Save pattern
Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z (Ctrl+Y)Undo / redo
F1Shortcuts

In the app ​

The piano roll separates the active voice from the other tracks, with a compact pattern overview below.

One loop, four voices · The piano roll separates the active voice from the other tracks, with a compact pattern overview below.

What it demonstrates ​

PIT timing, keyboard and mouse handling, AC97 audio, PCM buffers, note sequencing and pattern persistence. Pattern files store notes and tempo, not recorded audio.

Source: examples/music_maker.c.

Refresh captures with the screenshot workflow.

Course/docs licensed CC BY 4.0. Code licensed MIT.