Xenakios / Atelier

Plugin for VCV Rack
Other
43 stars 2 forks source link

Suggestion: combine polyphony and unison modes #11

Open ROGAVKA opened 4 years ago

ROGAVKA commented 4 years ago

Today when trying to feed plaits with poly V/Oct and Triggers along with setting unison > 1 voices I get strange and unexpected results. I suppose it was never intended to work this way. However, wouldn't it be awesome to run poly unison patches? Obviously, if we are limited with 16 voices, then we'll be limited by (# of voices)*(polyphony input channels) <= 16, but even making 4-note chords of 4 voices each would be cool!

Xenakios commented 4 years ago

I have to look at how feasible it would be to implement the hybrid unison/poly mode. I will probably keep the overall maximum voice amount to 16 because that can already use so much CPU, though. (I could allow more voices in the code, but I might run into problems testing that myself because I have quite old computers at the moment.)

The bug with the unison/spread mode with polyphonic trigger input active, I'll fix that first with some simple checks, though, which will just force everything to use the first channel of every CV/trigger input. (It should have worked that way anyway already, but I must have implemented something wrong.)

Xenakios commented 4 years ago

I am not sure if I can reproduce the strange and unexpected results, at least with a simple test. The designed behavior is that if the unisono/spread voices are turned on, the polyphonic v/oct and trigger inputs are discarded above channel 1. (The module turns into a "mono" input synth, reacting only to the first channel in the v/oct and trigger inputs.) And that's the behavior that's in the code and that I am getting when testing. Maybe this isn't ideal and there should be that hybrid polyphony mode.

edit : OK, I was able to reproduce an unexpected result with the trigger inputs. I have to see why the code doesn't handle that correctly.

Petervos2018 commented 4 years ago

Palette : Fixes to polyphonic behavior when in unisono/spread mode. 1.0.3 By this you mean that if the unisono/spread voices are turned on, the polyphonic v/oct and trigger inputs are discarded above channel 1. So no poly triggers for different voices ? They all get triggered the same time (trigger channel 1) ? So what I was able to do before : make a three voiced drumgroove with a kick, snare and hat and feed it a poly trigger, for the three different voices is not possible any more , and I should now use 3 Palettes ? Am I correct ? I that case I understand what you have changed. 👍

Greetings Peter.

xandramax commented 4 years ago

So no poly triggers for different voices ? They all get triggered the same time (trigger channel 1) ? So what I was able to do before : make a three voiced drumgroove with a kick, snare and hat and feed it a poly trigger, for the three different voices is not possible any more , and I should now use 3 Palettes ?

Regular polyphony (that is, non-unisono polyphony) is determined by the number of channels at the V/Oct input. This way you can still use poly triggers for different voices. For a 3-voice drumkit with no pitch information (so the V/Oct input is not being used), you'll need something like a Bogaudio Polycon8 to feed 0V on three channels to Palette's V/Oct input.

For this use-case, it would be nice if Palette determined the number of engine channels based on the channels at either the Trigger, V/Oct, or even Model input, whichever is greater, as suggested by Vortico here.

Petervos2018 commented 4 years ago

Hey man, thanks for answering, I was just a little let down that my "old" funny drumpatch wasn't working anymore.

And Yes ! For a 3-voice drumkit with no pitch information (so the V/Oct input is not being used), you'll need something like a Bogaudio Polycon8 to feed 0V on three channels to Palette's V/Oct input. This saved my patch ! @anlexmatos thanks for answering and, @Xenakios Thank you for Palette and all your work 👍

MaZe6K commented 4 years ago

It would be cool if Palette could be switched to a mode where unison does not affect the polyphony, so that if Palette is running monophonic, all unison voices get summed to a monophonic output, and if it's polyphonic, the unisono voices get summed to the channel they belong to.

Currently, if you have 4 voices for example, and switch unisono to 2, you now have 8 voices output. If you have those running through a VCA with 4 voice triggers, you now only hear the first 2 voices.

Xenakios commented 4 years ago

Currently, if you have 4 voices for example, and switch unisono to 2, you now have 8 voices output.

That's not the intended behavior. It was intended to work so that the unisono/spread mode shouldn't even use the v/oct or trigger inputs polyphonically. (That is, it was intended to be a monophonic unisono/spread mode that outputs the detuned/spread voices polyphonically into the audio outputs.)

Looks like I have to thoroughly go through the code that determines how the voices and audio outputs are handled. Because there are so many ways how people might want these to work, this will probably involve adding some module context menu options.