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].