Page 5 of 8

Re: ODD's and EVEN's in ASM

PostPosted: Sun Nov 26, 2023 10:54 am
by R&R
Thanks for the feedback Spogg,

Spogg wrote:Modulating Attack time with velocity can be useful for simulating some acoustic instruments.


Also felt like an obligatory must have even for my simple synth to control the Mod Envelopes...

Spogg wrote:I would set the base Attack time to be the longest needed, then reduce the time at higher velocities.


This is similar to the approach I wen't with for my modulation I think... but bidirectional.
Using either (e.g) Attack-knobs current "upwards downwards difference" (up/down ranges) to dynamically set the current maximum for Depth-knob (-) or (+) range. For a better knob-action/response, so as not to overshoot the Attack-knob.

But my implementation feels a bit dumb since Depth-knobs (-) range doesn't have effect when Attack-knob is at 0, and vice versa :) I think that is what's annoying me a bit :D ...and why i'm thinking of an approach to centering mid-velocity (0.5) at current Attack-knob value.
Problem would then become a non linear translation of velocity, Either broken linear, or adding an exponential on top of the part (Attack-knob range) above mid-velocity, that corresponds to current upwards range left on the Attack-knob...

:roll: It's my pan-module all over again :lol: Me and my shitty math LOL
I originally built my pitch 2 pan-module so I could perhaps return to it later and change it for allowing different non-linear panning settings, but I'm not feeling particularly drawn to start altering it any time soon :lol:

Realized i'm missing so much essential knowledge about audio, filter etc in general... better figure out those parts first :lol:

Spogg wrote:For velocity control I cross-fade between poly velocity and 1, so with the velocity response knob at minimum the control value is 1, and if you increase the velocity response knob a softer velocity will give a lower value.


Hmmm... have to think if I can apply this somehow...

Re: ODD's and EVEN's in ASM

PostPosted: Sun Nov 26, 2023 11:07 am
by Spogg
I should add that I generally find if I square the velocity, it gives a better “feel” to my keyboard’s playing, especially for volume. I always keep the standard linear velocity option set on my keyboard, because I believe that’s most compatible for other keyboards.

Re: ODD's and EVEN's in ASM

PostPosted: Sun Nov 26, 2023 11:16 am
by R&R
Spogg wrote:I should add that I generally find if I square the velocity, it gives a better “feel” to my keyboard’s playing, especially for volume. I always keep the standard linear velocity option set on my keyboard, because I believe that’s most compatible for other keyboards.


Hopefully I covered that part with my velocity curve knobs...

Would have to add another translation/mapping after that if' I am to center mid-velocity to current e.g Attack-knob value. I'll see if I can figure out a compromise... It's "cpu" vs "R&R spaghetti schematics" :)

Re: ODD's and EVEN's in ASM

PostPosted: Sun Nov 26, 2023 2:42 pm
by Tepeix
For the pdf, that's a great classic "The art of VA Filter Design"

They are some example here : viewtopic.php?f=4&t=2332&hilit=zdf
viewtopic.php?f=3&t=17775&p=108680&hilit=zdf#p108680
and that's what i try to experiment here : viewtopic.php?f=4&t=121893

Re: ODD's and EVEN's in ASM

PostPosted: Sun Nov 26, 2023 3:23 pm
by R&R
Tepeix wrote:For the pdf, that's a great classic "The art of VA Filter Design"

They are some example here : viewtopic.php?f=4&t=2332&hilit=zdf
viewtopic.php?f=3&t=17775&p=108680&hilit=zdf#p108680
and that's what i try to experiment here : viewtopic.php?f=4&t=121893


:D
I see now that Martin also referenced that paper here http://www.dsprobotics.com/support/viewtopic.php?f=4&t=2332&hilit=zdf#p10914

martinvicanek wrote:KG, thanks for asking, I should have posted some references for credit and explanation. The avalanche was set in motion by Vadim Zavalishin with his paper on virtual analog filters. The above schematic is based on a KVR post by mystran and another by Robin Schmidt.


