Kyma Forum
  Tips & Techniques
  delaying "smoothed" message?

Post New Topic  Post A Reply
profile | register | preferences | faq | search

next newest topic | next oldest topic
Author Topic:   delaying "smoothed" message?
phillipm
Member
posted 13 January 2012 12:38         Edit/Delete Message   Reply w/Quote
I'm working on tracking MIDI data from a wind controller. I'm thinking it would be very useful to be able to delay the "smoothed" message so that the attack is totally responsive to the breath controller but the would be smoothed out slightly, beginning shortly after the attack. So... if I have something like the following in a parameter box:

!BreathController smoothed

Is there anyway to delay the onset of the smoothing by a few milliseconds.

IP: Logged

SSC
Administrator
posted 13 January 2012 14:54         Edit/Delete Message   Reply w/Quote
Hi Mark,

Have you tried pasting the MIDI controller into a Constant and feeding the Constant through a PeakDetector? The PeakDetector can have a faster response to increases than to decreases and might give you the effect you desire. Please give that a try and let us know whether this does the trick.

Thanks!

IP: Logged

phillipm
Member
posted 13 January 2012 20:28         Edit/Delete Message   Reply w/Quote
yep ... seems to work ... and it probably offers more flexibility, too. :-)

But the difference between what this does and what I was looking for is that, once it kicked in, smoothing would apply uniformly on minor fluxuations regardless of which direction the wind pressure is going. Whereas with the peak detector it would affect rising pressure changes differently than falling.

[This message has been edited by phillipm (edited 14 January 2012).]

IP: Logged

SSC
Administrator
posted 14 January 2012 12:40         Edit/Delete Message   Reply w/Quote
Can you send a !KeyDown from the wind controller? If so, then you could do a quick crossfade from raw !BreathController to !BreathController smoothed on each !KeyDown. (You would have a Crossfade of two Constants, one with !BreathController and one with !BreathController Smoothed. The Fade parameter of the CrossFade could be something like !KeyDown ramp: !Atk s)

IP: Logged

phillipm
Member
posted 17 January 2012 21:16         Edit/Delete Message   Reply w/Quote
Yes ... this works.

Meanwhile ... I spent some time this weekend analyzing EWI output data streams ... and a lot of time working in Max building prototypes of things I might want to try to accomplish with Kyma. Meanwhile, here are some observations about the behavior of the instrument:

As soon as breath pressure (cc#2) exceeds 0, a note message is sent (note # with velocity = 120). When cc#2 hits 0, a note off message is sent (note # with velocity = 0). If a new note is fingered while the cc#2 value is still above 0; two messages are sent in rapid succession: new note # with velocity = 120, followed by old note # with velocity = 0.

The tricky issue is that there are often 1-2 very short notes (≤ .005 s i.e. pairs of note on/off messages) sent when cc#2 returns to 0 ... unless the return is quite fast. When playing a conventionally programmed (i.e. monophonic) wind controller sound, these ghost notes are not a problem because cc#2 remains at 0 on either side of these note messages ... so they don't actually sound. But they do become an issue when trying to do something more unconventional, such as using note on messages to trigger Kyma events while playing a line that has its own demands on playing technique.

Pitch bend is always active regardless of the status of cc#2 or note on/off messages

[This message has been edited by phillipm (edited 18 January 2012).]

IP: Logged

Bill Meadows
Member
posted 20 January 2012 23:34         Edit/Delete Message   Reply w/Quote
Perhaps you could clean up the MIDI stream with MAX before sending it to Kyma.

IP: Logged

phillipm
Member
posted 24 January 2012 10:37         Edit/Delete Message   Reply w/Quote
I may end up doing that, but it seems like it might be a valuable learning experience to see how much of this I could accomplish in Kyma. The more Smalltalk and CapyTalk expressions I get to see the better I'll get at creating them myself. At least that's my working theory ;-)

[This message has been edited by phillipm (edited 24 January 2012).]

IP: Logged

SSC
Administrator
posted 24 January 2012 10:46         Edit/Delete Message   Reply w/Quote
Maybe you should generate your own gate events rather than using the EWI keyDowns. You could set the cc02 threshold higher than 0.

Or you could delay their keydown by 5 ms (or more), compare to current keydown and only gate when both are on.

IP: Logged

All times are CT (US)

next newest topic | next oldest topic

Administrative Options: Close Topic | Archive/Move | Delete Topic
Post New Topic  Post A Reply

Contact Us | Symbolic Sound Home

This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.


Ultimate Bulletin Board 5.45c