diff --git a/README.md b/README.md index 57e307a..63cbd08 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,13 @@ ## Installation ``` -pip install dasp-pytorch +git clone https://github.com/csteinmetz1/dasp-pytorch +cd dasp-pytorch +pip install -e . ``` +Note: Coming to PyPi soon to enable `pip install dasp-pytorch`. + ## Examples `dasp-pytorch` is a Python library for constructing differentiable audio signal processors using PyTorch. @@ -81,63 +85,57 @@ unzip audio_mono-mic.zip rm audio_mono-mic.zip ``` +### More examples + +- [Virtual Analog Modeling](examples/virtual_analog.py) +- [Automatic Equalization](examples/auto_eq.py) +- [Audio Production Style Transfer](examples/style_transfer.py) + ## Audio Processors - - + - - - + + - - - - + + + - - - - - - - - - - + - - + + + +
Audio ProcessorInterfaceReferenceFunctional Interface
Simple Distortionsimple_distortion()Gaingain()
Advanced Distortionadvanced_distortion()
Distortiondistortion()
Parametric Equalizer parametric_eq()
Graphic Equalizergraphic_eq()
Dynamic range compressor compressor()
Dynamic range expander expander()
Reverberationreverberation()noise_shaped_reverberation()
Stereo Widener stereo_widener()
Stereo Panner stereo_panner()
Stereo Busstereo_bus()
-## Examples - ## Citations If you use this library consider citing these papers: @@ -186,3 +184,11 @@ Differnetiable IIR filters ``` ## Acknowledgements + +Supported by the EPSRC UKRI Centre for Doctoral Training in Artificial Intelligence and Music (EP/S022694/1). + +

+     +     +     +

\ No newline at end of file diff --git a/dasp_pytorch/functional.py b/dasp_pytorch/functional.py index e1f104c..11f6462 100644 --- a/dasp_pytorch/functional.py +++ b/dasp_pytorch/functional.py @@ -400,29 +400,7 @@ def compressor( def expander(): - # static characteristics with soft-knee - x_sc = x_db.clone() - - # below knee - idx = x_db < (threshold_db - knee_db / 2) - x_sc_below = threshold_db + (x_db - threshold_db) * ratio - x_sc[idx] = x_sc_below[idx] - - # at knee - idx_1 = x_db <= (threshold_db + (knee_db / 2)) - idx_2 = x_db >= (threshold_db - (knee_db / 2)) - idx = torch.logical_and(idx_1, idx_2) - x_sc_at = x_db + ((1 - ratio) * ((x_db - threshold_db - (knee_db / 2)) ** 2)) / ( - 2 * knee_db - ) - x_sc[idx] = x_sc_at[idx] - - # above knee signal remains the same - - # gain - g_c = x_sc - x_db - - return x + raise NotImplementedError def noise_shaped_reverberation( diff --git a/docs/assets/logos/aim.png b/docs/assets/logos/aim.png new file mode 100644 index 0000000..66cdc2f Binary files /dev/null and b/docs/assets/logos/aim.png differ diff --git a/docs/assets/logos/qm.png b/docs/assets/logos/qm.png new file mode 100644 index 0000000..c6a415f Binary files /dev/null and b/docs/assets/logos/qm.png differ diff --git a/docs/assets/logos/ukri.png b/docs/assets/logos/ukri.png new file mode 100644 index 0000000..bfff5d6 Binary files /dev/null and b/docs/assets/logos/ukri.png differ