aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md21
1 files changed, 19 insertions, 2 deletions
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.