Execution order
-
Featherless biped Featherless biped https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=698984
- KVRist
- Topic Starter
- 38 posts since 7 Apr, 2024
Is the order in which modules are inserted into a project the same as the order in which the computation of the modules while running the project will be executed?
-
- KVRist
- 493 posts since 21 Nov, 2012 from Sitting in front of my PC
The process order is always 0 ~ num modules
From a new project start inserting modules...
0 Output Module
1 Oscillator Module
2 Patchbay Module
3 Filter Module
num modules = 4
Now delete the Patchbay Module
0 Output Module
1 Oscillator Module
2 'empty slot' Do not process
3 Filter Module
num modules = 4
Now insert a Delay Module and a Chorus Module
SynthCraft will place them in the next available empty slot
0 Output Module
1 Oscillator Module
2 Delay Module
3 Filter Module
4 Chorus Module
num modules = 5
So to answer your question
If you create a project without deleting any modules. Yes
If you delete and then insert a module. No
Because in this example you inserted the Filter Module before the Delay Module but the Delay Module will now be processed before the Filter Module as it was placed into the 'empty slot' above it.
Does this make sense.
From a new project start inserting modules...
0 Output Module
1 Oscillator Module
2 Patchbay Module
3 Filter Module
num modules = 4
Now delete the Patchbay Module
0 Output Module
1 Oscillator Module
2 'empty slot' Do not process
3 Filter Module
num modules = 4
Now insert a Delay Module and a Chorus Module
SynthCraft will place them in the next available empty slot
0 Output Module
1 Oscillator Module
2 Delay Module
3 Filter Module
4 Chorus Module
num modules = 5
So to answer your question
If you create a project without deleting any modules. Yes
If you delete and then insert a module. No
Because in this example you inserted the Filter Module before the Delay Module but the Delay Module will now be processed before the Filter Module as it was placed into the 'empty slot' above it.
Does this make sense.
-
Featherless biped Featherless biped https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=698984
- KVRist
- Topic Starter
- 38 posts since 7 Apr, 2024
Thanks! I will print this out and apply those rules to see how it works.
-
- KVRist
- 493 posts since 21 Nov, 2012 from Sitting in front of my PC
I should also say that when compiling the final plugin...
0 Output Module
1 Oscillator Module
2 'empty slot' Do not process
3 Filter Module
num modules = 4
Will be optimized into...
0 Output Module
1 Oscillator Module
2 Filter Module
num modules = 3
0 Output Module
1 Oscillator Module
2 'empty slot' Do not process
3 Filter Module
num modules = 4
Will be optimized into...
0 Output Module
1 Oscillator Module
2 Filter Module
num modules = 3
-
- KVRist
- 493 posts since 21 Nov, 2012 from Sitting in front of my PC
I should also, also, say that when building the final plugin the compiler will optimize out any none functional modules, such as the Signal Analyzer Module and Comments (which are also modules) like the example above.
This could in some circumstances rearrange the execution order in the final plugin, if for instance, you made a filter.
If you want to see this in action, I can send you a debug version.
This all gets me thinking. Maybe add some modules that retain their execution order. Or perhaps an option to manually define/rearrange the execution order. Just some ideas for the future.
Kirsty
This could in some circumstances rearrange the execution order in the final plugin, if for instance, you made a filter.
If you want to see this in action, I can send you a debug version.
This all gets me thinking. Maybe add some modules that retain their execution order. Or perhaps an option to manually define/rearrange the execution order. Just some ideas for the future.
Kirsty
-
Featherless biped Featherless biped https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=698984
- KVRist
- Topic Starter
- 38 posts since 7 Apr, 2024
The execution order is only relevant to me because I need an integrator (see: https://en.wikipedia.org/wiki/Integrator ) which one could build by using feedback and very small delays (of a few sample times only), but if you could add an integrator module then you will not hear me about the execution order again.