Removing Juce GUI-related modules from console DSP application

Hello there. I need help removing unnecessary JUCE GUI-related modules from my console DSP application. I am unable to open (no-way) the solution/project in Projucer and am encountering errors when I try to remove the modules or exclude their headers from “juceHeader.h”. Is it possible to fix this by modifying the library or module files in Visual Studio? Here is a list of the modules that are currently being used in the console project:
modules

In modern projects you don’t need JuceHeader.h at all, so ideally remove that file all together and only include the modules you need, e.g.

#include <juce_audio_processors/juce_audio_processors.h>

But most likely you won’t be able to get rid of all gui related modules, because of dependencies.

Because the AudioProcessor can create an AudioProcessorEditor, it depends on juce_gui_basics, which depends on juce_graphics… and so on

You can remove modules from your vcproject, unless there are modules that depend on others, in which case you will hit linker errors.

If you change the module sources, you are on your own when it comes to problems. Many dependencies are not easily avoided.

If you post what your project does, and which classes you use, somebody might be able to suggest a few things which could be removed.

An audio file is being played and a series of effects are applied sequentially.
I use these classes in my project:

AudioSource
AudioFormatManager
AudioFormatReaderSource
AudioDeviceManager
AudioSourcePlayer
AudioProcessor
AudioProcessorEditor
AudioPlayHead
ProcessorChain

You didn’t really explain why you would want to remove those GUI-related modules? Is there some practical reason you would want to do that?

I don’t see how possibly could get rid of any guy stuff, if you are using AudioProcessorEditor. By using that class, you are using a GUI so why get rid of the modules necessary for it?

Because we don’t need any GUI & we want to decrease projecy size/load.
It is a simple EmbeddedAudio Player+DSP (phaser,chorus,compressor) It will only work from console.

So no GUI, no UI. Just an exe which plays embedded mp3.

I don’t think you can accomplish that with the AudioProcessor class. This class is designed as a bridge to all major (and some minor) plugin system like Apples AU and VST. The UI part is pretty heavily baked in there.
If you are just using the DSP module, I think you can get rid of the GUI modules.

Oh now I see, we thought “AudioProcessor” class is a must for playing mp3 & phaser/compressor effects. But you telling that no need for audioprocessor class for that. Lemme try that

Thank you

1 Like

Yeah, AudioProcessor shouldn’t be necessary for what you are trying to accomplish. The audio codec stuff is in “audio_formats”, which will already be part of your project when you are using the DSP modules. If you wan’t to connect to an audio device of the system (that’s probably necessary if you are letting the OS handle the IO - won’t be necessary if you are doing some USB serial like stuff yourself) you need juce_audio_devices.

1 Like

Thank you ver much mate, also I understand that we must re-learn the meaning of all modules/what they do.
Thank you