Lord of the Springs v2- The New Powers

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
RELATED
PRODUCTS
Lord of the Springs

Post

Hi everyone,

currently our precious One Synth Challenge(#100) is featuring Lord of the Springs, which I daringly took to Version 2-"The New Powers" to give us more to work with. :phones:

I didn't quite know, where best to start a thread like this, but I figured it would be best, if I could deal with your feedback and you with my progress over here, rather than filling up the OSC thread with all that. 8)

A little introduction and overview:
https://www.youtube.com/watch?v=WIm36j87gNA&t=3562s

...more clips to come!
Last edited by Taron on Sun Jun 11, 2017 9:31 am, edited 3 times in total.

Post

I'll kick this off with the latest state of things...

I did find a silly "mistake" that fixed a weird issue and I've optimized a little already.
The silly mistake was me asking for the BPM from the host during setting parameters. This only poses a problem during startup, though. However, it's fixed!

I've noticed a strangeness to the IDLE state, that is rather new and am in the process of tracking it down. I've also optimized my DENORMALIZE routine, which should be considerably faster now. Since I'm using it a lot, this has impact.

Today I will try to finish up the Preset GUI so I can make a new release either tonight or tomorrow! :borg:

Post

A brief video showing a couple of issues. Hope it ok to post here.
A few notes on video.
Watch the GUI display area for Spring A when adding envelopes.
When recording midi data I am using my Panorama, which does not have a sustain pedal (I need to make/buy one but have not gotten around to it). However sustain behavior is the same when using a little 25 key midi keyboard (that has no pedal input at all) as well. However virtual keyboard works similar to just entering notes via piano roll(notes will release).
https://youtu.be/U11K96bGG0s
Win10 x64, Reaper 6.XX x64, i5-3330, 8gb ram, GTX-970, UC-33, Panorama P4, Wharfedale Diamond 8.2 and JVC HA-RX700

Post

May I start by asking why you are using a bridged version?
I have both x64 and x86 compiles! :shrug:
But that behavior is truly bizarre and the first time I see that!?!
I have reaper, too, and will have a look for sure. :shock:
Anyway...why bridged?

THANKS FOR SHARING, though, and recording the video! :tu: ...very, very good kind of feedback, especially when it's bizarre! :tu:

Post

Hehehe...yeah, I see you're jitter problem, but I also see it in another VSTi (DX10), right away.
I, however, didn't get a crash. But then, I'm also not running a bridged version for no reason. :shrug:

Well, I can't exactly tell you what Reaper is doing, but it doesn't look very healthy on Reaper's side. MuLab doesn't have such troubles, nor have I heard of any other DAW having this phenomenon thus far?! I just don't know... :shrug:

Post

Taron wrote:May I start by asking why you are using a bridged version?
I am running it as a dedicated process. That way when LotS decides to crash Reaper will soldier on and I can simply reload LotS as shown in the video instead of Reaper crashing entirely and forcing a PC reboot.
I got tired of rebooting :lol:
Win10 x64, Reaper 6.XX x64, i5-3330, 8gb ram, GTX-970, UC-33, Panorama P4, Wharfedale Diamond 8.2 and JVC HA-RX700

Post

Taron wrote:Hehehe...yeah, I see you're jitter problem, but I also see it in another VSTi (DX10), right away. :
I "think" what you are meaning by jitter is my needing to edit the recorded midi to get it in time?
If so that is probably due to needing to use direct sound instead of ASIO to get OBS to record sound which adds terrible latency. However all behaviors are the same using ASIO (though my playing is closer to matching the grid without edits but not perfect due to being a naturally sloppy keyboard player). :clown:

If that is not what you mean I have no idea what you are talking about then. :help:
Win10 x64, Reaper 6.XX x64, i5-3330, 8gb ram, GTX-970, UC-33, Panorama P4, Wharfedale Diamond 8.2 and JVC HA-RX700

Post

Problems not reproduced here.
Not reproduced with LOTS 64-bit in Mulab 7 64-bit
Not reproduced with LOTS 32-bit in Mulab 7 32-bit
Not reproduced with LOTS 64-bit in Reaper 5 64-bit
Not reproduced with LOTS 32-bit in Reaper 5 32-bit
Not reproduced with LOTS 64-bit in Cantabile 3 64-bit
Not reproduced with LOTS 32-bit in Cantabile 3 32-bit
Not reproduced with LOTS 64-bit in SAVIHost 1.42 64-bit
Not reproduced with LOTS 32-bit in SAVIHost 1.42 32-bit

And my ASIO driver is the very common Asio4All. And I have tested these issues using the keyboard and using a MIDI composition.

Not any trace of these issues...
:phones:
Build your life everyday as if you would live for a thousand years. Marvel at the Life everyday as if you would die tomorrow.
I'm now severely diseased since September 2018.

Post

BlackWinny wrote:
Not reproduced with LOTS 64-bit in Reaper 5 64-bit

Not any trace of these issues...
:phones:
OS using with Reaper?
Win10 x64, Reaper 6.XX x64, i5-3330, 8gb ram, GTX-970, UC-33, Panorama P4, Wharfedale Diamond 8.2 and JVC HA-RX700

Post

Frostline wrote:
BlackWinny wrote:
Not reproduced with LOTS 64-bit in Reaper 5 64-bit

Not any trace of these issues...
:phones:
OS using with Reaper?
Windows 10 family edition
Build your life everyday as if you would live for a thousand years. Marvel at the Life everyday as if you would die tomorrow.
I'm now severely diseased since September 2018.

Post

Frostline wrote:
Taron wrote:Hehehe...yeah, I see you're jitter problem, but I also see it in another VSTi (DX10), right away. :
I "think" what you are meaning by jitter is my needing to edit the recorded midi to get it in time?
If so that is probably due to needing to use direct sound instead of ASIO to get OBS to record sound which adds terrible latency. However all behaviors are the same using ASIO (though my playing is closer to matching the grid without edits but not perfect due to being a naturally sloppy keyboard player). :clown:

If that is not what you mean I have no idea what you are talking about then. :help:
Nope, I'm talking about the value jitter after you've TRIMmed them for automation. (Strange word "Trim"?). Anyhow, seems like Reaper does an instant reset of values to the automation, even if the song isn't playing. This is just weird behavior, I think.

Also, you seemed to have trouble in the video, grabbing a knob, but that might've just been what you did there. Hard to tell, if you were trying to grab it or just demonstrated something without a mouse button?!

Also, the crashes, especially excessive crashes, are completely unfamiliar to me. However, there was a potential issue, which is solved now along with some other possible hickups. Not unlikely that the new version will perform better for you. But there's certainly something weird going on on your system. :shrug:

I personally hate Asio drivers, because they are the last big Blue Screen Makers, really. Audio seems to still be a sensitive subject on PCs either way. I don't know why windows has such troubles with it or even the hardware itself?! I've always had that experience for at least 20 years.
I will get myself to figure out the mac, because it seems a lot more stable when it comes to audio. But that's the next big step for me. Even then I won't abandon PC, of course, but well...

Thanks, BlackWinny, for having mine and LotS' back there, by the way! :tu: ...it helps me to keep my sanity. Developing software is a tough choice, really, because one never knows what's going on for somebody else and it takes a thick skin to stay on it. Every bit of support from users is of highest value! So, thanks, again! :hug:

But, Frostline, don't get me wrong, please! You obviously have some troubles and you obviously show generous spirit to help me out, tracking down these issues. Hopefully the next version will take care of most of them, but I can't make Reaper better, that you should realize. The automation weirdness is just strange coding on their end. HOWEVER, I noticed that you can adjust the values fairly easily directly on the automation lane, then. Seems awkward, but solid.
If anyone, who is familiar with that phenomenon and has some inside on the VSTSDK end of things in that specific regard, was ready to point me towards a solution I could provide, I'll be super happy to hear it and eternally grateful, of course!
I should add that there's every reason to assume that I'm doing something wrong, by the way!!! This is my first vst release and my second vst development adventure. It always feels like I know nothing... terrible. I'm super excited for every little bit I get to learn!

Post

@BlackWhinny Thanks for the info. Good to know we are comparing oranges to oranges. :tu:
Taron wrote: Also, you seemed to have trouble in the video, grabbing a knob, but that might've just been what you did there. Hard to tell, if you were trying to grab it or just demonstrated something without a mouse button?!
Was trying to show the different GUI behavior in value display box during mouse hover and left click drag when automation envelopes are open or closed. You can tell when I click because the knob then moves. :)
I am suspicious that the rapidly changing GUI values when the automation is trying to force one value to display in the GUI is in conflict with what the mouse-over is trying to display in the GUI box at the same time or something. That is my most reliable method of inducing a LotS crash.
Taron wrote: But there's certainly something weird going on on your system. :shrug:
Could very well be true.
However I have not had much issue with other VSTi recently that are x64. :shrug:
Other than VST2413 of course :x
Taron wrote: I personally hate Asio drivers, because they are the last big Blue Screen Makers, really.
Well I can replicate the same issues with either Focusrite ASIO driver, ASIO4ALLv2 driver or using Windows DirectSound. So unsure if issues are ASIO related. :neutral:
Taron wrote: I noticed that you can adjust the values fairly easily directly on the automation lane, then. Seems awkward, but solid.
Video time again :lol:
https://youtu.be/EHnGq2RoXUM
Notice how the display in the automation lane, the tool-tip and the LotS GUI seem to be very close in values at all times when adjusting the Body Diffuse setting in the automation lane.
Whereas when switching to the Body Decay automation lane there is quite a different story.
Shouldn't both lanes behave similarly?

