crap/README.md

2.4 KiB

crap

connor's rancid audio plugins. LADSPA and VST.

this is a set of hacked-together hacks to be hacked on in the personal interest of learning and experimenting.

MIT-licensed; go wild.

plugs

Name Label ID Description
crap Parametric Equalizer crap_eq 0x000CAFED multiband parametric EQ. try redefining BANDS. #define BANDS to desired number of equalizer bands; default 4.
crap sample delay test crap_delay_test 0xDEDEDEDE why did i commit this?
crap Constant Equalizer crap_eq_const 0x0DEFACED simpler code than crap_eq for a static response. edit code as needed.
crap T420 Speaker Compensation crap_eq_const_T420 0x0DEFAE91 lenovo tests
crap T420 Speaker Compensation (SVF) crap_eq_const_T420_svf 0x0DEFB3CA trying out State Variable Filters (SVFs)
crap mugi4 (moog-like) crap_mugi4 0xD8D0D8D0 nonlinear moog filter implementation: see reference
crap Tube Distortion crap_tube 0x50F7BA11 static waveshaper with 6x oversampling and parameter smoothing. doesn't actually emulate a tube. not actually for crapping in.
crap Leveller crap_level 0xAAAAAAAA an early prototype of a heavy leveller.

build notes

dependencies

crap is now dependent on the Eigen header library. for your convenience, a get_eigen bash script is provided. this script simply downloads and extracts the Eigen header files required to build crap.

you may need to add -fabi-version=6 to CXXFLAGS if you use g++.

general building

make linux or make windows (works well with mxe and msys2 mingw64)

make linux-arm requires a CPU with a NEON unit

remember to export VST_SDK_DIR to the path of your vstsdk2.4/

other targets:

  • all: no hand-holding.
  • design: simple CLI to the biquad coefficient calculator.
  • benchmark: does what it says on the tin. no Windows support.

TODO

  • LV2 support
  • automatically generate markdown table based on crap contents
  • rename plugins (fix capitalization consistency and such)
  • fix code style; particularily braces in method definitions and spaces in casts
  • scrap overly-complex makefile for a shell script
  • don't mix CamelCase with underscores (only done for legacy reasons)