SynthMaker

How does Green feeding Stream interact?

Archive · 2012 8 old posts

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

infuzion ·

I've always wondered, do Sample & Holds & Trigger Blockers help when feeding green numbers (Int & Float) into a Code or anything with Stream connectors?

I've read though the Terrific Trigger Tutorial, but did not see how the Stream/Poly/Mono gets their data from green. TIA!

trogluddite ·

infuzion wrote: do Sample & Holds & Trigger Blockers help when feeding green numbers (Int & Float) into a Code or anything with Stream connectors?

I don't think there would be any advantage in that. - AFAIK, the exchange of information is not synchronised between green and stream, because of them being on different CPU threads. From previous experiments, my best guess for what happens is this... - Green value changes, and this is just stored in a memory address somewhere. - At the stream input, the trigger just sees a 'dead-end' and in discarded. - At some point later in time, the stream reads the "green" value - and this does not seem to happen every sample, more likely, it is once per ASIO buffer.

This theory is supported by a couple of things seen in the past... - Fast changing green data (from an Int Loop, for example), can sometimes result in stream inputs missing some of the green values. - The old "Hi-Res Oscilloscope" project, where it was found that when triggering M2F or Analyser primitives, the actual data read always happens at ASIO buffer boundaries.

So I would conclude that triggers take no part in 'initiating' a green->stream data transfer - the data is just read whenever the stream component feels like it is ready, and is read regardless of whether the value has changed or not (though that is kind of tricky to check!)

trogluddite ·

PS - further 'evidence'. If you place a trigger blocker immediately before a stream input, the stream does not see value changes. But, you also cannot connect a trigger link to a streamin to make an "update me" trigger - except by forcing it with Ctrl+Shift, and even then...

...an incoming trigger still has no effect, and the value remains stubbornly unread by the stream. So it would seem that stream inputs are utterly independent of both forwards and reverse triggers - and any kind of trigger blocking immediately upstream' will break the link between green and stream.

NB) Edited the previous post to have links to the examples I mentioned.

infuzion ·

trogluddite wrote: So it would seem that stream inputs are utterly independent of both forwards and reverse triggers - and any kind of trigger blocking immediately upstream' will break the link between green and stream.

Thanks for testing! I was suspecting this, so if a green math function was directly connected to a stream in, then is that function executed constantly, or only when changed, or ?? I'm trying to prevent extra green calculations...

nix ·

every buffer is Troggie's call ... or bloc, it's been called AFAIK

trogluddite ·

infuzion wrote: is that function executed constantly, or only when changed, or ?? I'm trying to prevent extra green calculations...

No, green would only calculate due to an incoming trigger - the streamins will passively receive a value, but never actively request one.

philter5 ·

trogluddite wrote: infuzion wrote: is that function executed constantly, or only when changed, or ?? I'm trying to prevent extra green calculations...

No, green would only calculate due to an incoming trigger - the streamins will passively receive a value, but never actively request one.

just out of interests: so you mean when e.g. a switch is connected to a codebox streamin the execution will only happen if the boolean state changes, but CONSTANLY if you feed the streamin e.g. with a tick25,too? nOOB Mode off

infuzion ·

philter5 wrote: trogluddite wrote: infuzion wrote: is that function executed constantly, or only when changed, or ?? I'm trying to prevent extra green calculations...

No, green would only calculate due to an incoming trigger - the streamins will passively receive a value, but never actively request one.

Just out of interests: so you mean when e.g. a switch is connected to a codebox streamin the execution will only happen if the boolean state changes, but CONSTANLY if you feed the streamin e.g. with a tick25,too?

Sounds like a green-stream input acts like a Sample & Hold itself, so yes.

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.