From the original SynthMaker forum (2004–2014), with its members’ names and dates.
sequencer ·
Hi All,
Although I'm only working in the MIDI domain at the moment, I'm still trying to optimise what I'm doing (or at least I think I'm optimising, some people would just call it hack and slash 😉 ).
I thought (along with the current debate about SM and high CPU in a certain KVR topic) that it was high time for a post about optimising techniques to be used in SM creations.
So, without further ado, do any Devs, creational boffins and general SM builders have any Optimisations that they can pass on/generate debate about 🙂
If so carry on the thread with any useful tips please, for the benefit of all. 😀
P.S. I won't grace this post 😉 with any of my optimisations because, as I said, hack and slash does not an optimisation make...
Thanks
Tom7777 ·
Theres this thread -
Improving CPU Levels?
For synths the best thing i have found recently is to use lots of selector to turn things off when there not needed which can lower the cpu quite a bit while your not playing notes, im still waiting for a audio volume to float (0-1) values module though so i can make an ultimate switch off module and put it as the last thing in the structure.
stefan ·
Use hop(x) where useful.
Do as much as possible in stage(0) so that you don't have to calculate everything per sample, or calculate things in green maths if they don't change often (like things that only change when you change knob or such).
Use look-up tables if applicable (I do for the dB to linear and vice versa conversions in my to-be-next-release of the compressor).
sequencer ·
I Was kinda hoping for a bit more of an input here, oh well, bumpity bump...
😉
What the heck, I'll ask some questions in the hope that some more knowledge will be forthcoming (only to shut me up if nothing else 😉 ).
1. Does it make any differance, CPU cycles wise, to use ordinary Input/Outputs instead of wireless ?
2. Which is more costly (again in CPU cycles) to use Divide, Multiply, Add & Divide (float/integer). I know that sometimes you have to use one or another but, in some cases you can use Add instead of Subtract for example.
3. I am trying to arrange my schematics in an orderly manner, however, does it make any differance where font panel items reside in Hierarchy level ? e.g. I seem to do things a little differantly to most and have front panel items (knobs, Group adornments etc) in the same level as the module they are attached to. This means they could be 5 or more levels down from the top. Again, does this have any impact on CPU.
4. This is more of a request/question really.
In Reaktor there is an option to switch on a display of how much each Module is using of the CPU (gives a % display of CPU use). I know there is a module for Stream CPU use available in SM but, would it be possible to have a similar module that could be connected from Input across to Output of a part of a schematic/module (whatever type of data is being processed) ?
5. Perhaps and I know this is a big request, somebody could show some examples of optimising/cleaning up a schematic that would help us all make our creations a little more efficient. Dev's for a tutorial perhaps...
That's all for now. Happy circuit bending.
🙂
rl ·
3 answers from my knowledge:
1: I think there is no difference
2: the costly operations are divides and float-> int conversions. On green data I would say "don't care", on stream data it's an issue, since you're doing calculations on sample rate. From what I've seen S|M uses efficient SSE opcodes (cvtps2dq) for float->int conversion in the PolyToPolyInt Module and for Array indexing in the code module. It's always a good idea to optimize calculations before coding them.
3: I don't think so
4: -
5: -
Wrote something here? To have a post removed or your name hidden, write to [email protected].