5 releases
0.1.4 | Jan 27, 2024 |
---|---|
0.1.3 | Jan 27, 2024 |
0.1.2 | Jan 27, 2024 |
0.1.1 | Jan 27, 2024 |
0.1.0 | Jan 27, 2024 |
#352 in Audio
51KB
1K
SLoC
Breaker
A minimal audio livecoding language written in Rust.
Key Features • How To Use • Roadmap • License
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)
- token: either a note, a chord, a repeat
- 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
Dependencies
~6–39MB
~567K SLoC