All Projects → csteinmetz1 → Ronn

csteinmetz1 / Ronn

Licence: apache-2.0
Randomized overdrive neural networks

Projects that are alternatives of or similar to Ronn

Audio Plugin Development Resources
Various resources related to developing plugins for audio production.
Stars: ✭ 136 (+112.5%)
Mutual labels:  plugin, audio
Camomile
An audio plugin with Pure Data embedded that allows to load and to control patches
Stars: ✭ 527 (+723.44%)
Mutual labels:  plugin, audio
Cordova Plugin Nativeaudio
The low latency audio plugin is designed to enable low latency and polyphonic audio from Cordova/PhoneGap applications, using a very simple and basic API.
Stars: ✭ 220 (+243.75%)
Mutual labels:  plugin, audio
Juce
JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins.
Stars: ✭ 3,841 (+5901.56%)
Mutual labels:  plugin, audio
Awesome Musicdsp
A curated list of my favourite music DSP and audio programming resources
Stars: ✭ 871 (+1260.94%)
Mutual labels:  plugin, audio
Audiokitsynthone
AudioKit Synth One: Open-Source iOS Synthesizer App
Stars: ✭ 1,258 (+1865.63%)
Mutual labels:  plugin, audio
Spectralizer
Audio visualizer plugin for obs-studio
Stars: ✭ 332 (+418.75%)
Mutual labels:  plugin, audio
Node Audio
Graph-based audio api for Node.js based on LabSound and JUCE
Stars: ✭ 67 (+4.69%)
Mutual labels:  plugin, audio
Wdl Ol
Enhanced version of Cockos' iPlug - A simple-to-use C++ framework for developing cross platform audio plugins and targeting multiple plugin APIs with the same code. VST / VST3 / Audiounit / RTAS / AAX (Native) formats supported. NOTE: THIS IS OBSOLETE, PLEASE SEE IPLUG2:
Stars: ✭ 906 (+1315.63%)
Mutual labels:  plugin, audio
Blueprintsound
A plugin for Unreal Engine 4 that surfaces sound-related functionality to Blueprint.
Stars: ✭ 6 (-90.62%)
Mutual labels:  plugin, audio
Sonobus
Source code for SonoBus, a real-time network audio streaming collaboration tool.
Stars: ✭ 586 (+815.63%)
Mutual labels:  plugin, audio
Guitard
Node based multi effects audio processor
Stars: ✭ 31 (-51.56%)
Mutual labels:  plugin, audio
Minimumaudioplugin
Minimum implementation of a native audio plugin for Unity
Stars: ✭ 33 (-48.44%)
Mutual labels:  plugin, audio
Baseplug
MVC audio plugin framework for rust
Stars: ✭ 44 (-31.25%)
Mutual labels:  plugin, audio
Audio Pretrained Model
A collection of Audio and Speech pre-trained models.
Stars: ✭ 61 (-4.69%)
Mutual labels:  audio
Vue Confirm Dialog
Simple Confirm Dialog verification plugin with Vue.js.
Stars: ✭ 62 (-3.12%)
Mutual labels:  plugin
App Media
Elements for accessing data from media input devices and visualizing that data for users
Stars: ✭ 60 (-6.25%)
Mutual labels:  audio
Ff meters
Plug and play component to display LED meters for JUCE audio buffers
Stars: ✭ 60 (-6.25%)
Mutual labels:  audio
Low Latency Android Ios Linux Windows Tvos Macos Interactive Audio Platform
🇸Superpowered Audio, Networking and Cryptographics SDKs. High performance and cross platform on Android, iOS, macOS, tvOS, Linux, Windows and modern web browsers.
Stars: ✭ 1,121 (+1651.56%)
Mutual labels:  audio
Audiobench
Open source modular synthesizer
Stars: ✭ 63 (-1.56%)
Mutual labels:  audio

ronn

Randomized Overdrive Neural Networks

