SynthMaker

Techniques and help for Optimising Schematics/CPU

Archive · 2006 5 old posts

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].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.