If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
Mono vs Poly (real technical limits)?
15 posts
• Page 1 of 2 • 1, 2
Mono vs Poly (real technical limits)?
It is a simple concept, right?
Polyphonic, monophonic, done.
But then you dive deeper into the topic, and suddenly it is more complex than this. No Polystream will ever leave your plugin, they all need to be converted to a Monostream. But, if polyphonic content is leaving your plugin in a monostream, they question arises, what exactly the monostream really is? Obviously it has little to do with polyphonic vs monophonic, as the manual implies. So what is the difference, aside from the obvious, which is monostream being a steady stream, while polystream is an event based system?
The more I think about the topic, the more it confuses me.
- If a user hits 3 notes on their midi controller, the plugin receives 3 midi events. We could route each event to a dedicated monostream and at the end mix them together, before leaving the plugin. Polyphony.
- If a user hits 3 notes on their midi controller, we can tell the polystream that it only handles one voice. Monophony.
At which point is there a clear difference? At which point is it, that one has an advantage over the other? Of course, it is much easier to construct your plugin flow with polystreams, while you have to do all the hard work in monostreams yourself, but that's just cosmetics. It results in the same output. Where do the paths split? The point at which you can clearly say "in such situation, this is much better than that, because..."?
Sometimes, if you think too hard about a topic, you might lose overview, and you can't see the wood for the trees. Is that happening to me?
If I had a synth with exactly defined keyboard ranges, just an octave for example (think keyboard split or drum machine or sample player, etc.), why should I use polystream over monostream, or vice-versa? Handling 12 blue lines, that are mixed together in the end, isn't too difficult. Getting specific information about one specific voice in a polystream however can become difficult (in 3.0.6 at least).
I get even more confused, the longer I think about it, in order to make a decision. Can somebody help me out?
Polyphonic, monophonic, done.
But then you dive deeper into the topic, and suddenly it is more complex than this. No Polystream will ever leave your plugin, they all need to be converted to a Monostream. But, if polyphonic content is leaving your plugin in a monostream, they question arises, what exactly the monostream really is? Obviously it has little to do with polyphonic vs monophonic, as the manual implies. So what is the difference, aside from the obvious, which is monostream being a steady stream, while polystream is an event based system?
The more I think about the topic, the more it confuses me.
- If a user hits 3 notes on their midi controller, the plugin receives 3 midi events. We could route each event to a dedicated monostream and at the end mix them together, before leaving the plugin. Polyphony.
- If a user hits 3 notes on their midi controller, we can tell the polystream that it only handles one voice. Monophony.
At which point is there a clear difference? At which point is it, that one has an advantage over the other? Of course, it is much easier to construct your plugin flow with polystreams, while you have to do all the hard work in monostreams yourself, but that's just cosmetics. It results in the same output. Where do the paths split? The point at which you can clearly say "in such situation, this is much better than that, because..."?
Sometimes, if you think too hard about a topic, you might lose overview, and you can't see the wood for the trees. Is that happening to me?
If I had a synth with exactly defined keyboard ranges, just an octave for example (think keyboard split or drum machine or sample player, etc.), why should I use polystream over monostream, or vice-versa? Handling 12 blue lines, that are mixed together in the end, isn't too difficult. Getting specific information about one specific voice in a polystream however can become difficult (in 3.0.6 at least).
I get even more confused, the longer I think about it, in order to make a decision. Can somebody help me out?
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: Mono vs Poly (real technical limits)?
I’m not sure I fully understand the basis of your confusion. But I can make some comments…
The term monophonic is confusing. It can mean only one voice can sound at a time or, in FlowStone, it can refer to the constantly running blue stream. It confused me when I first came upon 2 different streams, especially as the Blue stream was being described as mono and, especially mono4, and also the mono stream is stereo.
Mono4? I asked myself, what the hell is a monophony of 4?
The scheme you suggested would work in blue (I’m not gonna say mono). The tricky thing, which Martin has already achieved, is the assignment protocol. MIDI messages need to be sorted as to which Blue synth channel got to be assigned a new note and its envelope triggered accordingly. Years ago I wrote machine code for a keyboard I made. It could assign up to 8 CVs and gates to 8 synths. The assignment part was fiendishly difficult for me but I got it working. It had to keep track of currently sounding notes and oldest notes which would be stolen and re-triggered. All other aspects of the keyboard code were pretty straightforward.
The white stream system in FlowStone makes it so easy and I’m sure the code in there is very complicated. Also of course it uses the SSE system to full advantage so that 4 notes use the same CPU as 1 note.
What you could do with a polyphonic synth running in blue is provide the plugin with an output for each and every synth channel. That’s simply not possible in white stream, for the reasons you mentioned. You could also make each synth produce a different timbre which would be interesting and achievable, even though you wouldn’t easily be able to predict which notes would sound which voices. It might be fun!
Maybe that helps or maybe it adds to the confusion!
Cheers
Spogg
The term monophonic is confusing. It can mean only one voice can sound at a time or, in FlowStone, it can refer to the constantly running blue stream. It confused me when I first came upon 2 different streams, especially as the Blue stream was being described as mono and, especially mono4, and also the mono stream is stereo.
Mono4? I asked myself, what the hell is a monophony of 4?
The scheme you suggested would work in blue (I’m not gonna say mono). The tricky thing, which Martin has already achieved, is the assignment protocol. MIDI messages need to be sorted as to which Blue synth channel got to be assigned a new note and its envelope triggered accordingly. Years ago I wrote machine code for a keyboard I made. It could assign up to 8 CVs and gates to 8 synths. The assignment part was fiendishly difficult for me but I got it working. It had to keep track of currently sounding notes and oldest notes which would be stolen and re-triggered. All other aspects of the keyboard code were pretty straightforward.
The white stream system in FlowStone makes it so easy and I’m sure the code in there is very complicated. Also of course it uses the SSE system to full advantage so that 4 notes use the same CPU as 1 note.
What you could do with a polyphonic synth running in blue is provide the plugin with an output for each and every synth channel. That’s simply not possible in white stream, for the reasons you mentioned. You could also make each synth produce a different timbre which would be interesting and achievable, even though you wouldn’t easily be able to predict which notes would sound which voices. It might be fun!
Maybe that helps or maybe it adds to the confusion!
Cheers
Spogg
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Mono vs Poly (real technical limits)?
Thank you Spogg!
You basically confirmed my thoughts, so I'm glad to read that. Regarding SSE, that's present for both, blue and white (mono4 as you mentioned). Which again tells me, there isn't much difference.
My confusion come from a specific requirement I have. I need polyphony per note, not per plugin. A simple example: C3 might need 2-voice polyphony, E3 3-voice polyphony, F#3 monophony.
Currently I see more problems when trying to do that with white. But then again it could save me a lot of the, as you called it, assignment work. But you can't have several white streams that interact with each other, which is no problem in blue. The white streams need to be seperate until you combine them to a blue stream each.
Argh, that's driving me crazy!
You basically confirmed my thoughts, so I'm glad to read that. Regarding SSE, that's present for both, blue and white (mono4 as you mentioned). Which again tells me, there isn't much difference.
My confusion come from a specific requirement I have. I need polyphony per note, not per plugin. A simple example: C3 might need 2-voice polyphony, E3 3-voice polyphony, F#3 monophony.
Currently I see more problems when trying to do that with white. But then again it could save me a lot of the, as you called it, assignment work. But you can't have several white streams that interact with each other, which is no problem in blue. The white streams need to be seperate until you combine them to a blue stream each.
Argh, that's driving me crazy!
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: Mono vs Poly (real technical limits)?
The difference is quite important between white poly and blue mono streams. White poly signals contain other information in the stream: Voice Tag, Voice ID, Global ID, Velocity etc. While Blue mono signals are just a steady stream of single data. With poly you can do complicated stuff with the additional stream information, and also does not use any cpu when idling, while the mono stream is constantly using cpu because its always running.
- adamszabo
- Posts: 667
- Joined: Sun Jul 11, 2010 7:21 am
Re: Mono vs Poly (real technical limits)?
Yes, Adam, it carries information. But nothing I couldn't manage myself in the example I've given. It doesn't help me in making my decision regarding
polyphony per note
(see description in post above yours)
polyphony per note
(see description in post above yours)
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: Mono vs Poly (real technical limits)?
@tulamide
From what you told me I think you should go blue (not you personally, that would be very alarming).
So you play a note and maybe several blue channels speak, and you set the pitches and maybe other stuff on those blue channels?
If that’s the case you would actually be playing a chord for every note pressed. Unless I’ve got it wrong…
What should happen if you have say 4 blue synths and you play a chord on the midi keyboard?
Cheers
Spogg
From what you told me I think you should go blue (not you personally, that would be very alarming).
So you play a note and maybe several blue channels speak, and you set the pitches and maybe other stuff on those blue channels?
If that’s the case you would actually be playing a chord for every note pressed. Unless I’ve got it wrong…
What should happen if you have say 4 blue synths and you play a chord on the midi keyboard?
Cheers
Spogg
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Mono vs Poly (real technical limits)?
Spogg wrote:@tulamide
From what you told me I think you should go blue (not you personally, that would be very alarming).
So you play a note and maybe several blue channels speak, and you set the pitches and maybe other stuff on those blue channels?
If that’s the case you would actually be playing a chord for every note pressed. Unless I’ve got it wrong…
What should happen if you have say 4 blue synths and you play a chord on the midi keyboard?
Cheers
Spogg
Never gone blue before, but how about cold? I once woke up in a very cold winter, and our radiator had went off somewhere in the night. I couldn't move at all, just the head a tiny bit, and had no sensitivity. I was scared to death. I used my head to move my body (spare me the details), until I fell out of the bed, then robbed slowly but steadily towards the bathroom. It were the longest 10m of my life! When I finally managed to lay in the shower cabin, I was able to move one arm. No fine motor skills, but enough to clumsy open the hot water valve. I layed there for about 40 to 50 minutes, before I slowly came back to life. When I felt like burning myself, I knew I was ok. The whole thing took way over two hours, and I hope to never experience it again. It was sheer horror.
First question: Well it's not a chord in a musical sense, but yes, an equivalent of what you layed out!
I was writing a paragraph here, about how it would behave, when the user plays a chord, when I suddenly realised, that I might have used the wrong wording in my last posts. When I stated "2 voice polyphony" and such, what I meant was, that (following my example) C could be played 2 times quickly after another (even when the first C isn't released yet), but the third C would steal the first C if necessary. However, F# could only be played once and would already steal when played a second time. E could be played 3 times rapidly before it starts stealing.
Important is that it's independend. E doesn't care if C would have free capacity, it only looks at its own "voice" usage, and if that hits 4, it steals the first, etc.
I know that this all sounds strange, but I swear it makes sense in the end!
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: Mono vs Poly (real technical limits)?
tulamide wrote:I was writing a paragraph here, about how it would behave, when the user plays a chord, when I suddenly realised, that I might have used the wrong wording in my last posts. When I stated "2 voice polyphony" and such, what I meant was, that (following my example) C could be played 2 times quickly after another (even when the first C isn't released yet), but the third C would steal the first C if necessary. However, F# could only be played once and would already steal when played a second time. E could be played 3 times rapidly before it starts stealing.
Important is that it's independend. E doesn't care if C would have free capacity, it only looks at its own "voice" usage, and if that hits 4, it steals the first, etc.
I know that this all sounds strange, but I swear it makes sense in the end!
Would you only be able to press these three keys: C, F#, E? Or do you require each key on the keyboard to behave differently like this?
- adamszabo
- Posts: 667
- Joined: Sun Jul 11, 2010 7:21 am
Re: Mono vs Poly (real technical limits)?
Obviously I'm no guru here but ..
Mono, Mono4 & Poly all look superficially similar inside dsp or assem modules. Indeed in many circumstances very similar code and algorithms can be used within any of them. Presumably the same applies inside stock modules like poly add, poly mult etc., which can be used in white or blue.
Surely the major difference between white & blue (between poly & mono/mono4) is that poly is told to run each instance of the code umpteen times - depending to how many notes you're playing - whereas mono/mono4 will just run the code once.
So for poly, if you're playing 1-4 notes the code block runs just once, with 5-8 notes it has to run twice, and with 103 notes ..err (hang on) 26 times. Obviously I play 103 notes most of the time
Then, poly2mono mixes all my 103 poly values into just 1, so that blue can carry it on into audio.
But blue, like all SSE dsp stuff, can carry up to four values at once, so can be mono or can be mono4, depending on what you want to do.
That's my understanding anyway. Proper Guru input ??
H
Mono, Mono4 & Poly all look superficially similar inside dsp or assem modules. Indeed in many circumstances very similar code and algorithms can be used within any of them. Presumably the same applies inside stock modules like poly add, poly mult etc., which can be used in white or blue.
Surely the major difference between white & blue (between poly & mono/mono4) is that poly is told to run each instance of the code umpteen times - depending to how many notes you're playing - whereas mono/mono4 will just run the code once.
So for poly, if you're playing 1-4 notes the code block runs just once, with 5-8 notes it has to run twice, and with 103 notes ..err (hang on) 26 times. Obviously I play 103 notes most of the time
Then, poly2mono mixes all my 103 poly values into just 1, so that blue can carry it on into audio.
But blue, like all SSE dsp stuff, can carry up to four values at once, so can be mono or can be mono4, depending on what you want to do.
That's my understanding anyway. Proper Guru input ??
H
-
HughBanton - Posts: 265
- Joined: Sat Apr 12, 2008 3:10 pm
- Location: Evesham, Worcestershire
Re: Mono vs Poly (real technical limits)?
HughBanton wrote:Surely the major difference between white & blue (between poly & mono/mono4) is that poly is told to run each instance of the code umpteen times - depending to how many notes you're playing - whereas mono/mono4 will just run the code once.
Yes, exactly. And now combine that with the fact that you can only set an overall polyphony for white. That's where my issues begin. I would never be able to guarantee 3 rapid notes for C (or any of the other settings), because I have no control over the note stealing, it all happens automatically. I can't give it a setting per note.
In blue, I think, I can do that (by having so and so many lines per note). But the effort is huge.
Neither.adamszabo wrote:Would you only be able to press these three keys: C, F#, E? Or do you require each key on the keyboard to behave differently like this?
There will be 8 specific notes (7 for the scale you're in and a "control" note). Each of those notes triggers a different set of oscillators (3 per note), and most notes will get away with being played 2 times rapidly before stealing kicks in, but some of them need to cover a longer time span (probably 4 times before stealing), and at least one behaves monophonic, in that it cuts off, when played rapidly.
However, which of the midi keys will be used for the 8 notes will be freely assignable (could be 8 white keys spreaded over 3 octaves, for example), but it won't be more than 8 notes ever.
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
15 posts
• Page 1 of 2 • 1, 2
Who is online
Users browsing this forum: No registered users and 58 guests