commit bc63782adaf177abeb7d22259d87b92b0d04ca98
parent 828c691c953ef421ecc1d6d619c8af27a7522426
Author: keith <kbloemer89@gmail.com>
Date: Wed, 11 Nov 2020 05:48:27 -0600
Initial addition of load tone button
Diffstat:
7 files changed, 60 insertions(+), 4 deletions(-)
diff --git a/plugins/SmartAmp/SmartAmp.jucer b/plugins/SmartAmp/SmartAmp.jucer
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT id="ym7AY5" name="SmartAmp" projectType="audioplug" pluginAUMainType="'aufx'"
- companyName="HandDrawnAmps" headerPath="$(HOME)/eigen/" displaySplashScreen="1"
+ companyName="GuitarML" headerPath="$(HOME)/eigen/" displaySplashScreen="1"
jucerFormatVersion="1" pluginCode="sa1" maxBinaryFileSize="20971520">
<MAINGROUP id="ZrSGof" name="SmartAmp">
<GROUP id="{0250E2E8-A733-0AA7-0A08-97085228CF87}" name="Resources">
@@ -85,7 +85,7 @@
<VS2019 targetFolder="Builds/VisualStudio2019">
<CONFIGURATIONS>
<CONFIGURATION isDebug="1" name="Debug" targetName="SmartAmp"/>
- <CONFIGURATION isDebug="0" name="Release" targetName="SmartAmp"/>
+ <CONFIGURATION isDebug="0" name="Release" targetName="SmartAmp" headerPath="C:\Users\rache\Desktop\dev\eigen-3.3.7"/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_video"/>
diff --git a/plugins/SmartAmp/Source/PluginEditor.cpp b/plugins/SmartAmp/Source/PluginEditor.cpp
@@ -29,6 +29,10 @@ WaveNetVaAudioProcessorEditor::WaveNetVaAudioProcessorEditor (WaveNetVaAudioProc
addAndMakeVisible(ampOnButton);
ampOnButton.addListener(this);
+ addAndMakeVisible(loadButton);
+ loadButton.setButtonText("Load Tone");
+ loadButton.addListener(this);
+
ampCleanLeadButton.setImages(true, true, true,
ImageCache::getFromMemory(BinaryData::power_switch_up_png, BinaryData::power_switch_up_pngSize), 1.0, Colours::transparentWhite,
Image(), 1.0, Colours::transparentWhite,
@@ -221,6 +225,8 @@ void WaveNetVaAudioProcessorEditor::resized()
// This is generally where you'll want to lay out the positions of any
// subcomponents in your editor..
+ loadButton.setBounds(50, 40, 125, 25);
+
// Amp Widgets
ampPresenceKnob.setBounds(97, 495, 75, 105);
ampCleanBassKnob.setBounds(197, 495, 75, 105);
@@ -239,12 +245,27 @@ void WaveNetVaAudioProcessorEditor::resized()
ampLED.setBounds(975, 160, 15, 25);
}
+void WaveNetVaAudioProcessorEditor::loadButtonClicked()
+{
+ FileChooser chooser("Select a .json tone...",
+ {},
+ "*.json");
+ if (chooser.browseForFileToOpen())
+ {
+ File file = chooser.getResult();
+ processor.loadConfig(file);
+ }
+}
+
void WaveNetVaAudioProcessorEditor::buttonClicked(juce::Button* button)
{
- if (button == &OnButton)
+ if (button == &OnButton) {
ampOnButtonClicked();
- else if (button == &CleanLeadButton)
+ } else if (button == &CleanLeadButton) {
ampCleanLeadButtonClicked();
+ } else if (button == &loadButton) {
+ loadButtonClicked();
+ }
}
diff --git a/plugins/SmartAmp/Source/PluginEditor.h b/plugins/SmartAmp/Source/PluginEditor.h
@@ -59,7 +59,9 @@ private:
Image background;
int current_background = 1;
+ TextButton loadButton;
virtual void buttonClicked(Button* button) override;
+ void loadButtonClicked();
virtual void sliderValueChanged(Slider* slider) override;
void ampOnButtonClicked();
void ampCleanLeadButtonClicked();
diff --git a/plugins/SmartAmp/Source/PluginProcessor.cpp b/plugins/SmartAmp/Source/PluginProcessor.cpp
@@ -231,6 +231,22 @@ void WaveNetVaAudioProcessor::loadConfigAmp()
this->suspendProcessing(false);
}
+void WaveNetVaAudioProcessor::loadConfig(File configFile)
+{
+ this->suspendProcessing(true);
+ WaveNetLoader loader(dummyVar, configFile);
+ int numChannels = loader.numChannels;
+ int inputChannels = loader.inputChannels;
+ int outputChannels = loader.outputChannels;
+ int filterWidth = loader.filterWidth;
+ std::vector<int> dilations = loader.dilations;
+ std::string activation = loader.activation;
+ waveNet.setParams(inputChannels, outputChannels, numChannels, filterWidth, activation,
+ dilations);
+ loader.loadVariables(waveNet);
+ this->suspendProcessing(false);
+}
+
float WaveNetVaAudioProcessor::convertLogScale(float in_value, float x_min, float x_max, float y_min, float y_max)
{
float b = log(y_max / y_min) / (x_max - x_min);
diff --git a/plugins/SmartAmp/Source/PluginProcessor.h b/plugins/SmartAmp/Source/PluginProcessor.h
@@ -59,6 +59,7 @@ public:
void setStateInformation (const void* data, int sizeInBytes) override;
void loadConfigAmp();
+ void loadConfig(File configFile);
// Overdrive Pedal
float convertLogScale(float in_value, float x_min, float x_max, float y_min, float y_max);
@@ -98,6 +99,8 @@ private:
float ampLeadDrive = 1.0;
float ampMaster = 1.0;
+ var dummyVar;
+
//==============================================================================
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WaveNetVaAudioProcessor)
};
diff --git a/plugins/SmartAmp/Source/WaveNetLoader.cpp b/plugins/SmartAmp/Source/WaveNetLoader.cpp
@@ -25,6 +25,19 @@ WaveNetLoader::WaveNetLoader(var jsonFile)
dilations = readDilations();
}
+WaveNetLoader::WaveNetLoader(var jsonFile, File configFile)
+{
+ // Edit this line to point to your binary json file in project resources
+ config = JSON::parse(configFile);
+
+ numChannels = config["residual_channels"];
+ inputChannels = config["input_channels"];
+ outputChannels = config["output_channels"];
+ filterWidth = config["filter_width"];
+ activation = config["activation"].toString().toStdString();
+ dilations = readDilations();
+}
+
std::vector<int> WaveNetLoader::readDilations()
{
std::vector<int> newDilations;
diff --git a/plugins/SmartAmp/Source/WaveNetLoader.h b/plugins/SmartAmp/Source/WaveNetLoader.h
@@ -21,6 +21,7 @@ class WaveNetLoader
{
public:
WaveNetLoader(var jsonFile);
+ WaveNetLoader(var jsonFile, File configFile);
int numChannels;
int inputChannels;
int outputChannels;