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

Which is better for realtime performance?

For general discussion related FlowStone

Re: Which is better for realtime performance?

Postby tulamide » Mon Feb 09, 2015 2:53 am

RJHollins wrote:Is eveything the same as within the 'interpreter', or is the export compiled into code ?

There's no compilation going on. The export is a minimal Flowstone runtime plus the schematic's code. So, you basically get what you see. If it's slow in edittime, it won't speed up in runtime.
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Which is better for realtime performance?

Postby RJHollins » Mon Feb 09, 2015 3:08 am

Ah ...ok,

Thanks for the info tulamide.
RJHollins
 
Posts: 1571
Joined: Thu Mar 08, 2012 7:58 pm

Re: Which is better for realtime performance?

Postby kortezzzz » Mon Feb 09, 2015 8:04 am

From what I've noticed, avoid green loops


:shock:

KG, can you please show in a very simple schematic how it can be done? If we take a look at the stock multisample
module, we can see it's sample loading system is built around the green loop. Maybe it can be optimized then? (by the way, the stock multisample module really need a optimizing as it never optimized from the old days of synthmaker!
What the community needs, especially the amateurs, is an optimized stock multisamle alike module with good performance and less extra features that would be a good starting point for and expanding. Would someone meet that challenge please?)

Also avoid text prim connected to/inbetween array links.


The more connectors a prim has, the more likely it will be slower


:|

Ok, now I really have to take another look at my older projects. Used to use this methods a lot. Any ideas how can we avoid of feeding the wavtable prim' with a bunch of wavetable text files and a huge selector?
User avatar
kortezzzz
 
Posts: 763
Joined: Tue Mar 19, 2013 4:21 pm

Re: Which is better for realtime performance?

Postby KG_is_back » Mon Feb 09, 2015 5:18 pm

kortezzzz wrote:KG, can you please show in a very simple schematic how it can be done?


I'm having trouble creating a visible and still simple example. This schematic contains two modules that do exactly the same - fill an array with 10000 elements. each element is value of previous + 2 ^ its index. That is quite massive operation. the buttons in the schematic are modded to send out 10 triggers at the same time.

The green version takes about 8 seconds to finish on my machine and even causes the hour-watch cursor to show up and completely freezes flowstone while doing so.
The analyser version takes only about 5 seconds.
green VS analyser.fsm
(7.54 KiB) Downloaded 751 times


kortezzzz wrote:If we take a look at the stock multisample module, we can see it's sample loading system is built around the green loop. Maybe it can be optimized then?

Unfortunately not. The schematic still needs to fire triggers to load the samples and that seems to be the bottleneck. Rewriting the loop that fires the triggers to single ruby module may save a little time, but I doubt it will be a significant improvement.

kortezzzz wrote:Ok, now I really have to take another look at my older projects. Used to use this methods a lot. Any ideas how can we avoid of feeding the wavtable prim' with a bunch of wavetable text files and a huge selector?

You may replace the text wavetables with float array prims. However, in this case the problem is not that significant. In this situation you use text prim to actually store data that is not that significantly big and is requested only once in a while. I mainly meant situations where text prim is connected for example to a mono to float array prim that is triggered by a ticker. float array is converted to a text and displayed on screen several times a second for no apparent reason. The biggest no-no is to even use that text prim in between float array connectors. Array must be converted to text and then back for no reason, wasting CPU for conversion and also for displaying the text on screen.
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Which is better for realtime performance?

Postby kortezzzz » Tue Feb 10, 2015 11:41 am

Thanks for the example KG.

The schematic still needs to fire triggers to load the samples and that seems to be the bottleneck


Seems like it has very long neck :? The performance are bad. Wish there would have been an additional multisamper , a prim' only, with the necaessary ins\out that works smoothly and fast as possible. What we have right now is actually not useable.

However, in this case the problem is not that significant. In this situation you use text prim to actually store data that is not that significantly big and is requested only once in a while


I see. So it's depends on the way you use it.

Thanks.
User avatar
kortezzzz
 
Posts: 763
Joined: Tue Mar 19, 2013 4:21 pm

Re: Which is better for realtime performance?

Postby MyCo » Tue Feb 10, 2015 12:54 pm

kortezzzz wrote:Seems like it has very long neck :? The performance are bad. Wish there would have been an additional multisamper , a prim' only, with the necaessary ins\out that works smoothly and fast as possible. What we have right now is actually not useable.


Noticed that the wave load/save primitives use internally a very slow float <-> PCM conversion. And with slow I mean ridiculously slow. When you want to compare it, store a version of a wave in IEEE-Float format and then compare the load time of the Float version to the PCM version. On my tests the speed difference was about 20 times.
User avatar
MyCo
 
Posts: 718
Joined: Tue Jul 13, 2010 12:33 pm
Location: Germany

Re: Which is better for realtime performance?

Postby kortezzzz » Tue Feb 10, 2015 5:12 pm

store a version of a wave in IEEE-Float format and then compare the load time of the Float version to the PCM version


Sorry, what is IEEE-float format?
User avatar
kortezzzz
 
Posts: 763
Joined: Tue Mar 19, 2013 4:21 pm

Re: Which is better for realtime performance?

Postby tulamide » Tue Feb 10, 2015 7:36 pm

kortezzzz wrote:
store a version of a wave in IEEE-Float format and then compare the load time of the Float version to the PCM version


Sorry, what is IEEE-float format?

It was the short form of describing a float that follows an industry standard. The complete name is

IEEE Standard for Binary Floating-Point Arithmetic for microprocessor systems (IEEE 745-1985)

But you don't need to worry about it. If a sound tool offers writing wav in 32-bit float format, you're on the safe side (unless that tool is some crude 2-hours-backyard-project of a kid).
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Which is better for realtime performance?

Postby CoreStylerz » Wed Feb 11, 2015 12:03 pm

The schematic is wrapped "as is" into a VST plugin.
Flowstone exports as just wrapped schematics. What you do in ruby is interpreted with the interpreter, what you do in assembly is assembly, what you do in code is assembly. All other stuff are what they are.

The VST interface provide input and output to interface with the host.
Need my support for app development, website or custom scripts?
PM me if you are interested.
Experienced Java, J2EE, PHP, Javascript, Angular, Cloud Solutions developer.
User avatar
CoreStylerz
 
Posts: 327
Joined: Sun Jan 22, 2012 2:19 am
Location: italy

Previous

Return to General

Who is online

Users browsing this forum: No registered users and 85 guests