How to use Pitch Bend messages from my controller for other purposes?

0 votes
1,163 views
Scenario:

My Striso Board MPE controller has silicon keys that respond to pressure and tilt in all three axis, up/down controls KeyVelocity and note on/off, up/down controls KeyTimbre and left/right bends the pitch.

I would like to use the left/right movement to control some other parameters and not influence the pitch I'm playing.

I read that !KeyPitch is a shorthand for !KeyNumber + !PitchBend so I tried to use !KeyNumber to control the pitch and !PitchBend to control other parameters but that didn't turn out how I was hoping: wiggling the keys l/r still bends the pitch and a "!PitchBend" widget appears in the VCS.

I tried to use "rounded" to prevent any lateral movement frm bending the note and that works up until I pass the point where the rounding process rounds it to the upper or lower semitone.

I have downloaded a basic MIDI monitor app that tells me that the l/r movement of the keys is "Pitch Wheel".

My questions are:

how do I use the side (l/r) movement of my controller to control other parameters?

How do I prevet Kyma from interpreting side (l/R) movementmessages as pitch bend?

Sorry I'm very new to the midi world believe it or not..
asked Mar 5, 2023 in Controllers, OSC & MIDI by georgina (Practitioner) (860 points)
When the Striso is in "normal" MIDI mode, does it send "tilt" deviations as continuous controllers? And the button as a MIDI note event?
Thanks for replying!
It is not very easy to isolate the events because the little silicone keys are quite wiggly and when I press down in the z axis I also press slightly left or right and up down (x axis).. I'm not a proficient player yet!

BUT the app I'm using lets me filter events so I can remove note on/off, aftertouch (poly), control, program, channel pressure and pitch wheel events if needed..

Here is what the app MidiMonitor says if I switch the Striso to "normal" mode, push a key down and tilt it to the left (I have removed a lot of lines because of message character limit here):

12:23:10.198    From Striso board #209    Note On    1    B2    38
12:23:10.198    From Striso board #209    Aftertouch    1    B2    7
12:23:10.198    From Striso board #209    Pitch Wheel    1    -130
12:23:10.198    From Striso board #209    Control    1    Brightness    68
12:23:10.202    From Striso board #209    Aftertouch    1    B2    8
12:23:10.202    From Striso board #209    Pitch Wheel    1    -201
12:23:10.202    From Striso board #209    Control    1    Brightness    69
12:23:10.202    From Striso board #209    Aftertouch    1    B2    10
12:23:10.202    From Striso board #209    Pitch Wheel    1    -287
12:23:10.202    From Striso board #209    Aftertouch    1    B2    11
12:23:10.202    From Striso board #209    Pitch Wheel    1    -353
12:23:10.487    From Striso board #209    Control    1    Brightness    64
12:23:10.489    From Striso board #209    Note Off    1    B2    88


UPDATE:
I found out that the Striso has a very handy html configurator tool and using that it is possible to change the x key tilt movement to any CC number!
Kyma sees that there is activity on the new CC number assigned (cc66 in my case)
So I used a Panner Sound, assigned a hot parameter to the pan and then used the VCS editor to assign that controller to a midi cc, the problem is that a midi channel is needed and so I'm only able to use the panner globally and not for every polyphonic note.. also Kyma still uses the x tilt to bend the note..

here is the basic sound I'm using to test:

http://kyma.symbolicsound.com/qa/?qa=blob&qa_blobid=7667263508282962750

1 Answer

0 votes

You could try this. It's a Replicator on a MIDIVoice (with polyphony = 1 and Channel = ?VoiceNumber of the replicator). The Replicator would create multiple MIDIVoices, each on its own channel.

