-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[upgrade] Use FFT, various fixups, add more settings #49
base: Nexus
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<formatlabel>30024</formatlabel> | ||
<popup>false</popup> | ||
</control> | ||
</setting> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As this three new settings only works with GL must you add the:
<dependencies>
<dependency type="visible">
<or>
<condition on="property" name="IsDefined">HAS_GL</condition>
<condition on="property" name="IsDefined">HAS_GLES</condition>
</or>
</dependency>
</dependencies>
to prevent show on Windows and his DX.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As only part on view where seems to improved, is when no sound comes anymore, There stays one row still a bit up:
This was never seen here. If you paused, it is maybe normal behavior because shifting rows is paused too then.
As this three new settings only works with GL must you add the:
to prevent show on Windows and his DX.
Done
|
||
msgctxt "#30024" | ||
msgid "%i%%" | ||
msgstr "%i%%" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With formal labels was something changed inside Kodi and with this style now no more supported (on Nexus) and need:
msgid "{0:d}%"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
|
||
msgctxt "#30022" | ||
msgid "%+i%%" | ||
msgstr "%+i%%" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What makes the +
before the i
, not know as this, makes it only then number if higher as 0?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was just kinda cosmetics because actually "0%" is 100% (default) and "+10%" is 110% and so on.
Removed now as i don't know how to do this with the new format.
|
||
msgctxt "#30024" | ||
msgid "%i%%" | ||
msgstr "" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As with use now the translation system by Weblate, would it better to leave de_de and the en_us unchanged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done (reverted)
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? |
Have changed the target branch to "Nexus", after them here final can we create a backport about for Kodi Matrix. |
Update: Rebuilt kodi 19.1 with -DAPP_RENDER_SYSTEM=gles. Then rebuilt visualization. Appears to work. |
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! |
OK. I only played mp3 and flac. |
4f0e32b
to
5084ad1
Compare
Squashed all fixup commits also dropping some trailing white-space. |
Note: Actually newly added: SetSetting cleanup, Rotation speed setting. Perspective settings just rebased for commit cleanup. |
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: |
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.] |
4d81f7b
to
41369bb
Compare
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. |
84a0c53
to
b1f4f9e
Compare
5a340de
to
fbf69a7
Compare
d8d7cf3
to
bca8a79
Compare
Really implement spectrum analyser functionality A new setting allows one to set the dynamic range displayed to whatever is used in practice (up to 144 dB for full 24 bit audio) Note: A new class KFFTR was derived from MRFFT used in other visualizations: * discard DC bin * fix hardcoded stereo (just sum up all channels) * fix broken Hann window function (!)
Wireframe: Show all edges of bars/cuboids, but w/o confusing diagonal lines. Performance: Don't call glDrawArrays separately for each single bar. Enable face-culling.
Take account of display and pixel aspects and allow to change field size, tilt and base (bottom of bars). With zero tilt and negative base, perspective distortion can be entirely eliminated and all bars stand vertical then. With 90° tilt a funny bird's-eye view can be achieved. Additionally the size of the x*z-field can be changed. Smaller is useful for bird's-eye view and bigger for zero tilt with rotation fixed at 0° or 90° etc. Rotation speed setting is added too.
Allow up to 128 x 128 bars.
New default color mode (beside of legacy mode): Up to two bars are stacked with blue->green, green->red gradients from bottom to some constant heights. So top colors depend on relative bar heights. New monochrome color modes: Monochrome gradient from dark to bright amber/blue/green. New bar height setting 'Flat': Allow clean 2D views with changing bar top colors. Points mode: Only draw one point at top mid.
Implement smooth animation for backwards shift. Take account of fps for bar height animation speed.
Allow to start/stop/revert rotation seamlessly at any point by switching back and forth on a set of presets with normal/zero/reverse rotation settings by using hotkeys or to change any other settings parameters on the fly as long as the number of bands remains equal. A settings category called 'Presets template' allows easy setup and change of a bunch of similar presets.
Updates:
Upgrades:
|
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: