[Archieved] SubLab 1.1.1 (build date 30/8/19)

Gavin, it did not start behaving this way until Beta 3. Also, did you look at the midi clips in that video? The hits are a half note apart from each other, in a project at 80 BPM. The release envelope in that SubLab patch is only 500 ms long.What you’re saying doesn’t match.

@Baphometrix, don’t know what happened there, our messages got swapped around, but see my last answer :slight_smile:

Yeah, as I was making yet another demo video it finally occurred to me that the Pitch and Filter envelopes might be affecting behavior even though they were at 0% scale.

So, yeah, assuming ALL of the envelope release times are set appropriately short, the phase starts locking correctly with that menu option enabled. But this brings me to…

… that’s a counter-intuitive behavior and hence why I got trapped by it and kept insisting that I was seeing phase drift. As a user, my intuitive expectation from the UI is that “if you want to disable an envelope, set to 0%”. So in my mind, the Pitch and Filter envelopes should have been “inactive”, because I “disabled” them.

Also adding to the confusion–and another counter-intuitive aspect of all this–is that the envelope release should IMO very much not affect the phase restart behavior. I’m sure there are technical reasons why it was easier to make this change on your side starting with Beta 3, but from a user point of view, the first question is “why?”, and the second question is “but that’s quite limiting (and confusing) isn’t it?”

I mean, imagine the typical Trap genre 808 line, which uses some very fast “bounce” notes in its 808 patterns. But you want that big, fat, long tail on the 808. There are many instances where the release tail will absolutely get cut off by the newest Note ON event. You’re saying that menu option will have no effect in such cases? Why? It worked as a user would assume it to work right up until Beta 3.

So the above post suggests a useful feature request for the backlog?

Just like you’ve made it possible to toggle the oscillators On/Off by clicking their icons down in the mixer section, why not ALSO make it possible to toggle the Pitch and Filter envelopes On/Off by clicking their labels above each ADSR graph? You could go a step farther and also “gray out” the corresponding ADSR graph.

That way, it will be 100% clear and obvious to the user which envelopes are active at any given time.

That’s a good idea @Baphometrix: When you set the amount to 0% for the filter and pitch envelopes, they don’t come into play in deciding if the voice is finished or not. I’ll add this to the backlog.

On the difference between versions, we were resetting the phase on every new note in, which was cause a click. What I will do is add a setting where it behaves like this. Thing is with a multi-voice synth you can always just trigger an new voice and kill the old voice with a fast internal envelope. That way the old voice gets an almost unnoticeable fast fade out and the new voice just starts with a reset phase with out any click. If you do this on single voice, you end up with a delay: You can’t reset the phase and start the new note until your short fade out has finshed. The length of the fade out is the delay between new note on, and the voice/envelope restarting with the phase reset. Does this make sense?

Yes, what you’re describing makes perfect sense. Bitwig has the same distinction between their “True Mono” and “Digi Mono” voice handling modes. True Mono uses one voice and keeps it alive all the time, so the ADSR envelope always “moves across” at the same amplitude from attack to decay or vice-versa.

Digi Mono uses two overlapping voices, but when the second voice is triggered from the next note gate ON, the first one has a 10 ms fade out and then is killed off (by default–you can set this fade out as long as 1000 ms).

However, The other fundamental difference between True Mono and Digi Mono is that True Mono always restarts the ADSR envelope from the very start of the envelope, regardless of where the decay amplitude for the first voice is sitting. So in Bitwig, this basically means if you want to ensure you start every single note from the absolute beginning of its attack envelope, you use Digi Mono. And if you want a smoother, “older analog synth” type of attack behavior, you use True Mono.

Regardless…

I do think a user setting that can force the phase to reset on EVERY note ON regardless of the voice life would be useful for situations where you are syncing a fatter kick drum sound to a “clean” sub sound from SubLab. (Common in dubstep, riddim, future bass, and mid-tempo bass.) In such use cases, it won’t matter at all if Sublab is clicking slightly, because the layered kick happening at the same time will cover up the click entirely, in practice.

This would ensure that for songs where a fat kick is married to a clean sub and they always hit at the same time, the two waveforms can be brought into phase alignment and will stay in phase alignment.

But for songs where the sub (or 808) is more disconnected from the kick pattern, users could toggle that option OFF, because now phase alignment between the kick and the sub doesn’t really matter much at all. Even if you’re using a fat kick. For example, this screenshot is from a project I’m working right now. The purple notes are from my SubLab track, and the pink notes are from my drum machine. The C1 notes are the kicks. Any phasing between the kick and those loooooonnnnnggggg 808-ish sub notes is irrelevant in a song like this, because the kick duration is so short compared to the sub that any phasing is imperceptible. (And also irrelevant because in a kick-sub arrangement like this you should be completely ducking the sub against the kick too!)

That’s a fair point about reset click not being so important when you’re layering with a transient!

Gavin.