Also is there a reason why body decay is on a 0.00-1.00 scale range but the decays for both spring A and B both range from 0.9000000-0.9999990(in the automation lanes, not GUI)?
Could some truncation or other such thing be causing issues? Just grasping at straws here hoping something will fix it all.
Taron wrote: I should add that there's every reason to assume that I'm doing something wrong, by the way!!!
LOL, I pretty much assume I'm doing things wrong when they don't work correctly and hope that someone tells me how to correct them. :lol:
Win10 x64, Reaper 6.XX x64, i5-3330, 8gb ram, GTX-970, UC-33, Panorama P4, Wharfedale Diamond 8.2 and JVC HA-RX700

Post

Yeah, haha, that's really the kind of humble attitude which becomes us! :lol:
However, I most honestly think that Reaper is really, really blunt. It's like a garage tool that ignores the intended elegance of vsts and their guis.
What gets me, though, is that already there are Reaper entries that are quite impressive. Despite what you are experiencing, there may be other ways to make things work in Reaper? I don't know... just wondering.

Anyway, sorry... I'll take a hint, if one comes my way, that inspires me on how to make LotS work like every other VST. ;)

Post

Uuuh, hahaha, omg, Reaper's so strange. Well, for once, it's completely absurd what they do with constantly sending parameter changes to the vst, that's not only totally unnecessary, but generally wasteful and dangerous. Why would they do that???

