|
Post by harable on May 11, 2024 22:50:25 GMT
Hey all:
Would it be possible to use a sustain pedal command (CC64 on) to hold current incoming CC02 and block/filter until release (CC64 off)?
This would be to use the sustain pedal to 'sustain' or hold the current CC02 value until the pedal is released.
I suppose there'd also have to be a CC02 value 0 (or1) send upon release...
Craig
|
|
|
Post by redheronmusic on May 14, 2024 2:14:19 GMT
i# Red Heron Music # May 13, 2024 # Hold Cc 02 above 00 when Cc 64 >= 64 # adjust trigger values as needed
If Load Ass i0 = 0 # controller status Ass i1 = 0 # controlled status End
If M0 == B0 40 # handle controller message If M2 >= 40 # handle on message Ass i0 = 1 End If M2 < 40 # handle off message Ass i0 = 0 If I1 == 1 Snd B0 02 00 Ass i1 = 0 End End End
If M0 == B0 02 # handle controlled message If M2 > 0 # handle on message Ass i1 = 1 End
If M2 == 0 # handle off message If i0 == 1 Block Else Ass i1 = 0 End End End
|
|
|
Post by harable on May 14, 2024 20:38:00 GMT
Thanks, but this doesn't seem to be trapping/suspending/holding the CC02 value when CC64 is pressed; is that possible?
|
|
|
Post by redheronmusic on May 16, 2024 2:44:51 GMT
The threshold was set for zero / non zero on the secondary value, and maybe not too obvious how to adjust. Here is an update with the thresholds for primary and secondary set via Define.
# Red Heron Music # May 15, 2024 # When primary control is above threshold, hold secondary value above its threshold # If secondary drops while held, store and send value when primary is released
If Load Ass i0 = 0 # primary status Ass i1 = 0 # secondary status Ass i2 = 0 # stored secondary value Define Primary B0 40 Define Secondary B0 02 Define ThreshPrimary 40 Define ThreshSecondary 40 End
If M0 == Primary # handle controller message If M2 >= ThreshPrimary # handle on message Ass i0 = 1 End If M2 < ThreshPrimary # handle off message Ass i0 = 0 If I1 == 2 Snd Secondary i2 Ass i1 = 0 End End End
If M0 == Secondary # handle controlled message If M2 >= ThreshSecondary # handle on message Ass i1 = 1 End
If M2 < ThreshSecondary # handle off message If i0 == 1 Ass i2 = M2 Ass i1 = 2 Block Else Ass i1 = 0 End End End
|
|
|
Post by harable on May 20, 2024 21:35:56 GMT
Hey, thanks so much; once I changed the second threshold to 7f, it's doing exactly what I wanted.
If it's not obvious already, I'm using this with a wind controller, sending breath info as CC02, and what I was after was the ability to hold a CC02 volume level when I have to take a breath without the sound just dropping off.
But what would be REALLY cool would be to create a set of decreasing values after the release from the held value, like a release segment of an ADSR envelope. I suppose that would only be needed in the absence of incoming CC02 after release of the sustain pedal. Is this remotely possible?
<<<<< EDIT: OOPS - just realized that without a longer release segment of the SOUNDS/PATCHES, the 'release' of CC02 would be irrelevant, so, never mind about that part. Thanks again >>>>>
Thanks again for your help!
Best from Craig
|
|