breakers

Crates.iobreakers
lib.rsbreakers
version0.1.4
sourcesrc
created_at2024-01-27 00:16:07.896442
updated_at2024-01-27 00:34:38.607387
descriptionInterpreter for the Breaker livecoding language
homepage
repositoryhttps://github.com/mielpeeters/breaker
max_upload_size
id1116167
size127,553
Miel Peeters (mielpeeters)

documentation

README


Breaker

A minimal audio livecoding language written in Rust.

Crates.io Version docs.rs

Key FeaturesHow To UseRoadmapLicense

screenshot

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:

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:

breaker -s samples/ my_first_beat.br

License

GNU GPLv3

Commit count: 0

cargo fmt