SynthMaker

Maths Functions

Archive · 2005 6 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

sambean ·

Hi there, just trying this out at the moment.. Very nice bit of software.. think you'll have a new customer soon...

A quick query regarding the maths functions.. Are they called every sample or only when a value changes?

To put you in the picture, I'm just testing this by porting a reverb I was working on some time ago from c++, it involves lots of calculations to get coefficents from room sizes, absorption etc.. The functions only need to be called though when parameters are changed.. Is this going to slow down the plugin when using live?

Thanks in advance..

Sam

unkargherth ·

Firts thing first

Welcome sambean !!!

On your question: it depends

If you implement your math using math modules ( multiplications, adds and so on) they get executed only with any of the inputs change. This means very low cpu usage, but also means you can't modulate inputs at Audio rate

If you implemant your math using the code module,it will be calculated on every sample. meaning higher cpu usage, but allowing you to modulate params at audio rate

If you're porting a reverb, probably would be better do as much math as posible outside the code modules, cause USUALLY you don't connect an LFO to modulate the room size (mmmmm, devilish idea borning here 😀)

Also, without knowing your algo, i suspect you end in calculatingsomething related to delays lengths ( if i'm saying something studpid, tell me and i shut up), whichm, in SM should be specified as Number of samples, so working outside the code module is good on this too, as you forget the hassle of converting Polydata to integers

Im'very interested in knowing more on your reverb

sambean ·

Thanks unkargherth, just what I was hoping to hear! This seems a splendid piece of kit..

I'll post my reverb up in examples to let you have a look, it's based on feedback delay networks (FDNs), I've used the code section to do an matrix multiplication, the rest is just feedback and filters.. it's pretty basic but can definatelty be built upon..

It took me about 3 weeks to code the equivalent in c++, this only took 2 nights..

One niggle I have though is the left->right flow of modules, I find this is fine for apps like SE where you can't have feedback loops, but things can soon get pretty confusing if you use lots in this. The potential with SM for building complex networks is there, it would be good if you could just copy a flow diagram directly into it, without having to work out where all the wires are going..

Nice one guys

Sam

Acolmiztli ·

I'd like to request send and recieve objects. These would basically work as a pair. You'd specific a name for the object, and this name would be uniquely binded to it. Thus any signals you send to it get sent to the recieve version of the object.

So you could have a send object called "LFO 12" and anything you send to it gets send to a recieve object called "LFO12/R" or something.

Would help to stop cluttered wiring.

infuzion ·

Acolmiztli wrote: I'd like to request send and recieve objects....Would help to stop cluttered wiring.

There is this (sortof) for View: Sometimes GUI:ToParent & ToChild will work for you.

Also, if you have several items connecting between sub-modules, you can use the Bus: Bus tricks & questions Bus bugs Sorry, not quite what you're asking for, but then again SM isn't quite like most programming languages 🙂

malc ·

Hi sambean

Let me also add to Unk's welcome! Looking forward to seeing your reverb 🙂

Your flow diagram idea is on our plan. At the moment there are higher priority items to take care of but we do plan to do what you're suggesting at some point in the future.

Acolmiztli, your send/receive idea has been suggested by a few others too. Again, it's on the list but it will have to wait for now.

Thanks,

Malc.

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.