NeuralPi

Raspberry Pi guitar pedal using neural networks to emulate real amps and effects
Log | Files | Refs | Submodules | README

commit b3f649deb8108e073908e8f9ec2f103f07df15b9
parent 58a2a7754479ee7f8094c28189ce4d975ab2965d
Author: keith <kbloemer89@gmail.com>
Date:   Wed, 14 Jul 2021 04:46:23 -0500

Merge branch 'main' of https://github.com/GuitarML/NeuralPi into ir-loader

Diffstat:
M.github/FUNDING.yml | 1+
A3dprint/HiFiBerry_Case_w_Hole_r2.stl | 0
A3dprint/README.md | 9+++++++++
A3dprint/RPi_4_Case_Cover_hex.stl | 0
A3dprint/hifiberry_rca_cover.stl | 0
MREADME.md | 18+++++++++++++++---
Aresources/3d_models.jpg | 0
Aresources/npi_case_blue.jpg | 0
Aresources/npi_case_grey.jpg | 0
9 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml @@ -2,3 +2,4 @@ github: [GuitarML] patreon: GuitarML +custom: https://www.paypal.com/donate?business=H22K2S7B7ACMJ&no_recurring=0&item_name=Support+GuitarML&currency_code=USD diff --git a/3dprint/HiFiBerry_Case_w_Hole_r2.stl b/3dprint/HiFiBerry_Case_w_Hole_r2.stl Binary files differ. diff --git a/3dprint/README.md b/3dprint/README.md @@ -0,0 +1,9 @@ +## NeuralPi 3-D Printed Case + +Includes three .stl files for creating a 3-D printed case for Neural Pi. The case with all required openings, case cover with hex design, and RCA cover are included. + +Note: The final print is a tight fit. The bottom four screw holes in the printed case line up with the Raspberry Pi board fasteners. The bottom of the RaspberryPi board should be flush with the four screw holes in the case. + +![app](https://github.com/GuitarML/NeuralPi/blob/main/resources/3d_models.jpg) +![app](https://github.com/GuitarML/NeuralPi/blob/main/resources/npi_case_blue.jpg) +![app](https://github.com/GuitarML/NeuralPi/blob/main/resources/npi_case_grey.jpg) diff --git a/3dprint/RPi_4_Case_Cover_hex.stl b/3dprint/RPi_4_Case_Cover_hex.stl Binary files differ. diff --git a/3dprint/hifiberry_rca_cover.stl b/3dprint/hifiberry_rca_cover.stl Binary files differ. diff --git a/README.md b/README.md @@ -8,7 +8,7 @@ Check out the step by step build guide published on [Towards Data Science](https NeuralPi can sound like an amplifier or distortion/overdrive pedal using the power of neural networks. Models trained from recordings of real amps and pedals can be loaded into the plugin for endless possiblities on your guitar. Create your own models or use custom tones from GuitarML. -WARNING: The audio output of the HiFiBerry DAC + ADC is at line level. Guitar amplifiers expect a low level electric guitar signal (instrument level). Use NeuarlPi only where line level inputs are expected. +WARNING: The audio output of the HiFiBerry DAC + ADC is at line level. Guitar amplifiers expect a low level electric guitar signal (instrument level). Use NeuralPi only where line level inputs are expected. There are four main components to the guitar pedal: @@ -18,11 +18,20 @@ There are four main components to the guitar pedal: 4. NeuralPi VST3 plugin ![app](https://github.com/GuitarML/NeuralPi/blob/main/resources/neuralpi_pic.jpg) -<br>This is the normal plugin, available for Windows (Standalone, VST3) and Mac (Standalone, AU, VST3). After connencting the Raspberry Pi and remote computer to the same local WiFi network, enter the RaspberryPi's IP address (keep the default ports) to enable control over WiFi. +<br>This is the normal plugin, available for Windows (Standalone, VST3) and Mac (Standalone, AU, VST3). After connencting the Raspberry Pi and remote computer to the same local WiFi network, enter the RaspberryPi's IP address (keep the default ports) to enable control over WiFi. The Win/Mac plugins are fully functional guitar plugins that allow you to try out GuitarML's most advanced amp/pedal models without building the Raspberry Pi pedal. + +Note: The plugin must be restarted after using the Import Tone button for changes to take effect. ## Installing the plugin -See the Release page for the cross-compiled Raspberry Pi / Elk Audio OS compatible VST3 plugin and Win/Mac installers. +See the [Release page](https://github.com/GuitarML/NeuralPi/releases) for the cross-compiled Raspberry Pi / Elk Audio OS compatible VST3 plugin and Win/Mac installers. + +After running the plugin or standalone for the first time, the two default models will be copied to the following locations. Any imported models will be copied here as well. Model files must be manually removed from these locations to perform model clean-up. +``` +Mac/Linux: /home/<username>/Documents/GuitarML/NeuralPi/tones +Windows: C:/Users/<username>/Documents/GuitarML/NeuralPi/tones +Elk Audio OS: /home/mind/Documents/GuitarML/NeuralPi/tones +``` ## Adding New Models @@ -37,6 +46,8 @@ Note: It is important that all models files have unique names with no spaces. <b Note: Ensure from the terminal output that you were able to connect over WiFi, and that the model files were copied properly. <br><br> 6. Restart both the NeuralPi and the remote instance of the NeuralPi plugin. From the remote NeuralPi GUI, enter the Raspberry Pi's IP address. As long as both devices are connected to the local WiFi network, you will be able select models from the NeuralPi plugin dropdown list to change models running on the Raspberry Pi. +IMPORTANT: The plugin uses a sort() function to order the models alphabetically. Due to differences in the behaviour of this function on Linux (Elk OS) vs. Win/Mac, you must start json filenames with a capital letter, otherwise the NeuralPi on Elk will sort models starting with a lowercase letter at the end of the list and the controller will be out of sync with the NeuralPi pedal. + ## To Do Elk Audio OS also supports physical controls through [Sensei](https://github.com/elk-audio/sensei). Gain/Volume and EQ knobs can be added, as well as a LCD screen for selecting different models. One could build an actual guitar pedal with NeuralPi and any number of other digital effects and controls. @@ -47,6 +58,7 @@ While running PyTorch locally on the Raspberry Pi might be a stretch, it is full The neural network is a re-creation of the LSTM inference model from [Real-Time Guitar Amplifier Emulation with Deep Learning](https://www.mdpi.com/2076-3417/10/3/766/htm) The [Automated-GuitarAmpModelling](https://github.com/Alec-Wright/Automated-GuitarAmpModelling) project was used to train the .json models.<br> +GuitarML maintains a [fork](https://github.com/GuitarML/Automated-GuitarAmpModelling) with a few extra helpful features, including a Colab training script. IMPORTANT: When training models for NeuralPi, ensure that a LSTM size of 20 is used. NeuralPi is optimized to run models of this size, and other sizes are not currently compatible. The plugin uses [RTNeural](https://github.com/jatinchowdhury18/RTNeural), which is a highly optimized neural net inference engine intended for audio applications. diff --git a/resources/3d_models.jpg b/resources/3d_models.jpg Binary files differ. diff --git a/resources/npi_case_blue.jpg b/resources/npi_case_blue.jpg Binary files differ. diff --git a/resources/npi_case_grey.jpg b/resources/npi_case_grey.jpg Binary files differ.