scritcher/README.md

67 lines
2.2 KiB
Markdown

scritcher
====
glitch art "framework", ???????? language??? something?
![example of the amp command](https://estrogen.fun/i/57y7kn55.png)
![example of the rflanger command](https://estrogen.fun/i/i2055hdf.png)
# how do?
## build depedencies (headers included):
- zig at https://ziglang.org
- libc, lilv and libsndfile
- graphicsmagick for the `rotate` command
- readline (for repl)
## plugin depedencies (only required at runtime):
- lv2 default plugins (most specifically the eg-amp plugin,
will likely be there by default)
- the SWH plugins ( https://github.com/swh/lv2 )
- the Invada Studio plugins ( https://launchpad.net/invada-studio/ )
- abGate plugin
- MDA plugins
- Calf plugins
```bash
# build and install
# assumes lilv headers are at /usr/include/lilv-0, edit build.zig if different
git clone https://gitdab.com/luna/scritcher.git
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/README.md`), 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.