Skip to content
This repository has been archived by the owner on Dec 9, 2020. It is now read-only.

Performance of Visualizer

Kristian Skov edited this page Sep 28, 2018 · 11 revisions

Up to date as of version 1.3.3

Table of Content

Overview

Tested with an Arduino Nano at 1M Baud rate

On this page, the limits of what the Visualizer can do will be tested, these tests may change over time, as more optimizations gets included!

LEDs vs RPS

Here is the best and the worst values taken into place, that means that the size of data being sent is a constant (ex. 255;255;255 for the worst and 0;0;0 for the best). Where green is the best value, and red is the worst.

Beat

The first thing that would be interesting to look at, is how the RPS (Refreshments pr Second) scales with the amount of LEDs that you have. This can be tested on my own setup, where i change what ranges the visualizer needs to update to and from. First we take a look on the visualization mode Beat, where the numbers are as follows:

Error Loading Image

(Where x = LEDs and Y = RPS)

And with follow lines for best and worst in each end:

Error Loading Image

The first thing that comes to mind is that you can see there are some big drops, that's when i change pin ID, where i have a LED strip on pin 2, 3, 4 and 5. The next thing you might see is that sometimes the worst value, is better than the best value, the reason for this is that Beat in itself does not transfer that many data (only a value between 0 and 100), so there can be a large difference between best and worst in this mode. That being said, we can take a look at the RPS/LED drop from the start, to the end. Where the first strip gets:

 -0,9 RPS pr LED in best, and -0,83 RPS pr LED in worst

While the other end, with the last strip gets:

 -0,06 RPS pr LED in best, and -0,26 RPS pr LED in worst.

In conclusion to that, there is not much difference between the best value, and the worst value in this mode, however if you are aiming for great performance, then get your entire strip on one pin, instead of mine, where i use four different once.

Spectrum Beat

Spectrum beat is a bit different, since the RPS highly depends on what data is being sent. So the performance of the spectrum beat can wiggle a lot. That being said, we can still get an approximate like before:

Error Loading Image

And with follow lines for best and worst in each end:

Error Loading Image

This time it is different, there is no significant drop between pins, and the RPS is surprisingly binary. To underscore that, we can again look at the RPS drop pr LED:

 -0,23 RPS pr LED at best, and -0,2 RPS pr LED at worst

while at the end we have:

 -0 RPS pr LED at best, and -0,08 RPS pr LED at worst

In conclusion, the spectrum beat mode scales very nicely.

Spectrum Wave

The spectrum wave mode is not like the two before, since now there is a lot more actions the Arduino have to take. So the RPS drop pr LED looks like this:

Error Loading Image

And with follow lines for best and worst in each end:

Error Loading Image

Where we can see a significant drop in the worst values, while the best values are relative stable. The RPS drop pr LED at the start and in the end is as follows:

 -0,53 RPS pr LED at best, and -1,7 RPS pr LED at worst

and at the end:

 -0,06 RPS pr LED at best, and — 0,2 RPS pr LED at worst

So we see the RPS stabilize towards the end.

Beat Wave

This one is much like Spectrum Wave, since they use the same functions, its RPS over LED graph looks like this:

Error Loading Image

And with follow lines for best and worst in each end:

Error Loading Image

Here we see a large drop in RPS / LED in the start, however it stabilizes at the end, which gives us a RPS/LED at:

 -0.87 RPS pr LED at best, and -1.53 RPS pr LED at worst

in the start and at the end:

 -0.06 RPS pr LED at best, -0.02 RPS pr LED at worst

As said this is much like the previous Wave style, so not much to say here.

"Beat Wave" Beat

This one is much like the Spectrum Beat, however it's using the Wave Beat values instead, the RPS/LED graph looks as follows:

Error Loading Image

And with follow lines for best and worst in each end:

Error Loading Image

Where we see somewhat the same as with Spectrum Beat, the RPS drop pr LED is as follows:

 0.03 RPS pr LED at best, and -0,13 RPS pr LED at worst

at the start, and at the end:

 0,16 RPS pr LED at best, and -0.08 RPS pr LED at worst

The reason for why some of the values are positive is that there's really not much difference from the values in the first place.

Full Spectrum

The full spectrum mode is also different in that the data size to transfer does not change that much, so there is only a little difference from the best to the worst:

Error Loading Image

And with follow lines for best and worst in each end:

Error Loading Image

Where we can see the RPS drop pr LED:

 0 RPS pr LED at best, and -1,38 RPS pr LED at worst

With the first section, and with the last section:

 -0,18 RPS pr LED at best, and -0,12 RPS pr LED at worst
Clone this wiki locally