One of the drawbacks of using a Trigger node for MIDI control of percussion is the lack of any velocity information. Additionally Trigger nodes are not channel specific and can conflict with other MIDI information. I came up with this solution. It takes a base MIDI note number as input (60 is middle C). It will output a gate on each output for the major scale starting at the base note, but this can be changed for any arbitrary MIDI note. It’s currently set for omni so it will respond to any channel but that can be changed by opening the module. It’s also currently set for 8 note polyphony but could easily be modified.
I/O
Input
Signal Range
Notes
Base note
integers 0 -127
MIDI note used as the base for the scale
Output
Signal Range
Notes
1 - 8
velocity signal
a gate with velocity for each note of the major scale beginning with the base note
I wouldn’t think so. The trigger is intended as a gate or switch and so having a value other than 0 or 1 would break any module that assumed 1 or 0. Using the trigger from the UI doesn’t provide any velocity information in any case. If you’re talking about using it with MIDI you can use the gate from a legato keyboard node and multiply it with the trigger or use the module above.
I think it would be possible to do one of those false-velocity things where you measure the surface area pressed on the node/pad. Doesn’t seem like 3d touch is sticking around on iOS.
I’ll be danged! I must have missed the 3-d touch press release! I had been expecting someone to invent some sort of piezo, or whatever, overlay thingie to get fingertip velocity from a touch pad, but it looks like that passed me right by! I’ll have to look that up! I guess we’ll have to rely on the squishiness of fingertips or maybe squishy drumsticks and stick to area (or dArea/dt) measurements for now on the direct touchscreen-input method.
I’m pretty new to MIDI controllers, but mine has eight velocity-sensitive pads. It’d be great to have the corresponding function in Audulus. I know one can create almost anything from scratch (like hijack a MIDI keyboard node and add some logic), but a native “pad” node that you teach (or pre set!) to respond to a MIDI note, as the trigger node does now, but which sends velocity info would be a real time and CPU saver.
Just curious–does iOS provide velocity
(aka: dSquishArea/dt)
When user taps the touchscreen?
If not, is it even possible to get that info from a touchscreen under iOS?
iOS does not report a touch’s area, only the center point. iPhones from the 6s up can detect pressure (although the XR does not). iPads cannot detect pressure although the Apple Pencil can. Some apps, e.g. GarageBand, use the accelerometer to calculate how hard a finger strikes the iDevice.
Re: the accelerometer method, I guess you need a compliant pad to set the device so it’ll move. Interesting topic. I’ve always been interested in interfaces.
Ah! Funny seeing that, I’ve been working on a similar solution to select fixed values from a drum pad. Expect I was only scaling a 1/octave signal to give me Mux & Demux sel value.
For the trigger part of my thing I was still using a bunch of triggers mapped to the pads. But your solution is much more elegant, as it gives velocity and specific MIDI channel assignment.