Breaker

A minimal audio livecoding language written in Rust.

Crates.io Version docs.rs

Key FeaturesHow To UseRoadmapLicense

![screenshot](https://github.com/mielpeeters/vault/assets/72082402/14615bb6-3946-4d27-ba8a-8d5822fb43bc) ## Key Features - grids: configurable sequence of tokens which loop - token: either a note, a chord, a repeat `_`, a pause `&`, or an integer (which can be mapped to a sample) - gridtokens' length is configurable (`note grid_name 3/4` for example) - mapping: custom token integers can be mapped to samples, with optional probability parameter - mixing: different grids can be mixed - synths: currently, only one default synth sound (filtered square) is supported - in the future, configurable synths will be added ## Roadmap - ## How To Use Here is an example breaker file, `my_first_beat.br`: ```breaker tempo 120 4/4 // make a new grid and name it 'beat' // note: _ is a pause, & means 'continue playing' grid beat { 1 _ 2 _ 3 & 1 _ 2 _ 3 4 } // map the symbols in the grid to samples // note: 40% means that 4 will play with probability 40% map beat { 1: kick, 2: hihat, 3: snare, 4: hihat2 40%, } // length of one token in the grid (default: 1/16) note beat 1/16 grid chords { Cm7/C & & _ [3]AbM7/Ab & & _ [3]Fm7/F & & _ [3]Fm7/F & & _ } note chords 1/8 grid bassline { [2]c__[2]c__[2]c_ [1]ab__[1]ab__[1]ab_ [1]f__[1]f__[1]f_ [1]f__[1]f__[1]f_ } // adjust mix (default: 1.0) mix bassline 2.0 mix beat 1.2 ``` We can run this file using this command: ```shell breaker -s samples/ my_first_beat.br ``` ## License GNU GPLv3