I'm not up to speed with these topics so I missed that post. Too advanced for me anyway :roll:

But reminds me about MV's ZDF filters...
Didn't play nice used with simple feedback loop as in my case, but I think I have an idea how to squeeze them into my synth. 8-) Why not... it's already 98% MV asm, 1% tepeix asm and 1% R&R asm mods and 4000% R&R spaghetti... :lol:

If the ZDFs are kind to the cpu, I might use them as dual filters and use my feedback knob as a spread knob instead for these filters.

Also i'm thinking of adding a noise leakage mode :lol: (=just simple tracking filter+noise) in parallell to main filter. Haven't tried so don't know if that is a fun feature to have. Have to test. Must fit it into the UI somehow if so...

Need to start making more Osc Modules also.
Have to read about filters, and go through Adams paper and maybe take a look at Spoggs Super Saw implementation to see if I can learn from that, maybe create a some "more well behaved" Osc Modules. Not just some Osc's thrown in... :D

Re: ODD's and EVEN's in ASM

PostPosted: Wed Nov 29, 2023 7:38 pm
by R&R
R&R wrote:If the ZDFs are kind to the cpu, I might use them as dual filters and use my feedback knob as a spread knob instead for these filters.


Nice! A fine addition for the next update...

Maybe not entirely consistent logic behind how I hooked up my cutoff and a new "Spread" knob (edit: name undecided :roll: ).
Didn't want to sweep/separate filters freq's in both directions at the same time, due to... reasons. But, the term "Spread" is suggestive of spreading of both filters frequencies. :) I hate naming knobs...
Might change behaviour of knob later on to do so anyway, for some combinations.

Anyway...
Finally some proper Doi Doo Daa Woo Waah sounds from my plugin courtesy of MV's ZDF's :D

Re: ODD's and EVEN's in ASM

PostPosted: Fri Dec 22, 2023 2:19 pm
by R&R
Crappy weather :) going thru my FS-spaghetti and DSPs... :roll:

I failed to convert some DSP snippets to ASM due to that the stage0: behaves very differently from the DSP's :?

Anyways...
Looks like i'm also using some of the Toolbox "S&H by frequency" DSP... and will be adding more of them it seems.

Has someone already written? Or attempted to write ASM versions of the two DSP's found in the Toolbox S&H?
These short DSPs maybe not taxing on the CPU but ASM's are always sweeter when using alot of them... 8-)

Re: ODD's and EVEN's in ASM

PostPosted: Tue Dec 26, 2023 10:46 am
by Tepeix
That's strange, they are supposed to work in the same way.
Maybe an error of syntax, in assembler it's stage0;
I don't use it to much so i always need to refresh my memory, and stage0: seams but do not work.

Re: ODD's and EVEN's in ASM

PostPosted: Wed Dec 27, 2023 10:35 am
by R&R
Tepeix wrote:That's strange, they are supposed to work in the same way.
Maybe an error of syntax, in assembler it's stage0;
I don't use it to much so i always need to refresh my memory, and stage0: seams but do not work.


It's a case of me not understanding how to write ASM correctly most likely... :D

For example how output is set and when stage0: occurs. For example when using stage(0){ ... } in DSP, I get a static output if setting "out = 3.14" (3.14 being a float var). DSP then seems to create a variable "out" that is static/set for each sample, and this also occurs when expected, when voice is created/initialized. In ASM it doesn't behave the same, it seems, but I might be wrong :)

I'm not dealing with anything remotely advanced in ASM, rather, alot has to do with "when" the stage:s happen since I have alot of random waveforms, retriggering, sync and similar voice-related stuff :)

Will try and convert all of my DSPs eventually... with varying degrees of success probably :lol:

Re: ODD's and EVEN's in ASM

PostPosted: Fri Dec 29, 2023 6:12 pm
by Tepeix
Seams to works like this for me:
Code: Select all
streamin in; streamout rand;

stage0;
float buffer[100] = rand(-0.5,0.5);
mov eax,0;
movaps xmm0,buffer[eax];
movaps rand,xmm0;