What is your workflow and your basic folders organization?


#1

Hi mates,

I’m very interested by your workflow about your plugins design.

Introjucer seems to create separate files for gui & for sounds/data processing.
How do you do that, you ?

Because all my introjucer, paths etc are okat now (basically, I didn’t do a lot because everything runs very fine even at the beginning), I’d need to create my own workflow, the one with which I can be comfortable to continue further.

Would you mind to help me with that?

Comfortable with max5, the graphical programming framework, or with java with eclipse or very basic c++ stuff for Arduino’s firmware, I have those steps in my (little) head:
1- building the GUI with TheJucer and importing the code inside PluginEditor.cpp (I guess…)
2- building the MIDI listener & processor in PluginProcessor.cpp
3- building the audio synthesis part in PluginProcessor.cpp too
4- compile (:p)

any ideas/tips for these steps ?

If I can figure out the main.cpp was the core of applications in my previous project, in juce and when IntroJucer produces the VSc++ project, I cannot figure out “where” is or which is the main file …
If anyone could help me with that, it would be nice

best,


#2

Whatever is hosting the plugin will call the method

to create a new instance of your plugin (AudioProcessor).

That will kick start everything off and the host will start pumping audio through the filter by
calling the process method and passing a buffer in/out.

When the user wants to edit parameters via a gui, the AudioProcessor returns a component (AudioProcessorEditor) with

AudioProcessorEditor* AudioProcessor::createEditor().

These are create and destroyed whenever the host asks for one and when the user closes it. So it shouldn’t
hold any state really, just have it pull the data it needs to display from the AudioProcessor.


#3

Hello Anima, and thanks for your feedback.
got it :slight_smile:

Did you use many cpp files or amalgamate all in one?


#4

Its good to separate it out I think. Allows you to build up your own classes that you can reuse then.

Something you should think about is how to manage parameter updates as well, the host and GUI can issue
changes so that can be tricky to get right depending on your structure. If theres only a few parameters it should
be ok though.


#5

okay :slight_smile:

currently discovering the whole synthesis process & methods of juce.

I’d like to make a kind of graph with all classes under my eyes …
it could be useful :stuck_out_tongue: