From cd442d1018bc63c73fc8d7cf797e016f59e8ffce Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 30 May 2022 20:19:59 -0400 Subject: Better README --- README.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 6ce78d4..22bf842 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,22 @@ # BQNoise -BQN scripts for audio synthesis and processing, based on [my J scripts](https://github.com/mlochbaum/JSound) for the same. +BQN scripts for audio synthesis and processing. -Most of the synthesizer functionality has been ported over from J, but filtering and reverb are fairly slow: in J these rely on C shared libraries and BQN can't currently call shared libraries. +- mix.bqn: General mixing utilities, e.g. add, repeat, clip, reverb +- panap.bqn: Fancy mono-compatible panning +- oscillator.bqn: Typical oscillators and noise generators for synthesis +- filter.bqn: IIR filters to adjust tonality +- scale.bqn: Utilities for working with scales (in the normal Western system, 12-TET) +- tracker.bqn: Sequencer to make drum tracks or other arrangements from a text template +- wav.bqn: Read and write .wav files +- soxresample.bqn: Bind SoX's resampler for converting .wav files; only thing I'm not brave enough to do in BQN + +See load.bqn and options.bqn for loading multiple scripts and options management. + +The following C libraries are used in CBQN if available: + +- `./lib.c` (build with `$ make`), for filters +- [FFTW](https://en.wikipedia.org/wiki/FFTW)'s `/usr/lib/libfftw3.so.3`, for reverb +- [SoX](https://en.wikipedia.org/wiki/SoX)'s `/usr/lib/libsoxr.so`, for resampling + +The filtering and reverb functions are also implemented in BQN, so that the only change is faster execution, by a factor of about 10 in each case. There's no BQN resampling implementation, so that SoX is needed to work with files at different frequencies. -- cgit v1.2.3