diff --git a/Assets/web/src/App.js b/Assets/web/src/App.js index 63b5946..fea956d 100644 --- a/Assets/web/src/App.js +++ b/Assets/web/src/App.js @@ -420,6 +420,7 @@ function App() { + (layout, ID::autoTuneSpeed, "AutoTune Speed", - NormalisableRange {0.001f, 0.4f, .01f}, + NormalisableRange {0.001f, 0.4f, .001f}, .5f)), + portTime(addToLayout(layout, + ID::portTime, + "Portamento Speed", + NormalisableRange {0.001f, 0.2f, .001f}, + .001f)), mute(addToLayout(layout, ID::mute, "Mute", false)), filterType(addToLayout(layout, ID::filterType, @@ -226,6 +232,7 @@ public: AudioParameterFloat& formantPreserve; AudioParameterFloat& autoTuneSpeed; + AudioParameterFloat& portTime; AudioParameterBool& mute; AudioParameterChoice& filterType; @@ -320,6 +327,7 @@ void WebViewPluginAudioProcessor::processBlock(juce::AudioBuffer& buffer, buffer.clear(i, 0, buffer.getNumSamples()); shifter.SetFormantPreserve(parameters.formantPreserve.get()); shifter.SetAutoTuneSpeed(parameters.autoTuneSpeed.get()); + shifter.SetPortamentoTime(parameters.portTime.get()); juce::AudioBuffer const_buff; const_buff.makeCopyOf(buffer); shifter.Process(const_buff.getArrayOfReadPointers(), (float**)buffer.getArrayOfWritePointers(), buffer.getNumSamples()); @@ -466,6 +474,7 @@ private: WebSliderRelay formantSliderRelay{ "formantSlider" }; WebSliderRelay autoTuneSpeedSliderRelay{ "autoTuneSpeedSlider" }; + WebSliderRelay portTimeSliderRelay{ "portTimeSlider" }; WebToggleButtonRelay muteToggleRelay{ "muteToggle" }; WebComboBoxRelay filterTypeComboRelay{ "filterTypeCombo" }; @@ -478,6 +487,7 @@ private: .withNativeIntegrationEnabled() .withOptionsFrom(formantSliderRelay) .withOptionsFrom(autoTuneSpeedSliderRelay) + .withOptionsFrom(portTimeSliderRelay) .withOptionsFrom(muteToggleRelay) .withOptionsFrom(filterTypeComboRelay) .withOptionsFrom(controlParameterIndexReceiver) @@ -493,6 +503,7 @@ private: WebSliderParameterAttachment formantAttachment; WebSliderParameterAttachment autoTuneSpeedAttachment; + WebSliderParameterAttachment portTimeAttachment; WebToggleButtonParameterAttachment muteAttachment; WebComboBoxParameterAttachment filterTypeAttachment; @@ -624,6 +635,9 @@ WebViewPluginAudioProcessorEditor::WebViewPluginAudioProcessorEditor(WebViewPlug autoTuneSpeedAttachment(*processorRef.state.getParameter(ID::autoTuneSpeed.getParamID()), autoTuneSpeedSliderRelay, processorRef.state.undoManager), + portTimeAttachment(*processorRef.state.getParameter(ID::portTime.getParamID()), + portTimeSliderRelay, + processorRef.state.undoManager), muteAttachment(*processorRef.state.getParameter(ID::mute.getParamID()), muteToggleRelay, processorRef.state.undoManager), @@ -633,8 +647,8 @@ WebViewPluginAudioProcessorEditor::WebViewPluginAudioProcessorEditor(WebViewPlug { addAndMakeVisible(webComponent); - //webComponent.goToURL(localDevServerAddress); - webComponent.goToURL (WebBrowserComponent::getResourceProviderRoot()); + webComponent.goToURL(localDevServerAddress); + //webComponent.goToURL (WebBrowserComponent::getResourceProviderRoot()); setSize(500, 500); diff --git a/Source/shifter_voice.cpp b/Source/shifter_voice.cpp index 4991a35..4250c56 100644 --- a/Source/shifter_voice.cpp +++ b/Source/shifter_voice.cpp @@ -21,8 +21,8 @@ void ShifterVoice::Init(float sample_rate) { portamento_.Init(sample_rate, 0.05f); //default portamento time amplitude_envelope_.Init(sample_rate); amplitude_envelope_.SetAttackTime(0.2f); - amplitude_envelope_.SetDecayTime(0.2f); - amplitude_envelope_.SetReleaseTime(1.0f); + amplitude_envelope_.SetDecayTime(0.1f); + amplitude_envelope_.SetReleaseTime(.1f); onoff_ = false; overflow_ = false; current_midi = 60;