Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright

Interesting envelope

For general discussion related FlowStone

Re: Interesting envelope

Postby Spogg » Sun May 12, 2019 1:25 pm

tulamide wrote:Did you even try it? If you follow it to where I wrote "This will get rid of sustaining", you will see that it works exactly that way! Decay of course goes to sustain level, then it immediately releases.


Interesting tulamide.

Before spending time on this I of course checked out your suggestion. After all, why repeat the effort?

But mine didn’t behave like Kevin had wanted. It just went Attack then Decay to zero. So then I worked on it and got to my solution.

This means I’d really like to see yours working and maybe spot what I did wrong, or where your instructions weren’t perfect (unlikely!).

Cheers

Spogg
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Interesting envelope

Postby tulamide » Sun May 12, 2019 4:34 pm

Spogg wrote:
tulamide wrote:Did you even try it? If you follow it to where I wrote "This will get rid of sustaining", you will see that it works exactly that way! Decay of course goes to sustain level, then it immediately releases.


Interesting tulamide.

Before spending time on this I of course checked out your suggestion. After all, why repeat the effort?

But mine didn’t behave like Kevin had wanted. It just went Attack then Decay to zero. So then I worked on it and got to my solution.

This means I’d really like to see yours working and maybe spot what I did wrong, or where your instructions weren’t perfect (unlikely!).

Cheers

Spogg

That's even more interesting, because your changes do the exact same thing than mine. As you correctly noticed stage == 2 means sustain level is reached. The only difference is that you send out from the dsp editor and back in to the dsp editor, whereas my example does it right in the code.

But it's ok. Someone asked for help, I helped. It was appreciated, but not used. You offered a fully worked out fsm that can simply be put into the toolbox, without the need to do the changes on your own. This is of course preferred. And your fsm looks good, has a scope to present the outcome, etc. Everything needed to see the result rather than mathematically comprehend it, which is a good thing for a software that is about using without programming.

So it's fine, I was just disappointed that my example was pushed away so quickly.
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Interesting envelope

Postby k brown » Sun May 12, 2019 5:16 pm

Sorry for my insult, tula - it wasn't meant that way; I made an assumption based on ignorance and inexperience which is always a bad idea. You are absolutely right - I should have tried it before responding, and the last thing in the world I want is for anyone on this forum (especially you and Spogg) to feel taken advantage of or used. I shall be much more cautious in the future!

Thanks Spogg for all that - I was only hoping for what tulamide responded with - a "here's how ya do it". I hope you're right about being able to plug this solution into any code-based EG - I'd really like this envelope to be exponential; even though the manual diagrams show them to be linear, I suspect that this was just down to that being a simpler way to physically draw them for the printed manual. I believe virtually all pre-digital synths had expo egs.

Thanks again to both of you - you guys ROCK!
Website for the plugins : http://kbrownsynthplugins.weebly.com/
k brown
 
Posts: 1198
Joined: Tue Aug 16, 2016 7:10 pm
Location: San Francisco, CA USA

Re: Interesting envelope

Postby Spogg » Sun May 12, 2019 5:42 pm

I've got tulamide's idea fixed now and it only takes 2 lines to be added to the ADSR code.
I'll do an exponential one tomorrow and share, but I have to go and drink wine with my wife now ;)

Tomorrow...

spogg
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Interesting envelope

Postby k brown » Sun May 12, 2019 5:54 pm

That would be great! What version of FS are you using? I'm on 3.0.6 and it won't open your schematic. I was fearful of the later versions based on forum posts that this version was the last stable one - is that no longer true?

