2015-10-18 23:06:39 -07:00
|
|
|
# random dsp code
|
|
|
|
|
|
|
|
it's a bunch of half-baked python code that's kinda handy.
|
|
|
|
|
|
|
|
don't expect commits, docs, or comments to be any verbose.
|
|
|
|
|
2018-02-21 04:04:24 -08:00
|
|
|
feel free to modify and adapt the [autoupdate](autoupdate)
|
|
|
|
shell script for your own repos like this!
|
|
|
|
|
2015-10-18 23:06:39 -07:00
|
|
|
## the stuff
|
|
|
|
|
|
|
|
* a basic BS.1770-3 normalization implementation
|
|
|
|
— [bs.py](/lib/bs.py)
|
|
|
|
|
2018-02-21 04:04:24 -08:00
|
|
|
* biquad butterworth/chebyshev filters
|
|
|
|
[(via DSPFilters)][dspf]
|
2016-04-23 20:12:55 -07:00
|
|
|
— [nsf.py](/lib/nsf.py)
|
2015-10-18 23:06:39 -07:00
|
|
|
|
2018-02-21 04:04:24 -08:00
|
|
|
* modified bilinear transformation: s-plane to z-plane
|
2015-10-18 23:06:39 -07:00
|
|
|
— [planes.py](/lib/planes.py)
|
|
|
|
|
|
|
|
* various functions for biquad filters
|
2018-02-21 04:04:24 -08:00
|
|
|
— [bq.py](/lib/bq.py)
|
2015-10-18 23:06:39 -07:00
|
|
|
|
2018-02-21 04:04:24 -08:00
|
|
|
* some functions for state-variable filters
|
|
|
|
[(via Raph Levien)][svf]
|
2015-10-18 23:06:39 -07:00
|
|
|
— [svf.py](/lib/svf.py)
|
|
|
|
|
2018-02-21 04:04:24 -08:00
|
|
|
* sine sweeps, and the Optimized Aoshima's Time-Stretched Pulse
|
|
|
|
[(via here)][sweeps]
|
2015-10-18 23:06:39 -07:00
|
|
|
— [sweeps.py](/lib/sweeps.py)
|
|
|
|
|
2018-02-21 04:04:24 -08:00
|
|
|
* basic [cepstrum][cep] utilities like minimum-phase reconstruction
|
|
|
|
[(via Julius Smith)][jos3]
|
|
|
|
— [cepstrum.py](/lib/cepstrum.py)
|
|
|
|
|
|
|
|
* utilities for magnitude plotting, including tilting and smoothing
|
|
|
|
— [fft.py](/lib/fft.py) [smoothfft.py](/lib/smoothfft.py) [mag.py](/lib/mag.py)
|
|
|
|
|
|
|
|
* a couple hard-coded polyphase halfband IIRs for nonlinear-phase resampling
|
|
|
|
or approximating hilbert transforms
|
|
|
|
(read more: [Olli Niemitalo][olli])
|
|
|
|
— [piir.py](/lib/piir.py)
|
|
|
|
|
|
|
|
* a dozen windowing functions and utility functions for constructing them
|
|
|
|
— [windowing.py](/lib/windowing.py)
|
2015-10-18 23:06:39 -07:00
|
|
|
|
2018-02-21 04:04:24 -08:00
|
|
|
* ad-hoc experiments with psychoacoustic equalization
|
|
|
|
("neon pink" and other crap before i realized
|
|
|
|
"grey noise" was the term i was looking for)
|
|
|
|
— [data.py](/lib/data.py)
|
2015-10-18 23:06:39 -07:00
|
|
|
|
|
|
|
* miscellaneous matplotlib stuff
|
|
|
|
— [plot.py](/lib/plot.py)
|
|
|
|
|
|
|
|
* miscellaneous utility functions
|
|
|
|
— [util.py](/lib/util.py) [wav.py](/lib/wav.py)
|
|
|
|
|
2018-02-21 04:04:24 -08:00
|
|
|
[dspf]: //github.com/vinniefalco/DSPFilters/
|
|
|
|
[svf]: http://nbviewer.jupyter.org/github/google/music-synthesizer-for-android/blob/master/lab/Second%20order%20sections%20in%20matrix%20form.ipynb
|
2015-10-18 23:06:39 -07:00
|
|
|
[sweeps]: http://www.sound.sie.dendai.ac.jp/dsp/e-21.html
|
2018-02-21 04:04:24 -08:00
|
|
|
[cep]: //en.wikipedia.org/wiki/Cepstrum
|
|
|
|
[jos3]: //ccrma.stanford.edu/~jos/fp/
|
|
|
|
[olli]: http://yehar.com/blog/?p=368
|
2015-10-18 23:06:39 -07:00
|
|
|
|
2017-09-25 09:02:30 -07:00
|
|
|
all wrapped up in a inconveniently named "lib" module!
|
2015-10-18 23:06:39 -07:00
|
|
|
|
|
|
|
## dependencies
|
|
|
|
|
2017-09-25 09:02:30 -07:00
|
|
|
python 3.5+
|
2015-10-18 23:06:39 -07:00
|
|
|
|
|
|
|
numpy scipy sympy matplotlib ewave
|
|
|
|
|
|
|
|
usually run in an ipython environment.
|