Discussion:
20 max simultaneous on-notes per channel :-)
(too old to reply)
Peter Billam
2015-01-18 07:23:06 UTC
Permalink
Hi. Again, I'm sorry I've been a bit off-line recently, we only
barely have a quorum at the best of times. I'm writing this big
piece for six strings, which keeps getting stuck :-( Anyway:
I've got a backlog of questions which I'll get to soon (hopefully),
but first an observation:

I've been playing more recently on the in-built GM synth of the
M-Audio ProKeysSono88 (through a Zoom G1u) and notice there
is a limit of maximum 20 simultaneous on-notes per channel.
This obviously saves CPU time; understandable in USB-powered gear.

But, also, I find it really USEful to have that limit :-)
Especially, it's great for improvising with the sustain-pedal down;
if you play the arpeggio of some chord a few times, then all the
non-chord notes vanish one by one, so you morph very controlably
from one chord to the next. Or: a slow rising chromatic scale
gives a 20-note cluster moving smoothly upwards, just like at the
end of Sgt Pepper.

Having a limit on these notes, and knowing what the limit is,
opens up all sorts of useful possibilities that just aren't there
if that limit is very high, or unknown ...

Perhaps synth-makers should adopt one of those unassigned CC's
to setting the max simultaneous on-notes per channel ?
If not, I find 20 was a good choice :-)

Regards, Peter
--
Peter Billam www.pjb.com.au www.pjb.com.au/comp/contact.html
Bob Masta
2015-01-18 14:11:02 UTC
Permalink
On 18 Jan 2015 07:23:06 GMT, Peter Billam
Post by Peter Billam
Hi. Again, I'm sorry I've been a bit off-line recently, we only
barely have a quorum at the best of times. I'm writing this big
I've got a backlog of questions which I'll get to soon (hopefully),
I've been playing more recently on the in-built GM synth of the
M-Audio ProKeysSono88 (through a Zoom G1u) and notice there
is a limit of maximum 20 simultaneous on-notes per channel.
This obviously saves CPU time; understandable in USB-powered gear.
I wonder if there is also an issue of dynamic range in the
synth. Every doubling of the number of simultaneous voices
requires an additional bit of resolution. Or conversely, if
you have fixed resolution (like 32 bits) then you have to
cut all the levels in half and give up one bit of dynamic
range. (This assumes fixed-point implementations.)

Best regards,


Bob Masta

DAQARTA v7.60
Data AcQuisition And Real-Time Analysis
www.daqarta.com
Scope, Spectrum, Spectrogram, Sound Level Meter
Frequency Counter, Pitch Track, Pitch-to-MIDI
FREE Signal Generator, DaqMusiq generator
Science with your sound card!
Peter Billam
2015-01-18 22:54:09 UTC
Permalink
Post by Bob Masta
Post by Peter Billam
is a limit of maximum 20 simultaneous on-notes per channel.
This obviously saves CPU time; understandable in USB-powered gear.
I wonder if there is also an issue of dynamic range in the
synth. Every doubling of the number of simultaneous voices
requires an additional bit of resolution. Or conversely, if
you have fixed resolution (like 32 bits) then you have to
cut all the levels in half and give up one bit of dynamic
range. (This assumes fixed-point implementations.)
Yes, that's true, that's probably a consideration as well...

By whatever means, I find they've stumbled on something on
something musically useful :-)

I should also have made clear that it's the _oldest_ note which
gets terminated. Not like eg: fluidsynth, which terminates the
_newest_ note when it reaches its limit...

Regards, Peter
--
Peter Billam www.pjb.com.au www.pjb.com.au/comp/contact.html
Pete
2015-01-19 02:44:31 UTC
Permalink
Post by Peter Billam
Post by Peter Billam
is a limit of maximum 20 simultaneous on-notes per channel.
[....]
By whatever means, I find they've stumbled on something on
something musically useful :-)
I think most current hardware does much the same. Except that
they seem to want to make the limit as large as possible!
My Privia has a 32-note limit per channel, except that some of
the instruments, particularly the pianos, use two voices per note,
so the limit is actually 16. I think the newer Privias have upped
the base limit to 64.

For pianos and such, though, it hardly seems to matter to the sound,
as the older notes have usually decayed to inaudibility anyway.
Post by Peter Billam
I should also have made clear that it's the _oldest_ note which
gets terminated. Not like eg: fluidsynth, which terminates the
_newest_ note when it reaches its limit...
Coincidentally, I wrote a module for the MusicWeaver a long while back
that lets you actually set the max polyphony from 1 to 16 [the *right*
way, not the fluidsynth way! (:-))].

