how [poly~] assigns note on/offs?

brendan mccloskey's icon
Max Patch
Copy patch and select New From Clipboard in Max.

Hi board
I've built several polyphonic midi-synths in Max in the past, without any problems, but now I've built a string-synth which takes takes its trigger via velocity data from an FSR connected to my Arduino. The Arduino code/circuit, and the [serial] elements of my instrument are working fine, monophonically. However, when I make a [poly~] version, the fact that i'm using only peak velocity values (with no zero velocity) to trigger the string means that each previous note is retriggered, resulting in chords sounding, instead of discrete overlapping notes. I made numerous attempts at a polyphonic version and none of them work as intended; the closest i came was to use [makenote] but it's not perfect. Here's the mono version, I'd really appreciate it if someone could try to make a polyphonic version. I've tried so many solutions my brain is melting.....

oli larkin's icon

you need to detect when the audio output of the resonator goes below a threshold and use that to determine if a voice is busy or not. see this example, which you can adapt to use your method

Max Patch
Copy patch and select New From Clipboard in Max.

1 - save as comb.poly

2 - save as voice06.poly

Max Patch
Copy patch and select New From Clipboard in Max.
3 - main patch
Max Patch
Copy patch and select New From Clipboard in Max.

`

brendan mccloskey's icon

Thanks very much for this (and the tags, which i forgot); can't test it though, as the connections break when I go: New From Clipboard; perhaps you could be kind enough to reply with a screenshot of each of the poly~ subpatches
Cheers
Brendan

brendan mccloskey's icon
Max Patch
Copy patch and select New From Clipboard in Max.

just for anyone following this for a solution; here's my compromise - I'm not using note-release or zero-velocities, and this works ok for the moment (this instrument is merely proof of concept) - thanks oli, i'll investigate your patch further when i need a more interactive and intimate string model.
MAIN

Max Patch
Copy patch and select New From Clipboard in Max.

SUB