I'm trying tula's code changes (first to Myco's old expo eg, then to the stock ADSR) but maybe I'm not doing it right - didn't seem to have any effect on the Myco expo (?), on the ADSR, the Sustain control doesn't change the Sustain level (stays at 1), and the Decay now acts as Hold time!

Here's what this is looking like - the synth itself isn't anything special (except maybe that all the oscs' waveforms can be mixed in any combination [like Memorymoog], while retaining a consistent output level); the attraction here is the 4-way assignable Joystick (four separate CVs: -X, +X, -Y and +Y. The hardware had the Y axis hardwired to pitch, to be used as a pitch bender; only the two X axis' were assignable. Here I've made all four axis' assignable) and the rather unique Mod Banks. Unlike Moog Voyager and Sub 37, which can only send a Mod Source thru a single Controller to a single Destination, each of the four Banks can have any combination of up to eight Controllers and send to any combination of up to four Destinations.

The plugin will look more like Voyetra Ones (the never-released monophonic version) than the Voyetra 8; no menu-diving, hidden 'pages'. Primarily emulates the 'Layer' mode of the V-8 - a stereo pair of poly voices.

Ultimately everything on left side will be duplicated on the right (once I get it all working!). GUI based on the Voyetra One.
WIP 650w.jpg
WIP 650w.jpg (61.95 KiB) Viewed 12046 times
Last edited by k brown on Thu May 16, 2019 5:12 am, edited 2 times in total.
Website for the plugins : http://kbrownsynthplugins.weebly.com/
k brown
 
Posts: 1198
Joined: Tue Aug 16, 2016 7:10 pm
Location: San Francisco, CA USA

Re: Interesting envelope

Postby tulamide » Sun May 12, 2019 7:04 pm

Spogg wrote:I've got tulamide's idea fixed now and it only takes 2 lines to be added to the ADSR code.
I'll do an exponential one tomorrow and share, but I have to go and drink wine with my wife now ;)

Tomorrow...

spogg

So I messed up somewhere? Well, at least you could solve it then (I'm curious where I failed) and it still is just two lines as before!
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Interesting envelope

Postby Spogg » Mon May 13, 2019 11:20 am

Good morning!

@tulamide
Your approach was more elegant than mine and used less CPU. However, the actual code was, shall we say, somewhat less than adequate for its intended function. ;) :lol:

Code: Select all
stage = (stage >= 2.0)&4;

This sets stage to zero when stage < 2, irrespective of the previous stage value calculation. The bool comparison (stage >=2.0) is false when stage == 1, so the previous value of stage is overwritten with zero.

This one works:
Code: Select all
stage = stage +2 &(stage == 2)& (mode>0.5);

Here, mode is the streamin name that enables the AD(S)R function.
With this approach the previous value of stage is preserved, and only set to 4 when it’s at 2 (by adding 2).

@ Kevin
The attached schematic has the modified linear ADSR (using tulamide’s approach) and an exponentiation module where you can choose the steepness you want. I find Expo 1 the best for more natural volume contouring. This uses the cheapest method to get an approximated exponential response.

I’ve also included Martin’s exponential ADSR. I couldn’t modify the ASM version so I used the DSP code version to give the AD(S)R option. The code line I added differs from the one above because Martin’s stage system differs, so it’s a little more involved.

I don’t think the AD(S)R function I added to Martin’s is as useful, because it needs to decay exponentially to the set sustain level, before going into the release phase. Where Martin’s might be better is for very fast attacks, because the Attack phase is linear rather than exponential. That gives a more sudden increase in volume for more initial punch.

You say you can’t open my earlier schematic and I have no idea why. I use only 3.06 and it seems tulamide was ok with it (also 3.06). Maybe you could make a backup and re-install 3.06…

Hope this is helpful and good luck.

Cheers

Spogg
Attachments
AD(S)R with tulamide's idea and exponential options v1.04 .fsm
(952.68 KiB) Downloaded 796 times
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Interesting envelope

Postby tulamide » Mon May 13, 2019 12:12 pm

Spogg wrote:@tulamide
Your approach was more elegant than mine and used less CPU. However, the actual code was, shall we say, somewhat less than adequate for its intended function. ;) :lol:

Code: Select all
stage = (stage >= 2.0)&4;

This sets stage to zero when stage < 2, irrespective of the previous stage value calculation. The bool comparison (stage >=2.0) is false when stage == 1, so the previous value of stage is overwritten with zero.

This one works:
Code: Select all
stage = stage +2 &(stage == 2)& (mode>0.5);

Here, mode is the streamin name that enables the AD(S)R function.
With this approach the previous value of stage is preserved, and only set to 4 when it’s at 2 (by adding 2).
:oops:
You're so right! I didn't see it, yet it's so obvious, now that you pointed it out! Good job! ...And yes, less than adequate is a fitting description :lol:
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Interesting envelope

Postby Spogg » Mon May 13, 2019 1:06 pm

It was actually a joint effort in the end tulamide.
As I said, your idea and approach was better than mine. I don’t think I would ever have thought of it.

I’ve often fallen into a similar trap of overwriting variables. DSP is very unforgiving and not like a “proper” programming language.
It would be so much easier if it was structured like Ruby, with if then else etc. Lots of lovely conditionals, subroutines or methods to call. What’s frustrating is that ASM can do much of this, and DSP is converted into ASM to run.

Anyways, we got there! :D

Cheers

Spogg
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Interesting envelope

Postby Halon » Mon May 13, 2019 1:06 pm

Doing a Voyetra 8 Kevin ? Thats one interesting synthesizer!
Halon
 
Posts: 321
Joined: Sat Nov 28, 2015 4:42 pm
Location: Norway

PreviousNext

Return to General

Who is online

Users browsing this forum: No registered users and 15 guests