glitch art scripting language
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Luna c73b98a356 fix for zig 0.11 2 months ago
doc add saturator, vintagedelay cmd 4 years ago
examples fix mbeq example 4 years ago
src fix for zig 0.11 2 months ago
.gitignore port main() code path to latest zig 1 year ago
LICENSE remove oldMain, add LICENSE 4 years ago Update README on new env var 4 years ago
build.zig fix for zig 0.11 2 months ago


glitch art "framework", ???????? language??? something?

example of the amp command

example of the rflanger command

how do?

build depedencies (headers included):

  • zig at
  • libc, lilv and libsndfile
  • graphicsmagick for the rotate command
  • readline (for repl)

plugin depedencies (only required at runtime):

# build and install
# assumes lilv headers are at /usr/include/lilv-0, edit build.zig if different
git clone
cd scritcher

zig build install --prefix ~/.local/

# on your input image file
convert blah.jpg blah.bmp

# if you got the lv2 default amp plugin, this is runnable
scritcher examples/middle_amp.scri blah.bmp

# if not, the noise plugin does not depend on any lv2 plugin.
scritcher examples/noise.scri blah.bmp

// scritcher saves it on an incremental basis, so the first run will save to
// blah_g1.bmp, the second saves to blah_g2.bmp, etc.
$your_image_viewer blah_g1.bmp

using the repl

using repl works via scritcher repl scri_file.scri input_image.bmp

you type commands as you'd write the specific scritcher commands (doc/, with four repl-specific ones (semicolons do not apply):

  • push, to push the last written command to the queue
  • save, to write the queue to the given scri_file.scri file
  • list, to print the current contents of the queue
  • quit, to exit

After a non-REPL command, such as an effect, the program pointed by SCRITCHER_RUNNER will run as argument to the runqs command. By default, the program run will be ristretto (as it is my preffered image viewer, considering it was able to handle when some images went broke)

this allows for quicker iteration of commands, as you can type a command, see the image changes as fast as possible, tweak its arguments, and when satisfied, push it, and work on the next command, etc.