crap/README.md

2.6 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.

gcc can potentially produce significantly slower code, and odds are that your version is horribly outdated anyway.

Debian/Ubuntu users: your stable version of g++ can't even build this. just apt-get install clang-3.6 and export CXX=clang++-3.6 when building.

If you really have to use g++, you may need to add -fabi-version=6 to CXXFLAGS.

general building

make linux or make windows (works well with [mxe]) [mxe]: //mxe.cc

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)