# What's the correct, recommended way to build a plugin with no GUI?

**URL:** <https://forum.juce.com/t/whats-the-correct-recommended-way-to-build-a-plugin-with-no-gui/47528>\
**Category:** Audio Plugins\
**Created:** [August 25, 2021, 4:47am UTC](https://forum.juce.com/t/whats-the-correct-recommended-way-to-build-a-plugin-with-no-gui/47528 "2021-08-25T04:47:18Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![haszari](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/haszari/32/428_2.png) [@haszari](https://forum.juce.com/u/haszari)\
**Post date:** [August 25, 2021, 4:47am UTC](https://forum.juce.com/t/whats-the-correct-recommended-way-to-build-a-plugin-with-no-gui/47528/1 "2021-08-25T04:47:18Z")

</div>

My Projucer-generated plugin source code has a GUI module - `PluginEditor.h/cpp`. I don’t plan on implementing a custom GUI, I’m happy with the lean and elegant raw parameters UI provided by host apps.

Is there an option in `Projucer` or in the config to disable this, or should I manually remove the source files & relevant code? If I manually remove the source, and return 0 from `createEditor()` - will it work fine?

---

<div class="post-metadata">

**Author:** ![eyalamir](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/eyalamir/32/2978_2.png) [@eyalamir](https://forum.juce.com/u/eyalamir)\
**Post date:** [August 25, 2021, 4:51am UTC](https://forum.juce.com/t/whats-the-correct-recommended-way-to-build-a-plugin-with-no-gui/47528/2 "2021-08-25T04:51:43Z")

</div>

When you create your GUI, just implement the generic editor JUCE provides.

```auto
In Processor.cpp:
juce::AudioProcessorEditor* MyProcessor::createEditor()
{
    return new juce::GenericAudioProcessorEditor(*this);
}
//No need for Editor .h or cpp files in this case

```

---

<div class="post-metadata">

**Author:** ![haszari](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/haszari/32/428_2.png) [@haszari](https://forum.juce.com/u/haszari)\
**Post date:** [August 25, 2021, 5:05am UTC](https://forum.juce.com/t/whats-the-correct-recommended-way-to-build-a-plugin-with-no-gui/47528/3 "2021-08-25T05:05:11Z")

</div>

Thanks for clarifying! I wasn’t aware of that. (edited - I missed that this is a generic GUI)

But I don’t need or want any GUI at all, want to keep my plugin super basic and primitive.

I tried removing the editor code and it seems to work fine 🤞🏻

Plugin is here if you’re curious: [GitHub - haszari/MidiClipPhraseVariations: Phrase-synchable MIDI filter plugin for getting more ou](https://github.com/haszari/MidiClipPhraseVariations)

---

<div class="post-metadata">

**Author:** ![xenakios](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/xenakios/32/4047_2.png) [@xenakios](https://forum.juce.com/u/xenakios)\
**Post date:** [August 25, 2021, 5:08am UTC](https://forum.juce.com/t/whats-the-correct-recommended-way-to-build-a-plugin-with-no-gui/47528/4 "2021-08-25T05:08:41Z")

</div>

Return false from hasEditor and nullptr from createEditor in the audioprocessor, then the host’s generic plugin GUI will be used.

---

<div class="post-metadata">

**Author:** ![haszari](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/haszari/32/428_2.png) [@haszari](https://forum.juce.com/u/haszari)\
**Post date:** [August 25, 2021, 5:21am UTC](https://forum.juce.com/t/whats-the-correct-recommended-way-to-build-a-plugin-with-no-gui/47528/5 "2021-08-25T05:21:53Z")

</div>

Great, thanks for confirming!

---

<div class="post-metadata">

**Author:** ![engineer](https://avatars.discourse-cdn.com/v4/letter/e/8baadc/32.png) [@engineer](https://forum.juce.com/u/engineer)\
**Post date:** [November 12, 2021, 1:16am UTC](https://forum.juce.com/t/whats-the-correct-recommended-way-to-build-a-plugin-with-no-gui/47528/6 "2021-11-12T01:16:25Z")

</div>

Interesting topic! almost answers some questions I had too.
