SynthMaker

Code: Floats in same array

Archive · 2010 6 old posts

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

JIftw ·

For some reason you cannot define a float in an array from another float in same array. 😠

Here's an isolated example.

Folllowing sample code is non-functional but should be:

streamin In; streamout Out; float buffer[2]; buffer[0]=buffer[1]; buffer[1]=In; Out = buffer[0];

Workaround (another float as intermediary):

streamin In; streamout Out; float buffer[2]; float x; x=buffer[1]; buffer[0]=x; buffer[1]=In; Out = buffer[0];

trogluddite ·

A bug in the code compiler by the looks of it. If you look at the assembly generated from that code, it seems to completely omit setting the array index for the write operation - so the read value ends up being written back to the same place it came from! I've tried a few other scenarios too - using two different arrays i.e. x[a]=y[b] , or having the read array inside a longer mathematical expression, e.g. x[a]=2*(y[b]+1); these also have the same problem - no destination Index gets calculated.

So you simply can't have an array on both sides of an assignment operation, and will always need the intermediate variable.

Andrew J ·

For longer buffers it'd be more efficient to move the index rather than reassign the contents of the array anyway. See here if you don't know what I mean.

mHz ·

Hey J Wasnt it you that did some oversampling? 🙂

mHz ·

And btw that`s becouse you can`t store an array into an array location. There`s yust not enough memory.. You gotta understand?. If it`s yust a one sample delay you want, you don`t have to use this variable type.

infuzion ·

I don't think "buffer[0]=buffer[1];" will work; might have to use a middle-man variable, or program directly in ASM.

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.