Also, they display in the lanes what I give as display information for a generic interface. It tells "the truth" so to say and was meant to inform me, not the DAW. I don't mind that all that much, but still think it's a little crude. They probably tried to be extra diligent?!

Anyway, OH HEY, you should try Verve, if you have any fun painting!? I have a GTX 960 and it runs beautifully on it! :D
(Not at all trying to distract!) :lol: :scared:

Post

Taron wrote:I've also optimized my DENORMALIZE routine,
Have you considered setting the rounding mode when entering process() ?

If you're using c++:

Code: Select all

#include <cstdint>
#if (__LP64__ || _WIN64)
#include <xmmintrin.h>
#endif

struct fpu_mode_t
{
	fpu_mode_t();
	~fpu_mode_t();
	uint32_t old_mode;
};

fpu_mode_t::fpu_mode_t()
{
	_clearfp();
#if (__LP64__ || _WIN64)
	old_mode = _MM_GET_FLUSH_ZERO_MODE();
	_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
#elif defined(_WIN32)
	old_mode = _control87(0, 0);
#ifdef _DEBUG
	_control87(~(_EM_ZERODIVIDE | _EM_DENORMAL), _MCW_EM);
#endif
#if defined(_WIN32)
	_control87(_DN_FLUSH | _RC_CHOP, _MCW_RC | _MCW_DN);
#endif
#endif
}

fpu_mode_t::~fpu_mode_t()
{
	_clearfp();
#if (__LP64__ || _WIN64)
	_MM_SET_FLUSH_ZERO_MODE(old);
#elif defined(_WIN32)
	_control87(old_mode, ~0);
#endif
}

process()
{
	fpu_mode_t set_rounding_mode;
	...
}
Or do you mean normalization of vectors in the springs?
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post Reply

Return to “Instruments”