Global Modulator / LFO always retriggered ?
-
@Orvillain Ulrik's tip works for disabling re-triggering for the entire container, otherwise it's down to the type of modulator you're using. In scriptnode at least, time variant modulators are free running (unless you hook up an envelope to your gate), while envelopes re-trigger. Additionally, time variant modulators are monophonic, while envelopes are polyphonic with effectively a new modulation signal for each pressed note.
Here's a simple example of an LFO with re-trig switch:
HiseSnippet 1792.3oc2YstaaTDEdVGON2JUTnTgPEIiD+HfJQdys1.+H2cwhjFqX2.+qZxtiiG406rr63bADua7Hvy.OA4M.NyL65cVaGaGiSpntRU6blaem6m4jpgbGZTDODYsP8qCnHqGgqcsun4dMILeTk8QVOFeDIRPCKpIs60AjnHpKxxZlWKIXMedj52MasKwi36PSIgPmxYNzCYsYhTpU29mXddkItz5r1Fqdssq3v82i6w6.3YFbIT.woE4b5aHxkkCi9QRTSj02hWekUcVy8ktqrx5atgCYC5lMHMZXup6Zqswq1zd0MIq8pMnkVGYU3.WlfGVSPDzH3P2k6dcsl7K80WvorH1YdT4.aTM3l0jQ60j44VMQ3DgfCpZpnZFsn5o3iXtrtzSEYerZhho6vTnYkaXPx9N.IKCHkWComfq4DxBDoyHwyh3J9fFrAAzMlPQuVj0eh2iCKvWrbaRKZ4PXP2MrzFkJ8hhv+8M+PiN9NBF2uH2+MbA8X+k9lE98Eleg+Xgh8NUiFCbN40Dx87ngCbZo4P3v13R9cZeFM7EEuf30g1cg.6mUlVX7joNZt1Xgb+J9LwwAz3wk4dtRYk7690.nXwF70aqrOQPjJkXZv5BngBlDNV6Su.bCzpn4w6SiZI3AfiPe5Ovxg61wiHxZNIczhm.jGYzgREkeDSbsoi3cvFqzPswFWH9DbUlvo4fwXtAfQPRcefwXOyOBePiFTGQJ.yiK+KSpa33e8you9u.+ZO9YDuTAEXS.HgpcG+x3oK1c9hcWf8PBv9Wia.1fwN.auNNSdvn7uGhONcrc+z9TGQOfdXYhhWPCymGGEWp8NkDxH9htXSAYL9vxGOZPtKKf6QBMC0+23zvpAgz.RHsNupG45khHsC7nm.ryKJp+NpJMbWOtSq9iHGnwrZ1kNqC3rEdq4Bl5oIFUx.7Txl1H79anhK4gsT5q3uAucopXdrWCfUhDnSogQxHeVyhKsL7OzNdd7K2i2NfEGSDzCJZU4dWGzj6ybjjzqfBFj99TucZy6.WoE1JGbuoATUh5ZreiJmRpdgZgpSXdx3q05DAYrbO1uFbNp3CR2n2vcgulsLwADFWWkHZJiS6jDoYYmtd.o7PpIkTjnq6JcV4IlD8PCB.6skRHYwYRQbURHrGnzAYVubVyH2gTng0foftZj1f2u91y.tOy.boKwzJWCHyCX3PxZFizvZWM4HvIImDIOBWI5T4rNDOzoRqHIpQIf1x.zET2YV79XEdAKQEZG.Pi2z+ILVPFxhlftBPo.BpocQcR34TQTbkG9TGsklR6WwUBRlePGw6D7yOGL56pfjyMGVcrqfPF5sdFXHC54nxHKdVWYQl0zuLomC4tHatCbcALvBAY41DYmI6AWPxHvP+HlerbNM+5Qjq5g1MaUSPCzthFzZQuTKQLoJEayBUeCbLpN8JQct5v.LeAvUxKcQ7a8coM.idWTeW99zFjNdh9nuSGAuMvLppqPFrvbSNKfP2NKDanXe24ga1513AzzQxOFvdk6OQelHDJStLdEKBdEgzkUSLnPqw6YDNA4kYH7nWk7Bi8YQAPF6cUoci5iBLtBvWWIK586rGh8dgTo9SgTV1kz+rWayR11aXan.lCKmDRokJ+G3NzAUgxFXbWUom8t+rR0YkjApllB3TPgk4QMPAFaCi0oPNjyCfD7gBTlEm870zPClku8SONPQF58dvRZ83ENhHUl1J4wA8jKYdLbRMWNXPoQTqdD1H4xb8YT4V2+wGlU6nMECOrso3Bii5sVgEzxqnAVffd8eXJwPaeqRramGz9LmPEgryOGnL8SzMlwOuYqQyvlozmr5ZRx3hljp+1kya0lnp0+dsqNCskIy7gcKSNg2Qv7O+HBXPdk70AcZWC7ScRdDTTx6ehGWJwCtF7LG0f+A9EOosbrU7j1IShzGtV+YxuOVyuKhqAVapdcq31moFW7mIWPK9ZJ7DDo15AtaLG6HfqudHwOJfGkMRBsMqN2WJ1SI91HZ4P5udhz7wj9dbR3.m5lsJCL4.2SMhnSnxNL4EnF1cyjUwme7dQc1tVZr9OnZez6wtylo2QymfwZLY0hG.wV8ffUJL9I33vwITyZXeD2mmzOhTsdZ5BybWChg1QHHNsRo7zsOg5QIlVve81GBVdjP0iYmLYwc+uFx.0WeNVC2hRuwh++sq52yoHFjs0yi6T5s1WxhIsRUIaiWRZeUsuKsrLGDcqNQgU4ZUUJn1mhnJttrNNyhC9pg0X8uW1xzol41zICZ9wS6Lh+JTODYSeHti1DmP96h6ijzDbNEEfu8iaD4QxwEsQWza0lx9r8NGmrGUeabkIciqNoabsIciqOoabiIciubR23qF8Fk4qiesrzQEdrQ0CzdvVG3KcmUdGn+Ec.1tkC
-
Actually, I guess this would be a custom script modulator, with the oscillator inside a no_midi container.... ??
yes, this. Also I highly encourage anyone to build their custom modulators with scriptnode unless you absolutely require some functionality that can't be achieved there (which is a very limited set of things by now).
-
@Christoph-Hart Yeah my thought was to built a custom LFO that could offer:
- Monophonic VS polyphonic (is this even possible?)
- Free-running VS sync via sub-divisions
- Retrigger on/off
That along with the usual suspects (shapes, frequency, gain, phase, etc) could be a powerful thing.
-
@Orvillain yup, should all be doable.
Monophonic VS polyphonic (is this even possible?)
Just make it an envelope then, that's polyphonic by definition. You can always switch envelopes to be monophonic (including defining its retrigger behaviour).
Free-running VS sync via sub-divisions
Also no problem, for the synced LFO this is your best friend:
HISE | ScriptNode | clock_ramp
A ramp signal generator that is synchronized to the HISE clock, producing a ramp waveform for modulation purposes.
(docs.hise.audio)
Retrigger on/off
There are multiple ways to go about this, you just need to make sure that you can somehow bypass the processing of the note on event. Of course in polyphonic mode this will always retrigger, but if you set a envelope to monophonic and ignore every note on message, it will just run.
-
@Christoph-Hart said in Global Modulator / LFO always retriggered ?:
Of course in polyphonic mode this will always retrigger
Some way to have polyphonic, free running modulators would be awesome. It's a really nice effect.
-
@modularsamples said in Global Modulator / LFO always retriggered ?:
Some way to have polyphonic, free running modulators would be awesome. It's a really nice effect.
what is a polyphonic, free running modulator? polyphony is tied to voices, so when no voices are rendered, nothing is there to be done...
-
@Christoph-Hart said in Global Modulator / LFO always retriggered ?:
@modularsamples said in Global Modulator / LFO always retriggered ?:
Some way to have polyphonic, free running modulators would be awesome. It's a really nice effect.
what is a polyphonic, free running modulator? polyphony is tied to voices, so when no voices are rendered, nothing is there to be done...
Only thing I can think of is, having the modulator continue to render in the background so that when the voice is re-triggered again, the modulator phase picks up the latest "newest" value, but still on a per voice basis.
But I would guess this is a pretty edge case thing.
-
@Christoph-Hart Orvillain describes it well. Think of a traditional, analogue oscillator. It is producing a continuous signal from the moment you turn it on, the only reason you don't hear it all the time on, say a minimoog, is because it's passed through a envelope controlled VCA.
It is pretty niche admittedly, but it would open up some interesting possibilities (modular, classic polysynth recreations).
-
@modularsamples you can replicate that with a monophonic script fx and an oscillator but when you do this polyphonically it just boils down to randomizing the start phase which isn‘t the most spectacular sound.
-
@modularsamples
@Christoph-HartI've done it in c++
I keep a global timer, and for each synth voice I remember the phase when the voice stops.
When the voice starts again, I look at the last phase, and the time that has passed, and I can make the voices start at the phase which it would be as if it had always been playing
It's the only solution I could think of. The reason being that hise voices inherently do no processing at all when they are not active.
This means that you have to resort to keeping track of phase yourself, and doing all the bookkeeping. -
@griffinboy forgive me if I'm ignorant, but why?
-
If you wanted vca to act like a gate.
Imagine that you have a saw wave polysynth.
Hold down a chord and keep it held.
Because each voice is a different note, you get the phasing effect, you can hear the held saw chord coming in and out of phase.Now, play the same chord in a rhythm.
The phasing effect stays continuous and doesn't get reset. The envelope sounds like a gate on the phasing chord. This is the effect you'll experience on an analog polysynth.Whereas, if it wasn't free running, the phasing pattern would change every time you re trigger the chord.
There is no reason to do this other than analog emulation. Admittedly, free running oscillators make bass sound loose and worse. But it does sound really nice on pads since you get this feeling of continuity.
-
@griffinboy yeah, but what's the additional benefit over just randomizing the start phase when you start a note? I get that you might want to have phase randomization between notes, but my gut feeling tells me that there is almost no perceivable difference between randomizing the phase and meticulously keeping track of the phase of each voice.
-
It's a big perceived difference in my opinion.
I can make some sound demos if you're not convinced. -
@griffinboy sure, please.
-
I thought the difference was significant enough for me to want to model it.
Then again, I am a perfectionist when it comes to audio things like this.
It might not be significant to others.But in some cases I do prefer the free running over random phase. The overtones in the highs have an evolving pattern which your brain can follow in free running, and I find that pleasing. Wheras random phase gives a chaotic and hard to follow pattern.
-
@griffinboy said in Global Modulator / LFO always retriggered ?:
I thought the difference was significant enough for me to want to model it.
Then again, I am a perfectionist when it comes to audio things like this.
It might not be significant to others.But in some cases I do prefer the free running over random phase. The phasing in the highs has a clear pattern which your brain can follow in free running, and I find that pleasing. Wheras random phase gives a chaotic and hard to follow pattern.
IMHO, it is extremely noticeable and having a way to support that behaviour would be excellent.
-
Do we have a way to prioritise these sorts of request? - not nesc. an order that Christoph might do a thing - that's up to him - but so we can see its relative importance to everyone. Im sure we had an approach I just cant seem to find it. Essentially so we(well me really) can say "Hey this sounds sorta esoteric and only applicable or even audible to a very few people - whereas MSEG envelopes might be considered more useful by a broader audience....."???
-
Yeah, the feature request system is quite messy.
Not to mention there are bug fix type requests as well as feature requests. I'm not really sure what would make it easier though! -
I still would like a proper bug/feature tracker, the github + forum combo isn't the best