My reason was more practical, though. On my old machine, Csound
was liable to go into stutter mode if I overstressed it with a
complex algorithm, so it was nice to be able to limit the drive
to something safe.

Unlike hardware limiting though, it doesn't handle the sustain pedal,
which normally acts on the synth itself. I guess I could have
intercepted that too, and manipulated note ons and offs a bit more.
Maybe I'll add that sometime.

-- Pete --
Peter Billam
2015-01-19 04:00:00 UTC
Permalink
Post by Pete
Post by Peter Billam
I should also have made clear that it's the _oldest_ note which
gets terminated. Not like eg: fluidsynth, which terminates the
_newest_ note when it reaches its limit...
Coincidentally, I wrote a module for the MusicWeaver a long while
back that lets you actually set the max polyphony from 1 to 16
[the *right* way, not the fluidsynth way! (:-))].
...
Unlike hardware limiting though, it doesn't handle the sustain pedal,
which normally acts on the synth itself. I guess I could have
intercepted that too, and manipulated note ons and offs a bit more.
Maybe I'll add that sometime.
I'd already been thinking I should do exactly that for Fluadity
http://www.pjb.com.au/midi/fluadity.html
and now I know someone's already seen the need, that's Validating,
y'know, maybe I'm not crazy after all; I probably will do it.
So stand by .... (but don't hold your breath :-) ...
Pedal too, I'm afraid, because that's when it's an issue for me.
But that means translating sustain-pedal into note_on note_off :-(

You didn't use a CC to adjust the max polyphony 1 to 16, did you?
If so, I'll share your number.

Regards, Peter
--
Peter Billam www.pjb.com.au www.pjb.com.au/comp/contact.html
Pete
2015-01-19 19:37:23 UTC
Permalink
Post by Peter Billam
Post by Pete
Post by Peter Billam
I should also have made clear that it's the _oldest_ note which
gets terminated. Not like eg: fluidsynth, which terminates the
_newest_ note when it reaches its limit...
Coincidentally, I wrote a module for the MusicWeaver a long while
back that lets you actually set the max polyphony from 1 to 16
[the *right* way, not the fluidsynth way! (:-))].
...
Unlike hardware limiting though, it doesn't handle the sustain pedal,
which normally acts on the synth itself. I guess I could have
intercepted that too, and manipulated note ons and offs a bit more.
Maybe I'll add that sometime.
I'd already been thinking I should do exactly that for Fluadity
http://www.pjb.com.au/midi/fluadity.html
and now I know someone's already seen the need, that's Validating,
y'know, maybe I'm not crazy after all; I probably will do it.
So stand by .... (but don't hold your breath :-) ...
Pedal too, I'm afraid, because that's when it's an issue for me.
But that means translating sustain-pedal into note_on note_off :-(
Yes. To be more generally useful it would have to reimplement the
sustain. It means a little more storage, but I can't think of any
real gotchas.
Post by Peter Billam
You didn't use a CC to adjust the max polyphony 1 to 16, did you?
If so, I'll share your number.
No, but that sounds like a useful feature too. Maybe I'll get round
to rewriting my module... (Actually, emulating sustain might be a useful
feature in itself, which I've thought of doing before, so maybe that
should be a new separate module.)

-- Pete --

H***@net.net
2015-01-19 05:09:53 UTC
Permalink
Post by Peter Billam
Post by Bob Masta
Post by Peter Billam
is a limit of maximum 20 simultaneous on-notes per channel.
This obviously saves CPU time; understandable in USB-powered gear.
I wonder if there is also an issue of dynamic range in the
synth. Every doubling of the number of simultaneous voices
requires an additional bit of resolution. Or conversely, if
you have fixed resolution (like 32 bits) then you have to
cut all the levels in half and give up one bit of dynamic
range. (This assumes fixed-point implementations.)
Yes, that's true, that's probably a consideration as well...
By whatever means, I find they've stumbled on something on
something musically useful :-)
I should also have made clear that it's the _oldest_ note which
gets terminated. Not like eg: fluidsynth, which terminates the
_newest_ note when it reaches its limit...
Regards, Peter
You know, I've tried to play more than ten notes but I'm limited by
the amount of fingers I have. Could you tell me your secret?

This signature is now the ultimate
power in the universe
Peter Billam
2015-01-19 05:17:39 UTC
Permalink
Post by H***@net.net
You know, I've tried to play more than ten notes but I'm limited
by the amount of fingers I have. Could you tell me your secret?
Forearms will also do it, but - in fact it's:

The pedal :-)

Peter
--
Peter Billam www.pjb.com.au www.pjb.com.au/comp/contact.html
Loading...