SynthMaker

Math Module

Archive · 2005 10 old posts

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

unkargherth ·

Let me know what you think

Instead of asking for this and this other module taht features this and this operation on this andthis signal type, would be anice try to create a kind of math evaluator, alla code module where you could write a sequence of math operations on an undeterminedtype of data ( float preferably, but integer could be nice too). A module with lots of Embbeded math funtions ( trigonometirc,exponential, logarithmic and so on)

As far as i see. shouldn't be so hard to code. The editor is done, the code interpreter is done ( only need to know about some matyh functions). Simply subsititute poly and mono ins and outs for floats and integers

This way the users could develop most of math side itselfs , leaving synthmaker team time to fight with bugs and add new features.

Add your own comments to this, and state the requierments you think usefulñ for the functionality of this module

stefan ·

Uhm. Just add float types to the code module and more functions?

unkargherth ·

Welll, some other optimizations could arise:

.- There's a need this module process poly's? .- Thre's a need this module process at samplerate rate, once per sample?

For me the diferentiation is more of a csound-like clasification

.- Code module process audio at audio rate .- Math module process control signals at control rate

( if such diferentiation exists in synthedit, i'm not sure)

This way we don't be forced to obtain ultra fast optimizations. I'm doing something on this way. Taking out the hard math from the main code module into a second one, that don't receive audio signals, only float-type inputs ( although they're declared as poly of course), so i expect it will only be called when this inputs change, not for every sample

Sk ·

There are millions of possible combinations. To be flexible, such a module should allow the user to choose the interconnections, so it is just useless. My 2 cents.

stefan ·

unkargherth wrote: Welll, some other optimizations could arise:

.- There's a need this module process poly's? .- Thre's a need this module process at samplerate rate, once per sample?

For me the diferentiation is more of a csound-like clasification

.- Code module process audio at audio rate .- Math module process control signals at control rate

( if such diferentiation exists in synthedit, i'm not sure)

This way we don't be forced to obtain ultra fast optimizations. I'm doing something on this way. Taking out the hard math from the main code module into a second one, that don't receive audio signals, only float-type inputs ( although they're declared as poly of course), so i expect it will only be called when this inputs change, not for every sample

If using float ins/outs on the module, the expressions applying to those would only be calculated when the inputs changed. Not at audio rate. That's what I meant by adding float types to the current code module.

unkargherth ·

Sk wrote: There are millions of possible combinations. To be flexible, such a module should allow the user to choose the interconnections, so it is just useless. My 2 cents.

Surely i didn't explained properly. An example could help

Imagine a code module when you can type this:

floatin x; floatin y; floatin z; floatout res;

float pi; // local variable pi=3.141592653

res=pow((sin(pi*x),tanh(10*y)/log(z), 4);

( the formula is a nosense, only an example )

You define what inputs and ouputs you want and how to mainpulate them

clear enough now?

jorge ·

unkargherth wrote: clear enough now?

yeah, it's very clear. I had understood it before anyway. I think it's a good idea. A way around it at the moment would be to use the analyser and get it to run just 1 sample, it would be very easy to change the analyser to output the last float value calculated. That way the exact same code used with the analyser could be used for the sound.

Sk ·

Sorry, I'm missing something. The improvement in what you say would be if SM, as of now, hadn't definitions for the functions you say. But I thought that sin, cos, arcsin, tanh, log and so on *were* in SM. Am I wrong on this? If I got it right, now they must be implemented through Taylor approssimations or similar methods, but with your modules you could simpy tipe sin(x) and you have it. Right? If it is so, then it makes sense. I thought you wanted to create a module with the different functions in it, input and output. *That* was stupid.

unkargherth ·

To Sk:only sin1 , cos1 and tan1 are implemented in the code module by now. Inverse trigonometirc ( arcsin, arccos,..) nor Hyperbolic trihonometric ( tanh, cosh and inverses) not. Also we don't have by now pow,log,ln nor sqrt functions

Some of them, as hyperbolic trigonometrics can be approximated by taylor series For a small range of inputs (see this post). But cannot be done for the others ( specifically, log, ln and pow). Talking to jorge he told me that SQRT is easily implemntable as one assembler call, so we better wait for it

Anyway the most wanted feature is to have float in and float out vars in the Code module (integers will be nice to).

rl ·

unkargherth wrote: Talking to jorge he told me that SQRT is easily implemntable as one assembler call, so we better wait for it

NB: what subset of the IA32/SSE instruction set is supported by the ASM module?

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.