Code Monkey home page Code Monkey logo

smartguitaramp's Introduction

SmartGuitarAmp

Downloads CI

Guitar plugin made with JUCE that uses neural network models to emulate real world hardware.

See video demo on YouTube

This plugin uses a WaveNet model to recreate the sound of real world hardware. The current version models a small tube amp at clean and overdriven settings. Gain and EQ knobs were added to modulate the modeled sound.

app

You can create your own models and load them in SmartGuitarAmp with minor code modifications. To train your own models, use PedalNetRT

Model training is done using PyTorch on pre recorded .wav samples. More info in the above repository. To share your best models, email the json files to [email protected] and they may be included in the latest release as a downloadable zip.

Also see companion plugin, the SmartGuitarPedal
Note: As of SmartAmp version 1.3, the custom model load was removed to simplify the plugin. To load user trained models, use the SmartGuitarPedal, which plays all models trained with PedalNetRT.

Installing the plugin

  1. Download the appropriate plugin installer (Windows, Mac, Linux) from the Releases page.
  2. Run the installer and follow the instructions. May need to reboot to allow your DAW to recognize the new plugin.

Build Instructions

Build with Cmake

# Clone the repository
$ git clone https://github.com/GuitarML/SmartGuitarAmp.git
$ cd SmartGuitarAmp

# initialize and set up submodules
$ git submodule update --init --recursive

# build with CMake
$ cmake -Bbuild
$ cmake --build build --config Release

The binaries will be located in SmartAmp/build/SmartAmp_artefacts/

License

This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.

This project builds off the work done in WaveNetVA

The EQ code used in this plugin is based on the work done by Michael Gruhn in 4BandEQ algorithm.

smartguitaramp's People

Contributors

guitarml avatar hfiguiere avatar keyth72 avatar mpesonen 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smartguitaramp's Issues

How to load models?

Hello!
It's so exciting to discover this library, thank everyone for the effort!
It might be a dummy question, but - could you please tell how load models? SmartPedal has the dropdown interface option, what about amp?
Thank you!

Save/load plugin state across sessions

I've started using SmartGuitarAmp and SmartGuitarPedal in some music projects and one of the biggest features I want is to have the plugin state be retained across DAW sessions, so that I don't have to keep reloading models and adjusting parameters when reopening a saved project -- I can imagine that other users could find this feature useful as well.

Happy to tackle this myself! The main question I have is whether it'd be better to save the model JSON directly as part of the state (which would remove reliance on external files but increase file size) or just the model path (which would save space but break if the model file gets moved/deleted). I'm leaning towards the latter, since for now it's simple enough for users to reload a new model if they happen to move or delete them after saving. Curious what folks feel like would be best though, or any other solutions I'm not thinking of.

It'd probably be good to add similar functionality to the SmartGuitarPedal as well, but figured we could keep discussion to a single issue for convenience.

Feature-Add knob state saving

Currently, the knobs reset to the default after closing and reopening the GUI. Add state ability to save the knob states.

Modelling quality?

Hey Keith,
thanks for the VST!

i'm wondering how the parameters are implemented under the hood

with profiling (looking at you, Kemper) you have a snapshot of an AMP with set settings like Gain, Treble, Bass, Middle but the profiler itself can not accurately simulate the dynamics AMP at a higher or lower level of those settings - instead it applies post FX and EQ

with modelling you have a model of an AMP and when you tweak the settings it's more like an invisible hand is turning a knob on a "real" amp

which approach is used and do you have any ideas to improve the quality?

How exactly do the models and plugin work?

The little I have used this plugin I am super impressed with the sound, responsiveness when paying, etc. I do have some questions though if I may ask:

  1. Do every model have one clean and one driven section? If not will the one it is does not have be silent if chosen?

  2. Are the models offered using cab emulation or do we need to add that with for example another plugin?

Thanks in advance!

[SUGGESTION] Collaboration with other open projects

