Page 1 of 2

The Save Button Has A Math Problem

PostPosted: Sat Aug 22, 2020 1:03 am
by DSP-Robotron
In Flowstone, math for the save button works like this:

221KB + 460KB = 5,536KB

Can somebody explain that crap ?

Here are the files.

[Moderator Comment: Links and downloads removed]

Re: The Save Button Has A Math Problem

PostPosted: Sat Aug 22, 2020 2:15 am
by trogluddite
Almost certainly, your sample data is stored multiple times within the schematic. This is something you have to watch with any bulk data - waves, bitmaps, large arrays, etc.

Almost all "green" and Ruby FlowStone components store their current values within the schematic file whenever you save it (the same for VST or EXE exports too). This makes startup very fast, as no data needs to be recalculated or moved between components, but as you see, it can take a shed-load of memory, as a "value" can be an entire sample or bitmap (or its equivalent in some other internal format). The likely culprits are any "green" Float Arrays or RubyEdits which have working copies of the data for generating displays, "normalised" versions of sample data, etc. It's not helped by the fact that some data formats can't be shared (a wave contains essentially integer data, internal audio "mems" use native float arrays, and Ruby uses "objects" - each format change implies a copy, and the copy may be stored in the file).

The usual workaround is to save the schematic (or export) with empty wave data (or bitmaps, whatever) and restore it at startup using an "after load" primitive. Whether you want to do that depends on your objectives, of course - sometimes you really do want to "embed" the data to avoid having "sidecar" files. There are similar "after load" tricks you can use if you need to clear only certain internal copies (the "last switch" primitive is your friend here).

NB) There is a built-in optimisation for bitmaps - a single set of data is shared for any bitmap accessed by "yellow" GUI primitives (but RubyEdits will each store their own copy if they use it!!!)

PS) I must say, I'm very impressed at how quickly you are exposing some of FlowStone's most annoying "gotchas"! ;) :lol:

Re: The Save Button Has A Math Problem

PostPosted: Sat Aug 22, 2020 3:42 am
by DSP-Robotron
I think FS should make use of instances and reuse everything without wasting resources or at least compress everything that gets stored on disk. Basically, I have to store the samples outside of the schematic because if they are stored in the schematic it's increasing the file size by 7.92 times.

The only difference between those 2 files is that one has no samples stored in the schematic while the other one has the samples loaded in. The one with the samples stored inside is 7.92 times bigger than what is supposed to be. Which still doesn't make any sense at all.

Basically, FS was coded by complete amateurs and doesn't know how to use multiple cores and threads and bigger cache sizes and instances and whatever else is included in Windows 10 64bit combined with a AMD Ryzen 7 3700X 8-Core. That's very very very very bad FS. Very bad. Very bad DSP Robotics and Robotron robots with flow charts and schematics set in the stone age. That's very very bad...

Re: The Save Button Has A Math Problem

PostPosted: Sat Aug 22, 2020 4:41 am
by DSP-Robotron
trogluddite wrote:Almost certainly, your sample data is stored multiple times within the schematic.


OK. Here is the deal. Since you know more about how this super buggy toy works, you have 30 days to prototype this synth right here and make it work more kick ass than the Korg Wavestate synth. Right now the sample switching is noisy as crap and it makes all kinds of nasty clicks and pops, which means, some cross-fading needs to be engineered in the components somewhere. The ADSR envelopes are also complete crap, which means, we need something better. Maybe multistage graphical envelopes with splines and scaling options ? Try that.

Here is a sample image of the front panel.
https://drive.google.com/file/d/116w2Yv ... sp=sharing

Re: The Save Button Has A Math Problem

PostPosted: Sat Aug 22, 2020 5:00 am
by DSP-Robotron
Since all the components are buggy and slow as crap, we also need a button that says:

Convert Ruby script to super optimized assembly script that is fully editable by retards and other ridiculous Robotrons.

That way this thing could run properly for once without killing the CPU and it would also take full advantage of 16 virtual cores and 64bit and whatever else is available on my PC.

True/False ?

Re: The Save Button Has A Math Problem

PostPosted: Sat Aug 22, 2020 5:25 am
by DSP-Robotron
Here is my most advanced sampler so far with automatic panner and such but it still sucks because there are clicks and pops every time is switching sounds and performance is not very great either. So, yeah. Thanks Flowstone for ruining my precious Wavestate prototype. LOL

You can see it in action here but it's still killing the CPU about 3 to 6 times more than normal.
That's why we need Ruby-2-Assembler and Ruby-2-DSP script converters/translators. And also back to Ruby/Python/C/C++ or whatever else.

[Moderator Comment: Links and downloads removed]

Re: The Save Button Has A Math Problem

PostPosted: Sat Aug 22, 2020 2:29 pm
by trogluddite
DSP_Robotron wrote:you have 30 days to prototype this synth right here

And you have the rest of your life to remain banned from the forum, though I doubt even that will be long enough for you to learn to behave like an adult.

Re: The Save Button Has A Math Problem

PostPosted: Sat Aug 22, 2020 4:09 pm
by deraudrl
trogluddite wrote:And you have the rest of your life to remain banned from the forum, though I doubt even that will be long enough for you to learn to behave like an adult.
This forum really needs a "Like" button... :D

Re: The Save Button Has A Math Problem

PostPosted: Sat Aug 22, 2020 4:56 pm
by Spogg
Here you go...

Like button FS .png
Like button FS .png (10.77 KiB) Viewed 15369 times

Re: The Save Button Has A Math Problem

PostPosted: Sat Aug 22, 2020 5:03 pm
by k brown
I don't think my buttonholes are big enough for that.