SynthMaker

How to make an if thingy in the code

Archive · 2005 4 old posts

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

fritzman ·

Hi foilks,

I want an if statement like

if (x>1) then x=1;

I think I saw something like that from Stefan in a distortion somewhere but couldn't find it again.

I tried it like this

a= a(a>1.0) & 1.0;

but that doesn't work. What wrong with this?

Thanx a lot in advance.

Best wishes, FRitz

stefan ·

if(x>1) then x=1; would translate to:

x = (x <= 1 & x); // let x = x if it's below 1, otherwise let x = 0 x = x + (x > 1 & 1) // let x = x + 1 if it's above 1, otherwise x = x + 0;

These two could then be brought together like this: x = (x <= 1 & x) + (x > 1 & 1);

The first half of the expression will evaluate to x if x <= 1, otherwise it will evaluate to 0. The second half of the expression will evaluate to 1 if x > 1, otherwise it will evaluate to 0.

Adding the result of these two together will result in letting x be x if it's below 1 and letting x be 1 if x is above 1.

Am I being clear here?

fritzman ·

Thanx Stefan,

yes, that's clear to me. Me some more math some day ... 🙂 And thanx for the fast answer!

All the best, FRitz

oddson ·

😮 Ohhh! Now I get it. The syntax is:

(boolean) & if_true_expression

and this resolves to zero if false and this expression can be used within a more complex expression.

From the docs page I thought the whole right-hand-side was required in the syntax

variable plus_OR_minus (boolean) & if_true_expression

and that this was all that was allowed on the RHS.

I don't know why I jumped to such an 'odd' conclusion. Thanx Stephan for the answer and thanx Fritzman for continuing to ask questions I didn't know I needed to know. 😉

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.