Hi there, SGA sounds cool !

Since we've added it to our collection for the HyMPS project, we strongly suggest you to check out other in order to establish some kind of collaboration that certainly could benefit all:

Hope that inspires !

No way to load model in 1.0+git14.efe4597 (OpenSUSE)

I installed and tried out both the application and the vst3 plugin (1.0+git14.efe4597 ) for OpenSUSE Tumbleweed but could not find the button to load models like in the Windows version. Is there something I have missed or am do wrong?

‘class juce::FileChooser’ has no member named ‘browseForFileToOpen’

OS: Debian Bullseye
JUCE Version: v6.1.1

I got this error when trying to build SmartGuitarAmp

Compiling PluginEditor.cpp
../../Source/PluginEditor.cpp: In member function ‘void WaveNetVaAudioProcessorEditor::loadButtonClicked()’:
../../Source/PluginEditor.cpp:271:17: error: ‘class juce::FileChooser’ has no member named ‘browseForFileToOpen’
  271 |     if (chooser.browseForFileToOpen())
      |                 ^~~~~~~~~~~~~~~~~~~
make: *** [Makefile:250: build/intermediate/Release/PluginEditor_94d4fb09.o] Error 1

it builds successfully using JUCE v6.0.8

GUI front end for training models?

Is this possible? I'm not a programmer by trade, the last time I messed with Python it was an hours long debacle. I think you'd see a big leap in attention if people could experiment with trying to train their own models...

[Feature request] StudioRack integration

It's an open-source plugin manager called StudioRack:
https://github.com/studiorack

The aim of the project is to provide a free open-source way to manage plugin dependencies and their versions. It would involve the following steps:

Publish a Github release containing the plugin source along with metadata plugins.json
Tag your Github repository with studiorack-plugin so it can be discovered
Wait for the studiorack-registry to index your plugin (every 24 hours)
Check the registry feed for your plugin to appear

Add automation parameters

automatable parameters are the only way for a blind user to do anything. Currently, the blind can only load the plug and process the signal on the default parameters. Nothing more.

feature request: linux version

Thanks for making this, under an open license!
I'd love to use it, but am using linux.
Since it's based on JUCE it should not be too hard to port it.
Any chance on that?

Change amps on runtime

what's missing is a format for packaging amps
currently, you have to rebuild the binary if you want your own model + overlay

we could just zip our models and skins under a flashy extension (.amp?) and browse them in the plugin
appreciate your time and feedback

Android/iOS?

What are the chances on this running on Android and iOS?

CUDA-less Pytorch

Installed the CUDA-less Pytorch,

... I'm getting

File "C:\Users\Chip\anaconda3\lib\site-packages\pytorch_lightning\trainer\distrib_parts.py", line 317, in sanitize_gpu_ids
raise MisconfigurationException(f"""
pytorch_lightning.utilities.exceptions.MisconfigurationException:
You requested GPUs: [0]
But your machine only has: []

I thought I would try it with the "no CUDA" pytorch lightning but I guess I was too optimistic?

High CPU usage

Apologies if redudant.

Downloaded the vst recently, put it into Ableton and it's using 80%-105% of my CPU. I have an older i5, but I've never encountered this problem with any VST before. Using the same methods too, placing it in the requisite folder, loading it in, placing it in the effects chain. When I turn it off, the CPU usage obviously drops.

Not sure what's causing this.

controlling synth with guitar

is there anything in the domain of machine learning for controlling a synth with a guitar, making a guitar sound like a synth, or turning the guitar signal into midi in a live setting?

Distorted output and high DSP usage in Ardour on Arch Linux

Hi, I created this to install this plugin on Arch Linux (it's my first PKGBUILD!) and it looked like it was successful. I tried loading the plugin in Ardour and the GUI loaded, but the output was garbled. I'm not sure how to diagnose this and was hoping I could get some help with fixing this issue.

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.