Polyphonic MIDI Trigger with Velocity

28%20PM

Polyphonic MIDI Trigger

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

Controls

None

Displays

None


Version History

Revision File Date Notes
2.0 Polyphonic MIDI Trigger with Velocity V2.0.audulus (37.0 KB) 09/25/2019 improved CPU usage
1.0 superceded 01/11/2019 initial upload to forum

Demos

Revision File Date Notes
2.0 Polyphonic MIDI Trigger with Velocity V2.0 Demo.audulus (257.1 KB) 09/25/2019 improved CPU usage
1.0 superceded 01/11/2019 initial upload to forum
2 Likes

Speaking of triggers and velocity (and midi channel), is there a plan to add velocity to the trigger node in Audulus 4?

1 Like

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.

1 Like

True, that. Perhaps a new “Pad” node could be added, with assignable Midi channel and note, but conveying velocity info as well.

1 Like

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.

1 Like

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.

2 Likes

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?

1 Like

I know you can do 3d touch but I’m pretty sure you can tell surface area? Might be wrong though.

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.

1 Like

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.

1 Like

I don’t know how sensitive the accelerometer is, but it would be fairly easy to write an app to test it

2 Likes

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.

Do you mind if I reuse some of these ideas? :bulb:

2 Likes

Please help yourself :cowboy_hat_face:

2 Likes