xbmc / visualization.spectrum

Spectrum visualizer for Kodi
GNU General Public License v2.0
8 stars 23 forks source link

[upgrade] Use FFT, various fixups, add more settings #49

Open kujub opened 3 years ago

kujub commented 3 years ago

Hi all! First of all this will make it actually work like a spectrum analyzer. Note: Changes for GL only (no directx)

Additional fixes and improvements:

AlwinEsch commented 3 years ago

As Note about Windows, I think also to kick the Windows DX support complete and to make via the "Angle" as GLES with it.

There then also the Question has you tested with GLES and worked correct? And thanks a lot to look for improvements here, your help is welcome :+1:

AlwinEsch commented 3 years ago

Have changed the target branch to "Nexus", after them here final can we create a backport about for Kodi Matrix.

kujub commented 3 years ago

There then also the Question has you tested with GLES and worked correct?

Tested GL only (on Fedora 33 x86-64). It seems kodi is built with support for GL and GLES, but i don't know how to switch.

Update: Rebuilt kodi 19.1 with -DAPP_RENDER_SYSTEM=gles. Then rebuilt visualization. Appears to work.

AlwinEsch commented 3 years ago

Has also tested now with GLES and works, with my reported bars seems related to the sound format on played "m4a" files, by other formats it was not present.

From my side is the request now OK and can in. Only if possible can you cleanup the commits a bit, so that the last correction commits would no longer be necessary.

With your request, it works now with his bars much more correct!

kujub commented 3 years ago

Has also tested now with GLES and works, with my reported bars seems related to the sound format on played "m4a" files, by other formats it was not present.

OK. I only played mp3 and flac.

kujub commented 3 years ago

From my side is the request now OK and can in. Only if possible can you cleanup the commits a bit, so that the last correction commits would no longer be necessary.

Squashed all fixup commits also dropping some trailing white-space.

kujub commented 3 years ago

Note: Actually newly added: SetSetting cleanup, Rotation speed setting. Perspective settings just rebased for commit cleanup.

AlwinEsch commented 3 years ago

About this request must be also checked by other Team Member's, like to use FFT, thats why for me OK. Only not complete sure about human feeling on his current displayed bars, as them mostly all complete up and slightly move then up/down to show.

Here as images:

kujub commented 3 years ago

Only not complete sure about human feeling on his current displayed bars, as them mostly all complete up and slightly move then up/down to show.

a) The bar heights are currently scaled to the full dynamic range of CDDA (96 dB ) which is almost never really used. We could add one more setting to allow smaller ranges too.

b) About sine-waves: Ideally there should be only one row of bars up, but only if one of the FFT-frequencies is exactly matched. The wave must fit exactly into the probing window used so that the beginning matches the end to really have a sine-wave detected. The only perfect frequency I found so far is 11025 Hz. (edit: 44100 Hz sample rate file) Other visualization addons seem to implement their own FFT-code, so I guess kodi's built in one isn't absolutely perfect. [edit: problem was: It did not use no window function.]

AlwinEsch commented 2 years ago

Thanks for the update will look next time.

With the bars seen, by work on another addon, a good place how I expect with FFTW. Here by ShaderToy https://www.shadertoy.com/view/4ljGD1 it shows below on "iChannel0" some bars where nice go up by related sound frequency.

kujub commented 7 months ago

Updates:

Upgrades: