News:

PsrStyles.com
- Download Styles and Expansion Packs

Main Menu

Maximum polyphony per voice allowed in MIDI song

Started by hans1966, August 17, 2019, 11:48:26 AM

Previous topic - Next topic

hans1966

Hello friends, I would like to get some light on this topic, since I work creating MIDI songs, for several clients and friends who have requested me. As I said in previous publications all this work I do in S975, but I have detected some inconsistencies during the reproduction of some songs. for example: the reproduction begins correctly and soon afterwards it begins to be delayed as in small jumps, then it returns to normalize, and so on. I could not clearly detect the cause of these jumps or spasms at the time of the song, since everything seems to be very well in sight. I am inclined to think that it has to do with the polyphony of some voices, or suddenly the effects, or some type of internal controller that I have not been able to detect. the fact is that I want to finish this song in optimal conditions, with normal playback, without these annoying momentary tempo delays. I appreciate in advance the help you can give me. Greetings. Hans
"Enjoying my SX600, and moving step by step through the journey of life"

Normanfernandez

As far as I remember it's 128 notes max.
Can you please send the file so that we can take a look ?
Norman Fernandez Keyboardplayer
https://www.youtube.com/channel/UCngm8h5k5NmKnowJpkxlDBQ

PSR S770 - Roland FP 30 - PSR 280
Cubase - Kontakt6

hans1966

Hi Norman, thank you, I will send it later since I am not near my keyboard right now. My question is about the polyphony of certain voices, so by playing or recording two or more simultaneous notes, they can exhaust the polyphony faster. Greetings. Hans
"Enjoying my SX600, and moving step by step through the journey of life"

SeaGtGruff

The polyphony for any one voice is equal to the total polyphony minus the polyphony used by all of the other voices.

If you assume that all 16 channels are being used, and each channel is using the same number of notes as the other channels, then if the total polyphony were 128 notes that would give you 128/16=8 notes per channel as an average.

But "notes" really means tone generators, and some voices use multiple sound elements, so you need to divide the number of tone generators by the number of sound elements-- e.g., for a voice that uses two elements that would make it 8/2=4 notes per channel.

Of course, not all channels will use the same number of notes-- e.g., a channel with a bass guitar voice might be playing bass lines that use no more than one concurrent note at a time, whereas a channel with an organ voice might be playing chords that use several concurrent notes at a time. So you can borrow some of the notes from one channel so to speak, and use them for another channel.

Also, you need to remember that some notes are going to overlap even though they're being played at different times, due to things like holding a chord with one hand while a melody is being played with the other hand, or using a pedal to sustain notes long after you've released them. So that can be a common cause of polyphony problems that you hadn't anticipated.

Normanfernandez

If a voice has 3 Elements ( Layers)
And I play a single note,  ( 3 layers used)

Would it count as 1 or 3?
Norman Fernandez Keyboardplayer
https://www.youtube.com/channel/UCngm8h5k5NmKnowJpkxlDBQ

PSR S770 - Roland FP 30 - PSR 280
Cubase - Kontakt6

Janus

i think they are repeating controllers and prg's
Every style part send the data when you make a chance in a style part
Delete the repeating data
When you want a piano on a track one prg is enough
The same prg reapting the whole track
delete the double settings
Keep one data field in the track at start of the song
pitchbench aftertouch and expression gives a lot of data in the tracks
You can remove them if you dont use it
Some complex voices use more than i voice
Then you are quick to the 128 the max
The same when you use a hold pedal that take a lot space it stacks the notes


SeaGtGruff

Quote from: Normanfernandez on August 17, 2019, 12:57:54 PMIf a voice has 3 Elements ( Layers)
And I play a single note,  ( 3 layers used)

Would it count as 1 or 3?

I think it would count as three, but I'm not certain.

If the three elements are layered together, then I'm pretty sure one note would require three tone generators, because each element would need to be sounded by a separate tone generator.

But I think it's also possible for a voice to use multiple elements which are not layered together, where each element is restricted to a specific range of notes but none of those ranges overlap, and I'm not certain whether those types of multi-element voices will use multiple tone generators for each note.

pjd

Quote from: Normanfernandez on August 17, 2019, 12:57:54 PM
If a voice has 3 Elements ( Layers)
And I play a single note,  ( 3 layers used)

Would it count as 1 or 3?

3

pjd

Quote from: SeaGtGruff on August 17, 2019, 02:48:11 PM
, and I'm not certain whether those types of multi-element voices will use multiple tone generators for each note.

AWM2 allocates physical hardware tone generators to active elements. An active element is an element which is within the note range and velocity range. Notes do not trigger an element if it is outside one or both ranges and thus, do not require or use a tone generator.

-- pj

P.S. Yamaha patents refer to "tone generation channels" as opposed to individual tone generators to be assigned dynamically to notes. I avoided using the word "channel" above because this word is used in other contexts...

P.P.S. There are other conditions which determine active status such as articulation and legato.

hans1966

Hi Guys, thank you very much for your advice and suggestions. Hi Pjd, when I refer to the word "channel" I mean individual tracks of a song. Anyway, thank you for your advice, below I attach the MIDI file in question. I used only the 60s8Beat style drum pattern, for channel 10, the rest of the tracks are recorded one by one from scratch. Greetings. Hans


[attachment deleted by admin]
"Enjoying my SX600, and moving step by step through the journey of life"

overover

Hi Hans,

I opened your MIDI file in PSRUTI (V8.18), clicked "Optimize XG" and saved the file with a new name.

PSRUTI deleted 21 redundant controller events and 12 double note events, and the file size was reduced from 52 KB to 50 KB. To find out what "Optimize XG" feature exacly does, please refer to PSRUTI manual, pages 5/6. (Click on "Help" button to display the manual.)

I attached this edited file. Please check if the problem is solved now or if it still exists.





PSRUTI download site:

http://www.heikoplate.de/mambo/index.php?option=com_content&task=blogcategory&id=67&Itemid=83

Note: Be sure to have checked the settings at "Preferences ---> More Preferences"!


Best regards,
Chris

[attachment deleted by admin]
● Everyone kept saying "That won't work!" - Then someone came along who didn't know that, and - just did it.
● Never put the Manual too far away: There's more in it than you think! ;-)

Joe H

Hans,

I'm not sure I understand what is happening, but two things come to mind.  In addition to the number of Elements used by each Voice, I think I read years ago that Yamaha allocates a certain polyphony per MIDI channel, so you could be experiencing what is called "truncation", (cutting-off of notes)

The other thing is the limited capacity of the on-board sequencer with a 32,000 notes/MIDI events (400kb). MIDI events take many forms... notes, Pitch Bend, continuous controller messages like Vibrato, Filter, Pan, Volume, etc... then there is sy*** messages; which I don't know how those are factored in... meaning is the entire sy*** "string" considered 1 MIDI event or is each byte considered a single MIDI event.

Yamaha fixed this limitation with the new SX900 keyboard with 3MB capacity. Doing the math... that translates into about 240,000 MIDI events.  That's quite an improvement. But with an arpeggiator and LIVE CONTROL, Multi Pads and all the above mentioned MIDI messages, it's easy to create a song file that contains 100,000 MIDI events.

Joe H
Music is the Universal Language!

My Article: Using Multi Pads in registrations. Download Regs, Styles & MPs:  http://psrtutorial.com/music/articles/dancemusic.html

hans1966

Hi Chris, thank you very much for your valuable help, however I think I have to re-record the metals of tracks 15 and 16, because the friend who is going to sing tells me that they are very dry and also the drum kit It sounds like a toy, but this is a mistake of mine recording, so I have to record again with a more legato and less staccato touch, and as for the drum kit, I used Real Drums, but I'm going to change it for a Rock Kit , or a Standard Kit, so that the blow sounds a little thicker. Thank you for recommending PSRUTTI, this is the first time that I am going to use it. Greetings. Hans
"Enjoying my SX600, and moving step by step through the journey of life"

hans1966

Hi Joe H. I think you're right when you refer to the use of notes for each voice and the events that are generated at the time of recording. it turns out that in this song there are specifically 5 instruments playing the same chords (only two in an inverted way) that are: two metals, and three sinters, and the function of the latter is to reinforce the cuts or impacts of the metals, so I think This is where the error is. At the moment I have eliminated a synthesizer voice, but I have to keep working on the rest. thank you for your comments. Greetings. Hans
"Enjoying my SX600, and moving step by step through the journey of life"

Normanfernandez

Quote from: Joe H on August 17, 2019, 09:59:49 PM
Hans,

I'm not sure I understand what is happening, but two things come to mind.  In addition to the number of Elements used by each Voice, I think I read years ago that Yamaha allocates a certain polyphony per MIDI channel, so you could be experiencing what is called "truncation", (cutting-off of notes)

The other thing is the limited capacity of the on-board sequencer with a 32,000 notes/MIDI events (400kb). MIDI events take many forms... notes, Pitch Bend, continuous controller messages like Vibrato, Filter, Pan, Volume, etc... then there is sy*** messages; which I don't know how those are factored in...
Joe H


I don't quite remember,
There was Poly and Mono
So if it's Poly it Plays all elements?
And Mono just 1 element?
Norman Fernandez Keyboardplayer
https://www.youtube.com/channel/UCngm8h5k5NmKnowJpkxlDBQ

PSR S770 - Roland FP 30 - PSR 280
Cubase - Kontakt6

SeaGtGruff

Quote from: Normanfernandez on August 18, 2019, 12:06:24 PMSo if it's Poly it Plays all elements?
And Mono just 1 element?

No, they have nothing to do with elements, just number of concurrent notes.

Polyphonic means multiple notes can be played at the same time on that channel.

Monophonic means only one note at a time can be played on that channel, regardless of how many elements are layered together to create the voice.

On a channel that's set to monophonic mode, if you play a new note while another note is already playing, the old note will usually be cut off so the new note can be played.

But in some cases I think the new note might simply be ignored and the old note will keep playing.

On a synth, there can be different rules about how you want to handle multiple notes-- always play the highest note, always play the lowest note, or always play the last-pressed note.

So if you're using highest-note priority and are pressing the C4 key, then press the G3 key while still holding down the C4 key, the G3 would be ignored because the highest-pressed note (C4) will be given priority.

But if you're using lowest-note priority and press the same keys in the same sequence, the C4 will cut off as soon as the G3 is pressed.

I think I saw a Sy*** message in the XG documentation that lets you set which priority you want to use, although I'd have to go check to be sure, but the default is probably last-note priority.

The specific behavior about how the new note is sounded will depend on the legato and portamento settings, but this could also vary by model.

If legato mode is in use, the new note will sound without retriggering the amplitude envelope-- that is, the ADSR or Attack-Decay-Sustain-Release which shapes the amplitude of each note. [Edit: I'm specifically referring to playing a new note while an old note is still being held down. If the old note is released before the new note is pressed, the amplitude envelope will be triggered normally.]

If portamento is turned on, the sound will slide from the old note to the new note. [Edit: Again, this assumes that the second note is played while the first note is still held down.]

Normanfernandez

Thank you for the explanation!

Is there any Sy*** list that compiled.

Page with all the possibility with Sty***.  other than Yamaha's version in the Manual.

Norman Fernandez Keyboardplayer
https://www.youtube.com/channel/UCngm8h5k5NmKnowJpkxlDBQ

PSR S770 - Roland FP 30 - PSR 280
Cubase - Kontakt6

SeaGtGruff

There are a few documents about XG which you can find archived on Jorgen's website, but I think the Data Lists for the PSR-S, Tyros, and Genos models do a pretty good job of listing which XG messages they support. The only real advantage of referring to an XG document is that it will include more text about individual addresses.

As far as Yamaha-specific Sy*** messages which are not XG messages, I don't think there's ever been a comprehensive list assembled by anyone, probably because different models vary as to which ones they recognize, so about the only way to compile a list is to go through every manual for every model. I actually started to compile a list once or twice, but it got overwhelming pretty fast. :)

SeaGtGruff

Quote from: SeaGtGruff on August 18, 2019, 01:27:35 PMI think I saw a Sy*** message in the XG documentation that lets you set which priority you want to use, although I'd have to go check to be sure, but the default is probably last-note priority.

I've just looked at the version 2.00 XG specifications, and could not find any mention of setting the type of priority to use in monophonic mode, so I must have been mistaken. I may have been thinking about something I saw in the documentation for a specific model-- possibly one of the synths-- or maybe even for a different brand!