One Synth Challenge #132: ToneZ by t0nit0rmx (MrKarollus Wins!)
-
- KVRian
- 653 posts since 13 May, 2017 from Virginia
I did a little, good to know. I'll slap a dc filter on every track.
- KVRian
- 1451 posts since 4 Oct, 2012 from Utah
Hey guys,
I've been talking to T0NIT0 and figured out the sustain problem.
Under the hood, ToneZ uses CSound (via Cabbage) for it's synthesis. The envelopes are generated using built in CSound functions, namely madsr and mxadsr. These functions automatically interpolate between points (time being x-axis, instead of distance) and craft envelopes off those interpolations. The madsr function is linear and has no problems with 0 sustain. The mxadsr function on the other hand, is exponential (think 1/x) and thus interpolates the decay stage of the envelope to 0 when the sustain is 0. Essentially, the decay also gets exponentially shorter as the sustain gets lower.
Here's a video I made showing this issue:
With regards to DC offset, make sure your lowpass filters are at or above 20hz. We discovered that the filters will resonate below 20hz (clear down to 0hz) and thus create DC offset.
I'm going to see if I can fix the ranges on the filters to be more comfortable and allow for a smaller sustain and make a pull request. I'll also try to lower the limit of the sustain without decreasing the decay stage down to a click.
I've been talking to T0NIT0 and figured out the sustain problem.
Under the hood, ToneZ uses CSound (via Cabbage) for it's synthesis. The envelopes are generated using built in CSound functions, namely madsr and mxadsr. These functions automatically interpolate between points (time being x-axis, instead of distance) and craft envelopes off those interpolations. The madsr function is linear and has no problems with 0 sustain. The mxadsr function on the other hand, is exponential (think 1/x) and thus interpolates the decay stage of the envelope to 0 when the sustain is 0. Essentially, the decay also gets exponentially shorter as the sustain gets lower.
Here's a video I made showing this issue:
With regards to DC offset, make sure your lowpass filters are at or above 20hz. We discovered that the filters will resonate below 20hz (clear down to 0hz) and thus create DC offset.
I'm going to see if I can fix the ranges on the filters to be more comfortable and allow for a smaller sustain and make a pull request. I'll also try to lower the limit of the sustain without decreasing the decay stage down to a click.
Software portfolio
M.N.I.E - soon to be my musical portfolio
Hey, I'm Eurydice(Izzy for short) - she/her
M.N.I.E - soon to be my musical portfolio
Hey, I'm Eurydice(Izzy for short) - she/her
- KVRAF
- 3209 posts since 17 Apr, 2010 from Slovenia
Thanks for making this demo, that's GREAT! 
Amazing...I mean, wouldn't one expect DSP programmers to be on top of the most basic fundamentals? That's just amazing to me.
The whole envelope section seems like an unwanted stepchild to CSound, I suppose. May be a matter of working around it, though.
Like determining the "master envelope" that controls the duration of the processing. I would probably declare the first env to be the master, regardless of the others. Thus, when that one ramps to 0, particularly after release, the sound generation process should stop (mostly waveform and filter) and set the out of theirs to 0, leaving only the lingering effects (delay, reverb, possibly chorus) to just end their process in their time.
This may actually also reduce processing needs, of course.
Amazing...I mean, wouldn't one expect DSP programmers to be on top of the most basic fundamentals? That's just amazing to me.
The whole envelope section seems like an unwanted stepchild to CSound, I suppose. May be a matter of working around it, though.
Like determining the "master envelope" that controls the duration of the processing. I would probably declare the first env to be the master, regardless of the others. Thus, when that one ramps to 0, particularly after release, the sound generation process should stop (mostly waveform and filter) and set the out of theirs to 0, leaving only the lingering effects (delay, reverb, possibly chorus) to just end their process in their time.
This may actually also reduce processing needs, of course.
- KVRAF
- 9578 posts since 6 Jan, 2017 from Outer Space
I would just play the kicks shorter...
- KVRAF
- 3209 posts since 17 Apr, 2010 from Slovenia
- KVRist
- 74 posts since 26 Apr, 2017 from Lithuania
I have a question about one OSC rule regarding sampling. I finally managed to create a kick I like, but then i found out that for some weird reason, each kick hit starts 1/16 beat later than it should. Patch I created uses AMP and filter envelopes, and has attack set to minimum, phase is retriggered, etc. I don't know what causes this (synth itself, its ADSR, filter, a computer processing, DAW or maybe combination of everything). My biggest suspect is LP3 filter, because I don't get this problem with LP2, but I do not get as nearly good results with LP2. Also i noticed that the patch i created yesterday sounds the same but UI shows incorrect values/settings (example: ENV2 shows that it modulates AMP, while it actually modulates filter) and it only shows correct ones, when i duplicate that track (on a new track). Since I have these problems, am I allowed to bounce the kick and: A) move stem so that kick aligns grid, but this option is not user friendly in terms of arranging track later and there is still possibility that kick after a few minutes or so will not be on a beat again; B) better option - use rendered kick in a sampler, so that I could use midi notes to trigger it.
- KVRian
- 528 posts since 10 Nov, 2018
No.MrKarolus wrote: Tue Feb 04, 2020 4:54 pm Since I have these problems, am I allowed to bounce the kick and: A) move stem so that kick aligns grid, but this option is not user friendly in terms of arranging track later and there is still possibility that kick after a few minutes or so will not be on a beat again; B) better option - use rendered kick in a sampler, so that I could use midi notes to trigger it.
Quoting rules from the official OSC rules:
No use of samples, sample libraries or live sounds (like voice, guitar etc allowed).
However, for convenience or CPU saving, synth bouncing are allowed but only where the EXACT same result could have been achieved using the original synth: - This means that for example pitching and reversing is not allowed; sampling a bass drum in order to get a consistent sound is not allowed either.
Samplers used must be host samplers or freeware and easily available.
Last edited by exponent1 on Tue Feb 04, 2020 5:11 pm, edited 1 time in total.
- KVRAF
- 3209 posts since 17 Apr, 2010 from Slovenia
Weird problem, but you should rather find a fix for the issue, I believe. Though, I imagine, if it was the whole stem you wish to move, it probably would still be fine. The sampling rule, along with all other rules, is really in regards to sticking with what the synth can really do.
I haven't had such issues, but plenty of others, hehehe.
One thing you should watch out for with LP3 (or any filter there) is that the resonance dial goes way past 1.0 and will create dangerous extremes right above 1.0 as one might expect, too. I understand the motivation behind it, but it does make me cringe a little. Resonance is dangerous!
I'm not entirely sure, but it feels to me like the envelopes, especially amp, acts before the filter unit does its thing, leading to more wicked stuff that is questionable... like so many things in this one.
...little rogue beast!
I haven't had such issues, but plenty of others, hehehe.
One thing you should watch out for with LP3 (or any filter there) is that the resonance dial goes way past 1.0 and will create dangerous extremes right above 1.0 as one might expect, too. I understand the motivation behind it, but it does make me cringe a little. Resonance is dangerous!
I'm not entirely sure, but it feels to me like the envelopes, especially amp, acts before the filter unit does its thing, leading to more wicked stuff that is questionable... like so many things in this one.
- KVRist
- 74 posts since 26 Apr, 2017 from Lithuania
Yeah, i read the rules.exponent1 wrote: Tue Feb 04, 2020 5:05 pmNo.MrKarolus wrote: Tue Feb 04, 2020 4:54 pm Since I have these problems, am I allowed to bounce the kick and: A) move stem so that kick aligns grid, but this option is not user friendly in terms of arranging track later and there is still possibility that kick after a few minutes or so will not be on a beat again; B) better option - use rendered kick in a sampler, so that I could use midi notes to trigger it.
Quoting rules from the official OSC rules:No use of samples, sample libraries or live sounds (like voice, guitar etc allowed).
However, for convenience or CPU saving, synth bouncing are allowed but only where the EXACT same result could have been achieved using the original synth: - This means that for example pitching and reversing is not allowed; sampling a bass drum in order to get a consistent sound is not allowed either.
Samplers used must be host samplers or freeware and easily available.
- KVRian
- 528 posts since 10 Nov, 2018
Don't get me wrong, we faced worse issues with kick drums with Syncla-X to be honest. I'm sure you'll find a legit way out with ToneZ.
- KVRist
- 74 posts since 26 Apr, 2017 from Lithuania
Moved midi notes back, will do for nowexponent1 wrote: Tue Feb 04, 2020 5:25 pm Don't get me wrong, we faced worse issues with kick drums with Syncla-X to be honest. I'm sure you'll find a legit way out with ToneZ.
- KVRAF
- 3209 posts since 17 Apr, 2010 from Slovenia
I was gonna say!
...why not move the damn midi notes, haha. But still, you do have a weird issue there. I wouldn't mind checking out your patch. Maybe I can spot the trouble?! 
I've made 2 kicks already, which work just fine and sound quite nice.
I've made 2 kicks already, which work just fine and sound quite nice.
-
- KVRian
- 653 posts since 13 May, 2017 from Virginia
That is a strange issue. Maybe you have a compressor on it that isn't being compensated for correctly?
- KVRian
- 615 posts since 29 Nov, 2019
I experienced the same thing. Goes away when resonance goes below 0.9 or so. Above that it seems to continue until the EGs are done ( filter or amplitude EGs, anyway ). It suggests to me that amplitude EG shapes the signal going into the filter and said filter is at the end of the signal chain with only a gate signal as long as the longest envelope controlling the amplitude behind it. Will have to live with it, I suppose. Pity, though, it's an interestingly dirty sounding filter with the resonance turned up.MrKarolus wrote: Sun Feb 02, 2020 10:46 am When I turn on LP3 filter notes become sustained, even though AMP envelope has no sustain on it. Is this intentional or a bug?
- KVRAF
- 3209 posts since 17 Apr, 2010 from Slovenia
