Changes land on a boundary.
Never halfway through a groove.
BROWSER PLAYER / FENNEL PATTERNS / 808 SAMPLES
Basso plays a beat in your browser and swaps in your changes at the next bar, without stopping the music.
Sixteen steps, plain data, no hidden timeline. A pattern is a Fennel function you can read, export, and keep under version control. Any grid converts to one. Send a grid beat to a friend as a link: the pattern travels inside the link, with no account or server.
Open the complete pattern(bpm 150)
(steps 16)
(fn pattern [bar]
[; the 3 + 3 + 2 bounce
{:step 0 :sample "kick2.wav"}
{:step 3 :sample "kick2.wav"}
{:step 6 :sample "kick2.wav"}
{:step 8 :sample "kick2.wav"}
{:step 11 :sample "kick2.wav"}
{:step 14 :sample "kick2.wav"}])
Never halfway through a groove.
Revisions do not restart playback.
No account, no server, no tracking of your patterns.
The same Fennel file plays in the browser and the command line.
The command-line version plays the same Fennel files from disk and reloads them when you save. It is frozen: it still works, but new features land in the browser player first. It needs a Go toolchain; the 808 samples are built into the binary.
go install github.com/nyelonong/basso/cmd/basso@latest
basso play patterns/basic-groove.fnl
Then save the file on any step.