Issue creating true monophonic behavior
-
Ignore me – the solution was just to set it this way. In my particular case I need to set the VoiceLimit to closer to 5 or 6 to avoid pops and clicks in my plugin, but overall the monophonic functionality is what I'm after so thank you!
sampler.setAttribute(sampler.VoiceLimit, value ? 1 : 128); sampler.setAttribute(sampler.VoiceAmount, value ? 1 : 128);
-
Don't change the voice amount, but only the voice limit:
const var NUM_POLY_VOICES = 128; const var b = Content.addButton("b", 0, 0); const var Sampler1 = Synth.getChildSynth("Sampler1"); inline function bc(c, v) { Sampler1.setAttribute(Sampler1.VoiceLimit, v ? 2 : NUM_POLY_VOICES ); } b.setControlCallback(bc);
If you also change the voice amount, it will reallocate the voices, this might lead to problems when you use it in a realtime context (if you want to switch between monophonic and polyphonic during playback for any reason).
Also the number 2 isn't a glitch: it tells the sampler at which point to start killing voices, so two means "as soon as two are active, fade out the oldest voice". 1 isn't a valid number here (because it would always kills notes then), that's why it updates it to the minimum amount. It's a bit misleading though :)
-
Nice ! This seems to work somewhat for a monophonic sound (bass) although you do need the legato as well (for an analog bass synth emulation) , and for that to work in a predictable way it would need to be able to set the low or high note priority , guess that could be scripted though.
Is there some other way to achieve monophonic envelope (paraphonic) behaviour for polyphonic sounds, something I have missed ? I played with the monophonic envelopes but never got it to work properly ?
-
guess that could be scripted though.
you mean if you release the latest note while holding an older note, it should replay the older note? Just slap a Legato with retrigger module in there and you're done :)
-
I am using the legato module but that does not work in a low or high note priority manner.
Low note priority should only allow notes lower then the initial note to be played, high note the opposite.
This is the way most analog synths work , for most synths its needed and in some instances essential.For example if you have a bass section that is monophonic included in a poly section , like some string synths.
Then you can play a chord on the "lower" section of the keyboard )which includes the mono bass) and the bass will only play the "root note/lowest note"Also needed for monophonic leads.
-
Ah I see, yeah, in that case you need to script something, shouldn't be too hard though...
-
@Christoph-Hart
Ok.Is it reasonable to expect an update where you can make paraphonic behaviour ?
That is , a poly synth with monophonic envelopes ?I am willing to wait if needed , but would love to know if I am wasting my time preparing all these string and bass synths that need that functionality or if in fact I am just missing how to achieve that ?
-
This post is deleted! -
@Christoph-Hart said in Issue creating true monophonic behavior:
Don't change the voice amount, but only the voice limit:
@Christoph-Hart Yup quickly figured this out. Only changing Voice Limit now
-
@lalalandsynth said in Issue creating true monophonic behavior:
Is it reasonable to expect an update where you can make paraphonic behaviour ?
That is , a poly synth with monophonic envelopes ?Actually this is supposed to work already, it's just superfishy, but I'm cleaning it up now.
Quick question: in a monophonic envelope, the attack value is ramping from the current value, not from zero if it's retriggered, yes?
So this gap here should not be there (as you can see I had to create a small ramp in order to remove clicks, but the other solution would be to just ramp up from the current value).
-
Alright that gap is gone. You can still enable it with
HISE_RAMP_RETRIGGER_ENVELOPES_FROM_ZERO
if you depend on that behaviour, but it only affects monophonic envelopes which were broken anyway :)I've also redesigned the bipolar frequency modulation for the filter. I didn't bother about any backwards flags as I am not aware that it's used in any live project.
I've changed it to pan mode, which has these implications:
- all modulators can be switched between bipolar and unipolar and the intensity goes from -100% to 100%
- the modulation signals are added instead of multiplied
The bipolar freq knob should now respond as expected, but I'm open to suggestions here.
With these fixes and the other one with the squared time-variant modulators you should have anything you need in order to use the monophonic envelopes.
-
@Christoph-Hart Excellent !!
Let me test this , will report :) -
This is the classic retrig behaviour although reset to zero is also used in some cases.
-
@Christoph-Hart just so I am testing properly, do I still need to put a mono envelope on top of the poly one ? And if so...will that not cause problems? Anyway..will test this
-
Yes, you need a poly envelope on top of the monophonic one - you always need at least one polyphonic envelope.
-
Filter Cutoff modulation with Envelope is not working now, bipolar modulation works though
-
FAIL! How could I miss that :)
-
@Christoph-Hart Terrible, how could you... ;)
-
I will wait for that fix ;)
-
As I am coming back to HISE and testing out monophonic envelopes , I still dont see how this can work unless I am missing some changes ?
So...I am now working on a monophonic synth with monophonic envelopes.
It seems like I still need a polyphonic envelope before the monophonic one ,so I need to leave the release up on the poly one (or I do not have the option of release on the second mono one) but that will never work , as a new note will now play the release portion of the first note resulting in 2 notes playing ?
What am I doing wrong here ?
Here is a simple mono envelope with little release, the attack portion works correctly.
HiseSnippet 758.3oc6W0raSCDDdcRVTq.pJH.0Cbvu.fhgxO2RZSSppnoDEGZ4V0h8zjUrd2f85VxiFuE7nz2.XV6zZaEqnTKJfD3Sd9lcr+1Y91YrGDp7fnHUHwZ8QylBDq6QcmI0S5LgwkjC1iXsAsOKRCg1oP6NaJKJB7IVV022.XsdCRx0ks1kIXROHChPNVw8fC4AbcF5f1uiKD8X9vHdPtUuc6C7TxNJgJF4ScZSxTl2mYigiXlkUiRrtSWetVE5pYZHhX0XWk+L2IpKjoq+XdD+SBvX3PbwGTJbOkv2vXy8jNS3B+AWsuiHDK5frrP8zrvin8497qwyxFal3vNKh74CqZKidNUjdVKRuGSODFyzpS35ICAcHe7XHLgeaM2i8EnK6q84Tjm0Kxy5qFOWjajNJoFjZSQMijMRIIlpT9wBjLExeFQybGbUQ8zAlGVDWOKun5FjTaVZR0oLhuhz8AzAbs2jx4asR3KVuts46bMv8ocO6LvSmQ1Fzderp5wpQkMRoxcotbIjz2HgHOIw19D14f89fDBMIUmkz536qZqioqbqi26owW+nPlLZpJpvC1EB3iTRSFIC7CQPuP3KCMU473cTrvRccYqd3lrzXbY53vD4xNApXotf7ndk5QT7TSt0WRCiF+A5m8q+n2sZmhaP62ZCVXF4ln9NXp.5JOGDJDwv2GR2CNiEKzWgVTv2WIUSmnjbu7pgrl24.KcysiViCCyPVq8PP.r7J60ZeHpHYgXNCVVdoxs6KLJZY0tsnoz01bJ09upt8KuDlBZu5kvKaU4RH6aKVBe5+Kg2hCrq+u4.6gpXMWNtOCEpeE+b2ihCbw4jd.xDoDD3KhZUyLqK0towNcPozOw3G30bmNFaq4Nctx4uk2Q.yKTcJNmWGpDFs7ZIH39Vl7CBqi+oBZa6PNmIhQ.Js4yaRBvAbm54YR2OCyOkGyKpPLurBwrcEh4UUHlWWgXdSEh4sKMFy2VrSrVEjdTDAFzcOllgZ8tRFpjST8jeBzCrF+O
And here is a demonstration of what happens when you add release on the poly envelope (to be able to have release on the mono envelope) and this will never really work ? Please tell me I am being stupid here , but this was exactly one of the problems when I took a pause from HISE.
HiseSnippet 766.3oc6W0raSCDDdcRVTq.pJH.0Cbvu.fhgxO2ZZSSppnoDEGZ4V0h8zjUrdWi85VxMds3HuA7.vCQeCfYsSqioVQoVT.Ivm77M6X+sy7syX2OR4AwwpHh0xCmDBDqaQcmH0iaOlwkjc2lXsBsGKVCQ1YPaMIjEGC9DKq56X.rVtAI85rM1hIXROHGhPNPw8f83AbcNZ+VuhKDcY9vPdvLqd8V65ojsUBUBxm5zljPl26Yif8YlkUiRrtQGetVE4pYZHlX0XKk+D2wpSkYq+.dL+cBvX3PbwGTFbWkv2vXy8j1i4B+9muuiIDKZ+7rP8rrv8n8397KvyyFql5vNOhYyGV0lG8bpH8rtL8tOcOXDSqNjqGO.zQ7QifnT9s1TO1mhtruvmSQdVuHOquX77xbizVI0fTaJp4jrQFIwTkxOQfjoP9yHZl5fqJpm107vh45IyJptBI0lklTcJi3KHcuCsOW6Mtb9VqD9h0qqa9NUCbaZmiOF7z4jsAs6aqpdrZTYkLpbSpKWBo8MRIxCRssOjcBXuCHgHSR0YNsN95h15Hbgac7ZOM95GFwjwgp3BOXWHfOTIMYjbv2DCcifOLvTkmEushEUpqy1nKtIKMFWlNIJUtrYfJQpKHOpWodDEO0Ly5KogQi+.8y90ez6ZsSwUn8as9WZF4pn9NHT.cjm.BEhX36coaCGyRD5yQKJ36ojpvwJI2aV0Pdy6Y.KcysoViCCyQVp0.P.rbk8m91WZsGpHYQXNClWdoxs6KLJZd0t0nYz01bJ09upt8yuDlAZu3kvy1nxkP1m+4RHg7v+WBuFGXW+eyA1CTIZtbTOFJT+H94t6mD3hyI8.jIRIHvWD0plYVWlcSic1fRoepw2wqoNcL1VSc5btyeKui.lWj5HbNuNRILZ4kRQv8sL8GDVF+SEz11gbBSjf.TZyG2jDfC3NxyyjteDleJOlmTgXdZEhY8JDyypPLOuBw7hJDyKmaLlusXyDsJH6nHBzuy1LMC05cjLTImp5I+.+rXxT.