Giter Site home page Giter Site logo

jatinchowdhury18 / complexnonlinearities Goto Github PK

View Code? Open in Web Editor NEW
181.0 10.0 21.0 88.53 MB

Complex Nonlinearities for Audio Signal Processing

License: GNU General Public License v3.0

C++ 39.64% Python 26.24% Shell 0.23% TeX 33.89%
dsp juce audio-plugin

complexnonlinearities's Introduction

Complex Nonlinearities

Build

This repository contains recent research exploring purely digital complex nonlinear signal processing. Articles explaining the project in further detail can be found on Medium. A technical project overview is available online here.

Each nonlinear effect is available as an audio plugins (VST/VST3/AU). Builds of each plugin are available for Mac and Windows in the Bin/ directory. Linux users can find builds available on the Open Build Service, courtesy of Konstantin Voinov.

Current nonlinearities include:

  1. Double Soft Clipper Medium Jupyter

Pic

  1. Harmonic Exciter Medium Jupyter

Pic

  1. Hysteresis Medium Jupyter

Pic

  1. Nonlinear Biquad Medium Jupyter Paper

Pic

  1. Nonlinear Feedback Medium Jupyter

Pic

  1. Wavefolding Medium Jupyter

Pic

  1. Adaptive EQ Medium Jupyter

Pic

  1. Nonlinear Allpass Medium Jupyter

Pic

  1. Subharmonics Generator Medium Jupyter

Pic

  1. Gated Recurrent Distortion Medium Jupyter

Pic

Organization

Each subfolder contains a specific nonlinearity, including Python simulations and a real-time implementation in JUCE/C++.

Binary files for each plugin can be found in the Bin/ folder. Currently only Windows builds and unsigned Mac builds are available.

License

The code in this repository is freely available under the GNU General Public License

complexnonlinearities's People

Contributors

jatinchowdhury18 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

complexnonlinearities's Issues

Subharmonics does not persist state

Hi! Those plugins sound awesome, but I am having a little problem with Subharmonics. It does not seem to persist state across project saves.

I create a new project with a Subharmonics instance, change the parameters and then save my project. I then close and re-open my project and the changes I made are gone and the initial state is loaded instead. I have tested other plugins and it seems to affect only Subharmonics...

I am using the VST Windows version with Mulab 8 as a DAW.

Errors building DoubleSoftClipper on linux

Hi!
I've come around your articles on Medium and wanted to try some plugins.
When I try to build DoubleSoftClipper, I get the following errors:
~/sources/ComplexNonlinearities/DoubleSoftClipper/Plugin/Builds/LinuxMakefile > make Compiling include_juce_audio_plugin_client_VST2.cpp Compiling PluginProcessor.cpp ../../Source/PluginProcessor.cpp: In constructor ‘DoubleSoftClipperAudioProcessor::DoubleSoftClipperAudioProcessor()’: ../../Source/PluginProcessor.cpp:29:41: error: cannot convert ‘std::atomic<float>*’ to ‘float*’ in assignment 29 | upperLim = vts.getRawParameterValue ("upperlim"); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ | | | std::atomic<float>* ../../Source/PluginProcessor.cpp:30:41: error: cannot convert ‘std::atomic<float>*’ to ‘float*’ in assignment 30 | lowerLim = vts.getRawParameterValue ("lowerlim"); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ | | | std::atomic<float>* ../../Source/PluginProcessor.cpp:31:38: error: cannot convert ‘std::atomic<float>*’ to ‘float*’ in assignment 31 | slope = vts.getRawParameterValue ("slope"); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ | | | std::atomic<float>* ../../Source/PluginProcessor.cpp:32:38: error: cannot convert ‘std::atomic<float>*’ to ‘float*’ in assignment 32 | width = vts.getRawParameterValue ("width"); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ | | | std::atomic<float>* ../../Source/PluginProcessor.cpp:33:42: error: cannot convert ‘std::atomic<float>*’ to ‘float*’ in assignment 33 | upperSkew = vts.getRawParameterValue ("upperskew"); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ | | | std::atomic<float>* ../../Source/PluginProcessor.cpp:34:42: error: cannot convert ‘std::atomic<float>*’ to ‘float*’ in assignment 34 | lowerSkew = vts.getRawParameterValue ("lowerskew"); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ | | | std::atomic<float>* make: *** [Makefile:220 : build/intermediate/Debug/PluginProcessor_a059e380.o] Erreur 1
I'm using Juce 6.0.1 on linux Mint 20 based on Ubuntu 20.04.
For the record, I've already successfully built some of your projects like the Aphex Exciter, also based on Juce.
Could you please help me with this problem?

Regards,
Yoann

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.