License arXiv

What is ronn?

Throughout audio technology history, engineers, circuit designers, and guitarists have searched tirelessly for novel, extreme, and exciting effects as a result of clipping audio signals. Whether it be vacuum tubes (valves), diodes, transistors, op-amps, microchips, or broken speaker drivers doing the distorting, it seems that we have tried them all. But maybe there is at least one area left relatively under-explored, and thats the realm of neural networks.

Now neural networks, have been a round for a bit. They have actually ALREADY been used to model distortion and overdrive effects from guitar amplifier and pedals quite a bit (such as here, here, here, and here). So then you may be asking, "well how is this any different?" And the answer is, ronn doesn't model ANY pre-existing audio circuit, we don't even bother to train anything! Instead we treat the concept of the neural network as a system which can distort a signal, and then we give the user control over that system to explore new effects. Get your hands dirty building neural networks without even touching TensorFlow or PyTorch.

Click the thumbnail below to watch a live demo of the plugin.

Setup

Download

We supply pre-built VST/AU plugins here.

Once downloaded, unzip and move to:

AU: Macintosh HD/Library/Audio/Plug-Ins/Components
VST3: Macintosh HD/Library/Audio/Plug-Ins/VST3

Currently, we only have macOS builds.

Build

You can also build from source.

This will require that you have JUCE v5 installed. Then you need to install libtorch (PyTorch C++ API).

  1. Download the .zip file containing the source.
https://download.pytorch.org/libtorch/cpu/libtorch-macos-1.7.1.zip
unzip libtorch-macos-1.7.1.zip
  1. Unzip this and place the libtorch directory into the plugin directory.

  2. Change to the root of the plugin project.

cd plugin/juce/ronn
  1. Now update CMakeLists.txt to reflect to correct paths.
# This file was generated by FRUT's Jucer2CMake from "ronn.jucer"

cmake_minimum_required(VERSION 3.4)

project("ronn")

# Update the path below to reflect the correct relative path to FRUT on your system
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../../../../FRUT/prefix/FRUT/cmake")
include(Reprojucer)

find_package(Torch REQUIRED)

set(ronn_jucer_FILE
  "${CMAKE_CURRENT_LIST_DIR}/ronn.jucer"
)

# Set the absolute path to your JUCE installation
set(JUCE_MODULES_GLOBAL_PATH "/path/to/JUCE/modules")
  1. Run the build.sh script, which will build the plugin.

Details

The ronn plugin enables users to run their audio directly through randomly weighted temporal convolutional networks (TCNs). Interestingly, using networks that have not been trained can produce a wide range of compelling audio effects simply by adjusting the architectural elements. These effects range from subtle distortion and overdrive, to more extreme drone-like and glitch effects.

Features

  • Construct different neural networks and listen to the results in real-time.
  • Adjust architectural elements:
    • Depth of the network
    • Convolutional kernel size
    • Width of the convolutional layers
    • Dilation growth factor
    • Activation functions
    • Weight initialization scheme
  • Global seed control enables presets and recallability.
  • Link the input/output gain to control overall drive level.
  • Use depthwise convolutions for less CPU impact.
  • Inspect the receptive field of the network and number of parameters.

More to come in the future...

  • a GUI that shows the construction of the network as you add layers, change activations, etc.
  • a transfer function window that shows the shape of the current activation function being used.
  • use FiLM as a further way to adjust the distortion character. For example, create a 2D plane the user will sample from and then use a set of linear layers to project this to gamma and beta coefficients for each layers (using linear adaptors), then the user can control the input to this MLP.
  • What if you randomized the weights in each layer every time you accessed that layer?

Citation

@article{steinmetz2020overdrive,
        title={Randomized Overdrive Neural Networks},
        author={Steinmetz, Christian J. and Reiss, Joshua D.},
        journal={arXiv preprint arXiv:2010.04237},
        year={2020}}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].