answered Mar 6, 2023 by ssc (Savant) (128,000 points)
This seems super promising!
I haven't got to the Replicator part of the Kyma X revealed tutorial yet so it is a bit above my skill at the moment.
Let's see if I understand correctly the annotation you put in the Sound you so kindly provided:
Since I'm using !KeyDown to gate my oscillator (via AD envelope) I should use a MapEventValues Sound where !KeyPitch is in the SourceEventValues field and !Gate is in the TransformedEventExpressions? or vice versa?
Also where should the MapEventValues Sound be in the chain? After the Replicator? After the Oscillator? or maybe after the MidiVoice?
I'm asking because I'm trying all these options and none seems to work.
What happens (with this test Sound: https://drive.google.com/file/d/1W72e4HK9K6JFiR8QOReau1OeGh9COAxl/view?usp=sharing ) is that (with Striso in MPE mode) the event log reports only messages in MIDI ch. 2 and only one note sounds at a given time and if more than one key is pressed it all gets erratic.
I feel embarrassed because I don't want to be totally taken by hand in this and wouldn't want to rely on your help so much but unfortunately my skill level is still beneath this...
In theory you should not need a MapEventValues. In an input to a Replicator, the green variable, ?VoiceNumber, is the copy number (an integer from 1 to the number of copies created by the Replicator). Since the MIDIVoice Channel parameter is set to ?VoiceNumber, it should create a monophonic MIDIVoice on each of N channels (where N is the number of copies made by the replicator). Striso sends each voice on a separate MIDI channel in MPE mode, so it should handle the multiple !KeyDowns, !KeyPitches, and !KeyTimbres (one per channel).

Here it is without the MapEventValues:

replicator exp for striso for 10 fingers.kym

Thanks so much for your patience.
The sound you provided still can't be played regularly by the Striso, the event log shows that only channel 2 is used and only one note can be played at any given time.
So I tried to check other stock Sounds that use Replicator and I get the same issue in all of them: Striso seems to output only on channel 2 and monophonically.
To be clear this only happens with Sounds that have a Replicator in it, other Sounds work just fine in MPE mode and I see from the event log that midi channels get allocated dynamically. It is a bit worrying because Replicator holds so much potential to me..
So it seems there must be issues on my end, either in my Striso settings or in the MIDI settings in Kyma.. Any idea where I should investigate? I can contact the Striso developer to ask specific questions also..
Thanks again for your patience.
The question for the Striso developer is whether, in regular MIDI mode, it will send each finger on its own MIDI channel.
EUREKA!
I found out that the culprit to the erratic voice MPE Voice count of the Striso was due to the fact that Striso was selected also as the MIDI output, I suspect this created a weird loop. By selecting a different MIDI output ("host USB") the voice count is more consistent and I can use the provided Sound with joy!
The joy does not last long though because if I compile another sound and go back to the replicating sound I get a response only when Striso outputs from channel 2 (in MPE mode). It is truly a rollercoaster of emotions where I spend the whole day trying to figure out what is going on and when I see to have found it something else happens..
One thing though is that I lost Velocity aftertouch: I can no longer modulate the velocity of the note by pressing more or less the key. The volume remains at the initial state until I release the key. any idea why this would happen? To clarify, this only happens in the replicated Sound and not in other Sounds

If I plug the Striso into the computer and use a midi monitor I can see that, when in normal MIDI mode, it outputs each finger on the same channel . In MPE mode the Striso sends each finger on its own MIDI channel, up to channel 16 and skipping channel one (this is normal of MPE if I understand correctly).
Sounds that use a MidiVoice seem to work *almost* fine in MPE mode and each key can control !KeyVelocity aftertouch, !KeyPitch and !KeyTimbre independently.
Normal mode output channel setting and MPE mode voice count setting can be changed on the fly on the Striso by keeping the settings button pressed and pushing or tilting the silicone keys.


One other thing that I have noticed is that if I set the "continuous key event smoothing" parameter in the MIDI configuration window to 0ms then the attack and release parameters in the ADSREnvelope Sound or in the ADEnvelope Sound don't have any effect: attack and release are abrupt. If I set the smoothing to 5ms or more then they work as expected.

Thanks for reading this far!
If you want to avoid the continuous pitch of MPE, perhaps you could ask the Striso developer for a software or firmware update that would allow one to send each finger on its own channel in standard MIDI mode (in other words, when not in MPE).
...