SynthMaker

How to create a linked list of objects?

Archive · 2005 3 old posts

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

Rellik ·

I've been thinking of trying to create a tempo-synced multi-point envelope, and I think I know how to do it - but not with SynthMaker :P.

I figure every Node should have a pointer to the next Node. You can have as many Nodes as you want. The Node has a function to interpolate along the curved line to the next Node, given sample-rate data as input (perhaps a trigger every sample). When the interpolation from one Node to the next Node reaches its end, the next Node becomes the current node. And when it reaches the end, the next Node of the last Node is the beginning Node, starting over the envelope.

The Nodes are represented graphically by draggable circles which have a certain amount of snap-to-grid, and the connections between the nodes are portrayed by lines between the Nodes. In the center of each line is a smaller circle, which controls the curving of the line.

The output of this module (which contains the grid, the nodes upon it, and the options) is the value output by the Node (the interpolation along the exponential/logarithmic curve between the points.)

And that's how I would do it - if I were using C, C++, or Java. But how would I make something like this in SynthMaker? It might be possible with the graphical components, but I would have no idea how. It would be easier to do with a Graphics Code block of some sort... hm

unkargherth ·

Rellik wrote: I've been thinking of trying to create a tempo-synced multi-point envelope

You, and th rest of us too 🙂

Rellik wrote: , and I think I know how to do it - but not with SynthMaker :P.

I figure every Node should have a pointer to the next Node. You can have as many Nodes as you want. The Node has a function to interpolate along the curved line to the next Node, given sample-rate data as input (perhaps a trigger every sample). When the interpolation from one Node to the next Node reaches its end, the next Node becomes the current node. And when it reaches the end, the next Node of the last Node is the beginning Node, starting over the envelope.

The Nodes are represented graphically by draggable circles which have a certain amount of snap-to-grid, and the connections between the nodes are portrayed by lines between the Nodes. In the center of each line is a smaller circle, which controls the curving of the line.

The output of this module (which contains the grid, the nodes upon it, and the options) is the value output by the Node (the interpolation along the exponential/logarithmic curve between the points.)

And that's how I would do it - if I were using C, C++, or Java. But how would I make something like this in SynthMaker? It might be possible with the graphical components, but I would have no idea how. It would be easier to do with a Graphics Code block of some sort... hm

Well The graphical part it's posibly doable (althought not tried), There has been at least two people that posted graphical ADSR thingies(check examples forum, the sticky message).

The bad news is that, until we get some kind of note management ( or advanced MIDID2poly ) we have no way to trigger the adsr's nor a way to create "Release states" (decay states once note is off)

Rellik ·

Why can't you trigger the ADSR/release state?

Could you just have a Sine wave or something trigger with the note on, and run it through an ADSR, and run that into a code component that gives RMS value - and then you'll trigger the ON when the RMS value is at where it should be, and you'll trigger RELEASE when the RMS value is between 0 and the high value and decreasing.

Say,

Trigger ON when {RMS = 1} (or whatever number) Trigger RELEASE when {RMS > 0, RMS < 1, dRMS/dt < 0}

wouldn't that work for triggering?

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.