void FilterEditor::buttonEvent (Button* button) { //std::cout << button->getRadioGroupId() << " " << button->getName() << std::endl; //if (!checkDrawerButton(button) && !checkChannelSelectors(button)) { String value = button->getName(); float val; val = value.getFloatValue(); Array<int> chans = getActiveChannels(); GenericProcessor* p = (GenericProcessor*) getAudioProcessor(); for (int n = 0; n < chans.size(); n++) { p->setCurrentChannel(chans[n]); if (button->getRadioGroupId() == 1) getAudioProcessor()->setParameter(0,val); else getAudioProcessor()->setParameter(1,val*1000.0f); } //std::cout << button->getRadioGroupId() << " " << val << std::endl; // } }
void AudioEditor::sliderValueChanged(Slider* slider) { if (slider == volumeSlider) getAudioProcessor()->setParameter(1,slider->getValue()); else if (slider == noiseGateSlider) getAudioProcessor()->setParameter(2,slider->getValue()); }
AudioProcessorEditor* StandaloneFilterWindow::createEditorComp() { if (AudioProcessorEditor* ed = getAudioProcessor()->createEditorIfNeeded()) { return getAudioProcessor()->createEditorIfNeeded(); } else return nullptr; }
void AudioEditor::buttonClicked(Button* button) { if (button == muteButton) { if(muteButton->getToggleState()) { getAudioProcessor()->setParameter(1,0.0f); std::cout << "Mute on." << std::endl; } else { getAudioProcessor()->setParameter(1,1.0f); std::cout << "Mute off." << std::endl; } } }
void SpikeDetectorEditor::sliderValueChanged (Slider* slider) { if (slider == threshSlider) getAudioProcessor()->setParameter(0,slider->getValue()); }
void AudioEditor::buttonClicked(Button* button) { if (button == muteButton) { if (muteButton->getToggleState()) { lastValue = volumeSlider->getValue(); getAudioProcessor()->setParameter(1,0.0f); std::cout << "Mute on." << std::endl; } else { getAudioProcessor()->setParameter(1,lastValue); std::cout << "Mute off." << std::endl; } } else if (button == audioWindowButton) { if (audioWindowButton->getToggleState()) { if (acw == 0) { // AudioComponent* audioComponent = getAudioComponent(); // audioComponent->restartDevice(); // if (audioComponent != 0) { acw = new AudioConfigurationWindow(getAudioComponent()->deviceManager, (Button*) audioWindowButton); acw->setUIComponent(getUIComponent()); //} } getAudioComponent()->restartDevice(); acw->setVisible(true); } else { acw->setVisible(false); //deleteAndZero(acw); getAudioComponent()->stopDevice(); } } }
AudioProcessorGraph::NodeID FilterIOConfigurationWindow::getNodeID() const { if (auto* graph = getGraph()) for (auto* node : graph->getNodes()) if (node->getProcessor() == getAudioProcessor()) return node->nodeID; return {}; }
void OsctoMidiAudioProcessorEditor::timerCallback() { const OwnedArray<AudioProcessorParameter>& params = getAudioProcessor()->getParameters(); for (int i = 0; i < params.size(); ++i) { const AudioProcessorParameter* param = params[i]; const float paramValue = param->getValue(); switch (i) { case CV1: processor.cvMute[CV1] = paramValue; muteCV1->setToggleState(paramValue, dontSendNotification); break; case CV2: processor.cvMute[CV2] = paramValue; muteCV2->setToggleState(paramValue, dontSendNotification); break; case CV3: processor.cvMute[CV4] = paramValue; muteCV3->setToggleState(paramValue, dontSendNotification); break; case CV4: processor.cvMute[CV4] = paramValue; muteCV4->setToggleState(paramValue, dontSendNotification); break; case Scale: scaleSelect->setSelectedId(paramValue * 7 + 1); break; case BitRes: resolution->setSelectedId(paramValue * 3 + 1); break; default: break; } } // update cv meter if (!processor.cvMute[CV1]) { cvMeter1->setValue(processor.cvValue[CV1]); } if (!processor.cvMute[CV2]) { cvMeter2->setValue(processor.cvValue[CV2]); } if (!processor.cvMute[CV3]) { cvMeter3->setValue(processor.cvValue[CV3]); } if (!processor.cvMute[CV4]) { cvMeter4->setValue(processor.cvValue[CV4]); } if (reconnect) { uint16_t port = portText->getText().getIntValue(); processor.setOSCConnection(port); reconnect = false; } }
void TremoloAudioProcessorEditor::sliderDragEnded (Slider* slider) { for (int i = 0; i < Parameters::numParameters; i++) { if (slider == sliders[i]) { getAudioProcessor()->endParameterChangeGesture (i); } } }
void TremoloAudioProcessorEditor::resized() { const int w = getWidth(); const int h = getHeight(); sliders[Parameters::rate]->setBounds (20, 35, 70, 70); sliders[Parameters::depth]->setBounds (105, 35, 70, 70); sliders[Parameters::shape]->setBounds (5, 140, w - 170, 20); sliders[Parameters::phase]->setBounds (5, 180, w - 170, 20); if (getAudioProcessor()->getNumInputChannels() > 1) { bufferViewL->setBounds (w - 125, 20, 115, ((h - 15) * 0.5f) - 14); bufferViewR->setBounds (w - 125, ((h - 15) * 0.5f) + 15 + 2, 115, ((h - 15) * 0.5f) - 14); } else if (getAudioProcessor()->getNumInputChannels() == 1) { bufferViewL->setBounds (w - 150, 20, 140, (h - 15 - 15)); } }
void GenericEditor::constructorInitialize(GenericProcessor* owner, bool useDefaultParameterEditors) { name = getAudioProcessor()->getName(); displayName = name; nodeId = owner->getNodeId(); //MemoryInputStream mis(BinaryData::silkscreenserialized, BinaryData::silkscreenserializedSize, false); //Typeface::Ptr typeface = new CustomTypeface(mis); titleFont = Font ("Default", 14, Font::bold); if (!owner->isMerger() && !owner->isSplitter() && !owner->isUtility()) { // std::cout << "Adding drawer button." << std::endl; drawerButton = new DrawerButton("name"); drawerButton->addListener(this); addAndMakeVisible(drawerButton); if (!owner->isSink()) { channelSelector = new ChannelSelector (true, titleFont); } else { channelSelector = new ChannelSelector (false, titleFont); } addChildComponent(channelSelector); channelSelector->setVisible(false); isSplitOrMerge=false; } else { isSplitOrMerge=true; } backgroundGradient = ColourGradient(Colour(190, 190, 190), 0.0f, 0.0f, Colour(185, 185, 185), 0.0f, 120.0f, false); backgroundGradient.addColour(0.2f, Colour(155, 155, 155)); addParameterEditors(useDefaultParameterEditors); backgroundColor = Colour(10,10,10); //fadeIn(); }
void OsctoMidiAudioProcessorEditor::comboBoxChanged (ComboBox* comboBoxThatHasChanged) { const OwnedArray<AudioProcessorParameter>& params = getAudioProcessor()->getParameters(); if (comboBoxThatHasChanged == scaleSelect) { float selectedScale = scaleSelect->getSelectedId(); params[Scale]->beginChangeGesture(); params[Scale]->setValueNotifyingHost ((selectedScale - 1) / 7); params[Scale]->endChangeGesture(); processor.currentScale = selectedScale; } else if (comboBoxThatHasChanged == resolution) { float selectedBitRes = resolution->getSelectedId(); params[BitRes]->beginChangeGesture(); params[BitRes]->setValueNotifyingHost ((selectedBitRes - 1) / 3); params[BitRes]->endChangeGesture(); uint16_t range; switch (static_cast<int>(selectedBitRes)) { case Bit10: range = Bit10Reso; break; case Bit14: range = Bit14Reso; break; case Bit16: range = Bit16Reso; break; default: range = Bit12Reso; break; } cvMeter1->setRange (0, range, 1); cvMeter2->setRange (0, range, 1); cvMeter3->setRange (0, range, 1); cvMeter4->setRange (0, range, 1); processor.currentResolution = range; } }
void OsctoMidiAudioProcessorEditor::buttonClicked (Button* buttonThatWasClicked) { const OwnedArray<AudioProcessorParameter>& params = getAudioProcessor()->getParameters(); if (buttonThatWasClicked == muteCV1) { processor.cvMute[CV1] ? processor.cvMute[CV1] = false : processor.cvMute[CV1] = true; muteCV1->setToggleState(processor.cvMute[CV1], dontSendNotification); params[CV1]->beginChangeGesture(); params[CV1]->setValueNotifyingHost (static_cast<float>(processor.cvMute[CV1])); params[CV1]->endChangeGesture(); } else if (buttonThatWasClicked == muteCV2) { processor.cvMute[CV2] ? processor.cvMute[CV2] = false : processor.cvMute[CV2] = true; muteCV2->setToggleState(processor.cvMute[CV2], dontSendNotification); params[CV2]->beginChangeGesture(); params[CV2]->setValueNotifyingHost (static_cast<float>(processor.cvMute[CV2])); params[CV2]->endChangeGesture(); } else if (buttonThatWasClicked == muteCV3) { processor.cvMute[CV3] ? processor.cvMute[CV3] = false : processor.cvMute[CV3] = true; muteCV3->setToggleState(processor.cvMute[CV3], dontSendNotification); params[CV3]->beginChangeGesture(); params[CV3]->setValueNotifyingHost (static_cast<float>(processor.cvMute[CV3])); params[CV3]->endChangeGesture(); } else if (buttonThatWasClicked == muteCV4) { processor.cvMute[CV4] ? processor.cvMute[CV4] = false : processor.cvMute[CV4] = true; muteCV4->setToggleState(processor.cvMute[CV4], dontSendNotification); params[CV4]->beginChangeGesture(); params[CV4]->setValueNotifyingHost (static_cast<float>(processor.cvMute[CV4])); params[CV4]->endChangeGesture(); } }
AudioEditor::AudioEditor (AudioNode* owner) : AudioProcessorEditor (owner), isSelected(false), desiredWidth(150) { name = getAudioProcessor()->getName(); nodeId = owner->getNodeId(); backgroundColor = Colours::lightgrey.withAlpha(0.5f); muteButton = new MuteButton(); muteButton->addListener(this); muteButton->setBounds(95,5,15,15); muteButton->setToggleState(false,false); addAndMakeVisible(muteButton); }
GenericEditor::GenericEditor (GenericProcessor* owner) : AudioProcessorEditor (owner), isSelected(false), desiredWidth(150), tNum(-1), isEnabled(true), accumulator(0.0), isFading(false), drawerButton(0), channelSelector(0) { name = getAudioProcessor()->getName(); nodeId = owner->getNodeId(); MemoryInputStream mis(BinaryData::silkscreenserialized, BinaryData::silkscreenserializedSize, false); Typeface::Ptr typeface = new CustomTypeface(mis); titleFont = Font(typeface); if (!owner->isMerger() && !owner->isSplitter()) { drawerButton = new DrawerButton("name"); drawerButton->addListener(this); addAndMakeVisible(drawerButton); if (!owner->isSink()) { channelSelector = new ChannelSelector(true, titleFont); } else { channelSelector = new ChannelSelector(false, titleFont); } addChildComponent(channelSelector); channelSelector->setVisible(false); } backgroundGradient = ColourGradient(Colour(190, 190, 190), 0.0f, 0.0f, Colour(185, 185, 185), 0.0f, 120.0f, false); backgroundGradient.addColour(0.2f, Colour(155, 155, 155)); addParameterEditors(); backgroundColor = Colour(10,10,10); //fadeIn(); }
GenericEditor::GenericEditor (GenericProcessor* owner, FilterViewport* vp) : AudioProcessorEditor (owner), isSelected(false), viewport(vp), desiredWidth(150), tNum(-1), isEnabled(true) { name = getAudioProcessor()->getName(); nodeId = owner->getNodeId(); Random r = Random(99); r.setSeedRandomly(); //titleFont = new Font(14.0, Font::plain); //titleFont->setTypefaceName(T("Miso")); backgroundColor = Colour(3, 143, 255); }
FilterIOConfigurationWindow::~FilterIOConfigurationWindow() { if (auto* graph = getGraph()) { if (auto* p = getAudioProcessor()) { ScopedLock renderLock (graph->getCallbackLock()); graph->suspendProcessing (true); graph->releaseResources(); p->prepareToPlay (graph->getSampleRate(), graph->getBlockSize()); p->suspendProcessing (false); graph->prepareToPlay (graph->getSampleRate(), graph->getBlockSize()); graph->suspendProcessing (false); } } }
void EventNodeEditor::buttonEvent(Button* button) { std::cout << button->getRadioGroupId() << " " << button->getName() << std::endl; String value = button->getName(); //float val; getAudioProcessor()->setParameter(0,value.getFloatValue()); // if (value.getLastCharacter() == juce_wchar('k')) { // val = value.dropLastCharacters(1).getFloatValue() * 1000.0f; // } // else { // val = value.getFloatValue(); // } //if (button->getRadioGroupId() == 1) /// //getAudioProcessor()->setParameter(0,val); //else //getAudioProcessor()->setParameter(1,val); //std::cout << button->getRadioGroupId() << " " << val << std::endl; }
//============================================================================== void TremoloAudioProcessorEditor::paint (Graphics& g) { // just clear the window PluginLookAndFeel::drawPluginBackgroundBase (g, *this); const int verticalLineX = sliders[Parameters::shape]->getRight() + 10; PluginLookAndFeel::drawInsetLine (g, 0, 115, verticalLineX, 115, 2); PluginLookAndFeel::drawInsetLine (g, verticalLineX, 0, verticalLineX, 210, 2); Rectangle<int> bevel (bufferViewL->getBounds().expanded (2, 2)); LookAndFeel::drawBevel (g, bevel.getX(), bevel.getY(), bevel.getWidth(), bevel.getHeight(), 2, Colour (0xFF455769).darker (0.5f), Colour (0xFF455769).brighter (0.3f), false, true); if (getAudioProcessor()->getNumInputChannels() > 1) { bevel = bufferViewR->getBounds().expanded (2, 2); LookAndFeel::drawBevel (g, bevel.getX(), bevel.getY(), bevel.getWidth(), bevel.getHeight(), 2, Colour (0xFF455769).darker (0.5f), Colour (0xFF455769).brighter (0.3f), false, true); } PluginLookAndFeel::drawPluginBackgroundHighlights (g, *this); }
GenericProcessor* GenericEditor::getProcessor() const { return (GenericProcessor*)getAudioProcessor(); }
PluginAudioProcessor* PluginAudioProcessorEditor::getPluginAudioProcessor() const { return static_cast <PluginAudioProcessor*> (getAudioProcessor()); }
DemoJuceFilter* getFilter() const throw() { return (DemoJuceFilter*) getAudioProcessor(); }
void AudioEditor::sliderValueChanged(Slider* slider) { getAudioProcessor()->setParameter(1,slider->getValue()); }
BlankenhainAudioProcessor* BlankenhainAudioProcessorEditor::getProcessor() const { return static_cast<BlankenhainAudioProcessor*>(getAudioProcessor()); }