Hello!
As the default HighColour is 0xFFFF0000, medium 0xFFFFFF00 (which does mix into yellow) and Low at 0xFF026732, showing mostly green. Alpha channel stays at full, so it's fully visible.
That is absolutely correct. The first one is alpha, and it has to be FF, because it is respected. Allowing decimal rgb(r,g,b) value could have been nice feature though.
(I think you can use a web hex colour picker/editor. Just replace the '#' character with '0xFF'.)
What does SamplesPerBar do? Resize the FFT data to match the number of bars displayed?
XMPlay provides a 256 byte spectrum sample data [0..255] for left and right channel.
NumberOfBars=25
SamplesPerBar=2
shows 25 bars, visualising sample range [1..50] (NumberOfBars * SamplesPerBar = 50). Using settings:
NumberOfBars=255
SamplesPerBar=1
Visualises the sample range [0..254].
There are few caveats in this that have been taken care of:
- Sample #255 (the last one) is actually not a spectrum sample. It is a some sort of average channel volume. This is not used.
- Sample #0 (the first one) is over-presented. The algorithm ignores it when it is not useful.
- The spectrum data provided by Sonique visualisation interface is extremely poor at the range [128..254]. On most music tracks this section gives only numbers 0, 1, 2. This is bothersome with logarithmic scale. A ±1.0 sample jitter is added to hide this.
A great TODO idea would be to ignore the Sonique sample data altogether and calculate a new high resolution one from the waveform data. The waveform data is high resolution enough for this and there are enough calculation cycles for this (the visualisation itself is simple). The only problem is that I have to learn how to extract spectrum data from an oscilloscopic view!
