Skip to content

glittershark/jazz

Repository files navigation

jazz

some daisy seed effect pedal firmware

run nix-shell to get dependencies. see shell.nix for a list of dependencies if you are less of a nix weenie than i am

building and testing

be sure to check out all the submodules:

$ git submodule update --init --recursive

to build firmware blobs for all effects:

$ make

to run tests:

$ make test

compile_commands.json is automatically merged from both ARM and host builds into the project root for clangd/language server support.

host audio CLI

for quick iteration without flashing firmware, the host CLI lets you run effects on mp3 files from your computer.

quick start

build the host CLI:

$ make console

run input through the default effect (granular) and play through your computer:

$ ./build-test/src/console/jazz-console input.mp3

save processed output to a new mp3:

$ ./build-test/src/console/jazz-console input.mp3 --output processed.mp3

if playback fails on your machine, disable playback and render offline:

$ ./build-test/src/console/jazz-console input.mp3 --no-play --output processed.mp3

effects and chains

list available effects:

$ ./build-test/src/console/jazz-console --list-effects

select one effect:

$ ./build-test/src/console/jazz-console input.mp3 --effect clip

try the fridge terminal preset:

$ ./build-test/src/console/jazz-console input.mp3 --preset presets/host/fridge_demo.toml --output fridge_demo.mp3

inspect the fridge preset’s LFO motion without rendering audio:

$ ./build-test/src/console/jazz-console --preset presets/host/fridge_demo.toml --fridge-lfo-chart

render that LFO motion as a matplotlib image:

$ python scripts/plot_fridge_lfo.py --preset presets/host/fridge_demo.toml --output fridge_lfo.png

chain multiple effects in order:

$ ./build-test/src/console/jazz-console input.mp3 --effect clip,lowpass,granular

effect parameters

you can tune parameters from the command line:

$ ./build-test/src/console/jazz-console input.mp3 --effect clip,la_sort --clip-threshold 0.2 --la-sort-weight-center 0.65

supported parameter flags:

  • --clip-threshold, --clip-gain
  • --anticlip-threshold, --anticlip-gain
  • --lowpass-alpha, --highpass-alpha
  • --cursed-lowpass-alpha, --cursed-highpass-alpha
  • --la-sort-weight-center, --la-sort-weight-sharpness

the fridge effect is configured through preset keys with the prefixes fridge_head_N_ and fridge_lfo_N_; see presets/host/fridge_demo.toml.

presets (toml/json)

load a preset file:

$ ./build-test/src/console/jazz-console input.mp3 --preset presets/host/clip_lasort.toml --output processed.mp3

example preset included in repo:

  • presets/host/clip_lasort.toml

CLI flags override preset values, so you can start from a preset and tweak:

$ ./build-test/src/console/jazz-console input.mp3 --preset presets/host/clip_lasort.toml --clip-threshold 0.1

JSON preset example:

$ cat > /tmp/example_preset.json <<'EOF'
{
  "effect_chain": ["clip", "la_sort", "highpass"],
  "clip_threshold": 0.3,
  "clip_gain": 10.0,
  "la_sort_weight_center": 0.62,
  "la_sort_weight_sharpness": 4.0,
  "highpass_alpha": 0.2
}
EOF
$ ./build-test/src/console/jazz-console input.mp3 --preset /tmp/example_preset.json --output processed.mp3

the CLI depends on ffmpeg and ffplay being available in your shell.

flashing to daisy seed

to flash a particular effect to a daisy seed via STLink:

$ make flash DIR=delay

or manually:

$ st-flash write build/src/delay/delay.bin 0x08000000
$ st-flash reset

printing stuff

see console for how to set up the console. reading from it should be something like screen /dev/ttyACM0 115200.

current effects

delays

  • delay: literally just a perfectly clean delay.
  • reverse: a simple reverse delay.
  • granular: weird semi-generative granular delay.
  • rachel: heavily modulated multi-delay

filters

distortion

  • clip: hard clipping distortion.
  • anticlip: adds back the residue from clipping.

other

  • la_sort: sorting-based effect with weighted tap from sorted buffer.

About

daisy seed effect firmware

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors