![]() |
![]() ![]() ![]() ![]() ![]()
|
next newest topic | next oldest topic |
Author | Topic: subtle delay |
dennis Member |
![]() ![]() ![]() I don't know if this posting belongs in "Kyma Support" or in "Tips and Techniques", but it has be someplace so here it is! Here's an interesting side-effect which might be useful (if I'm truly understanding it)- Moving an real-time expression out of a hot parameter field and into a Constant (which is then cut/pasted into the hot field) is equivalent to delaying the result of the expression evaluation by a small amount (probably 1 sample time). Reading this explanation, I see I probably need to include some example sounds to make it clearer. I'm not at my Kyma system right now (sometimes I'm ACTUALLY away from it!) but maybe i can put something together tomorrow. In the meantime, here's how I used this side-effect: I was experimenting with real-time looping so my signal flow diagram had a record part and a playback part. I was using Sample for the playback part. In the Sample Sound, I used the expression "1 - !recGate" for the Gate parameter. Elsewhere in my signal flow I used "!recGate" to trigger the recording. Now I wanted the recording to operate ahead of the Sample so that the playback would "hear" what was recorded. I thought about delaying the "1 -!recGate" signal to the Sample Gate so I put the expression into a Constant, then pasted the Constant into the Gate parameter. Next, I intended to insert a 1 sample Delay between the Constant and the Sample but I found it was unnecessary! The Sample was triggered after the recording! In other words, since the "1 - !recGate" was evaluated in a Constant and the output sent to the Sample's Gate, it was automatically delayed by at least 1 sample period! Cool! At least that's my interpretation...is it correct? IP: Logged |
SSC Administrator |
![]() ![]() ![]() You're right. Here's the reason: Expressions in parameter fields are updated when one of the hot Event Values in the expression changes. However, when you paste a Sound into a parameter field, it is evaluated once per millisecond. Say you have Sound-A with two parameter fields. One of them contains !X and the other one contains a pasted-in Constant with !X in its Value field. When you move the fader controlling !X, the following happens: 1) the value of !X is updated in the Constant and in Sound-A's first parameter 2) the value of the Constant is updated on the next millisecond clock tick. If the clock tick happens to occur *Before* you changed !X, then you get the old value. Otherwise, it will happen sometime between 1 sample and 1 millisecond *after* you changed !X. That's why you get a delayed version of !X changing. (BTW, the entire signal flow diagram is evaluated on every sample tick at the audio sampling rate. The previous discussion applies only to controls, not to audio modules. In other words, adding audio modules does *not* increase the delay through the signal flow path). IP: Logged |
All times are CT (US) | next newest topic | next oldest topic |
![]() ![]() |
This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.