cboxdoerfer / ddb_musical_spectrum Goto Github PK
View Code? Open in Web Editor NEWMusical spectrum for the DeaDBeeF audio player
License: GNU General Public License v2.0
Musical spectrum for the DeaDBeeF audio player
License: GNU General Public License v2.0
This... is probably the most weird sounding issue I ever reported.
I have a 7.1 Realtek ALC889 chip, which I configured to have two sinks: one for my 5.1 headset, and one for my stereo speakers following the example here. I also have another headset connected via BT.
The FFT size, bar count or refresh rate I set does not seem to matter. What I'm seeing is this:
And now comes the weird part: If I start pavucontrol, the stutters on Realtek output immediately go away, so does the CPU usage. It does not matter if pavucontrol is visible or minimized, as long as it is running, the refresh rate is smooth. As soon as I close pavucontrol, the stuttering starts again.
This is on an AMD Phenom II X4 970BE/nVidia 260GTX running KDE/arch linux x64. I'm running the latest deadbeef-devel as well as latest git snapshot of musical spectrum.
Any idea what might be causing this? I think I'm seeing something like this with the original spectrum component, but it does not have a configurable refresh rate and the one it has set barely differs from the stuttering I'm seeing.
Please, add bar mode (like in a foobar2000 spectrum). Thanks.
Changing opacity of the progress bar color has no effect, the color is always displayed as opaque.
I wanted to be able to make the bar completely invisible and only shade the waveform, but that doesn't seem to be possible because those colors are linked (and opacity doesn't work)
Here's the backtrace @Oleksiy-Yakovenko got: (DeaDBeeF-Player/deadbeef#2845)
(gdb) bt
#0 __memmove_sse2_unaligned_erms ()
at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:440
#1 0x00007ffff1cf666e in spectrum_wavedata_listener (ctx=0x6aee80,
data=0x7fffa40fcbf0) at spectrum.c:133
#2 0x00000000004355aa in ?? ()
#3 0x00007ffff7c31cb7 in _dispatch_call_block_and_release ()
from /home/waker/Downloads/deadbeef-static_devel-1_x86_64/deadbeef-devel/lib/libdispatch.so.0
#4 0x00007ffff7c32a9d in _dispatch_queue_drain ()
from /home/waker/Downloads/deadbeef-static_devel-1_x86_64/deadbeef-devel/lib/libdispatch.so.0
#5 0x00007ffff7c33393 in _dispatch_queue_invoke ()
from /home/waker/Downloads/deadbeef-static_devel-1_x86_64/deadbeef-devel/lib/libdispatch.so.0
#6 0x00007ffff7c33878 in _dispatch_worker_thread ()
from /home/waker/Downloads/deadbeef-static_devel-1_x86_64/deadbeef-devel/lib/libdispatch.so.0
#7 0x00007ffff7e48609 in start_thread (arg=<optimized out>)
at pthread_create.c:477
#8 0x00007ffff7957293 in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
and here's my log:
jiewei@jiewei-ROG:~/deadbeef-devel$ ./deadbeef
starting deadbeef devel [static] [portable]
server_start
We had a crash. Will not resume the saved session to avoid a crash cycle.
searching for GUI plugins in /home/jiewei/.local/lib64/deadbeef
searching for GUI plugins in /home/jiewei/.local/lib/deadbeef
searching for GUI plugins in /home/jiewei/deadbeef-devel/plugins
load_plugin_dir /home/jiewei/deadbeef-devel/plugins: scandir found 57 files
found gui plugin ddb_gui_GTK2.so
added GTK2 gui plugin
found gui plugin ddb_gui_GTK3.so
added GTK3 gui plugin
load gui plugin
checking GUI plugin: GTK2
found selected GUI plugin: GTK2
loading plugin /home/jiewei/deadbeef-devel/plugins/ddb_gui_GTK2.so
loading plugins from /home/jiewei/.local/lib64/deadbeef
loading plugins from /home/jiewei/.local/lib/deadbeef
loading plugins from /home/jiewei/deadbeef-devel/plugins
load_plugin_dir /home/jiewei/deadbeef-devel/plugins: scandir found 57 files
loading plugin /home/jiewei/deadbeef-devel/plugins/aac.so
loading plugin /home/jiewei/deadbeef-devel/plugins/adplug.so
loading plugin /home/jiewei/deadbeef-devel/plugins/alac.so
loading plugin /home/jiewei/deadbeef-devel/plugins/alsa.so
loading plugin /home/jiewei/deadbeef-devel/plugins/artwork.so
loading plugin /home/jiewei/deadbeef-devel/plugins/cdda.so
loading plugin /home/jiewei/deadbeef-devel/plugins/converter.so
loading plugin /home/jiewei/deadbeef-devel/plugins/converter_gtk2.so
loading plugin /home/jiewei/deadbeef-devel/plugins/converter_gtk3.so
loading plugin /home/jiewei/deadbeef-devel/plugins/dca.so
loading plugin /home/jiewei/deadbeef-devel/plugins/ddb_dumb.so
loading plugin /home/jiewei/deadbeef-devel/plugins/ddb_mono2stereo.so
loading plugin /home/jiewei/deadbeef-devel/plugins/ddb_shn.so
loading plugin /home/jiewei/deadbeef-devel/plugins/ddb_soundtouch.so
loading plugin /home/jiewei/deadbeef-devel/plugins/ddb_vis_musical_spectrum_GTK2.so
loading plugin /home/jiewei/deadbeef-devel/plugins/ddb_vis_musical_spectrum_GTK3.so
loading plugin /home/jiewei/deadbeef-devel/plugins/dsp_libsrc.so
loading plugin /home/jiewei/deadbeef-devel/plugins/ffap.so
loading plugin /home/jiewei/deadbeef-devel/plugins/ffmpeg.so
loading plugin /home/jiewei/deadbeef-devel/plugins/flac.so
loading plugin /home/jiewei/deadbeef-devel/plugins/gme.so
loading plugin /home/jiewei/deadbeef-devel/plugins/hotkeys.so
loading plugin /home/jiewei/deadbeef-devel/plugins/in_sc68.so
loading plugin /home/jiewei/deadbeef-devel/plugins/lastfm.so
loading plugin /home/jiewei/deadbeef-devel/plugins/m3u.so
loading plugin /home/jiewei/deadbeef-devel/plugins/mms.so
loading plugin /home/jiewei/deadbeef-devel/plugins/mp3.so
loading plugin /home/jiewei/deadbeef-devel/plugins/musepack.so
loading plugin /home/jiewei/deadbeef-devel/plugins/notify.so
loading plugin /home/jiewei/deadbeef-devel/plugins/nullout.so
loading plugin /home/jiewei/deadbeef-devel/plugins/opus.so
loading plugin /home/jiewei/deadbeef-devel/plugins/oss.so
loading plugin /home/jiewei/deadbeef-devel/plugins/pltbrowser_gtk2.so
loading plugin /home/jiewei/deadbeef-devel/plugins/pltbrowser_gtk3.so
loading plugin /home/jiewei/deadbeef-devel/plugins/psf.so
loading plugin /home/jiewei/deadbeef-devel/plugins/pulse.so
loading plugin /home/jiewei/deadbeef-devel/plugins/rg_scanner.so
loading plugin /home/jiewei/deadbeef-devel/plugins/shellexec.so
loading plugin /home/jiewei/deadbeef-devel/plugins/shellexecui_gtk2.so
loading plugin /home/jiewei/deadbeef-devel/plugins/shellexecui_gtk3.so
loading plugin /home/jiewei/deadbeef-devel/plugins/sid.so
loading plugin /home/jiewei/deadbeef-devel/plugins/sndfile.so
loading plugin /home/jiewei/deadbeef-devel/plugins/supereq.so
loading plugin /home/jiewei/deadbeef-devel/plugins/tta.so
loading plugin /home/jiewei/deadbeef-devel/plugins/vfs_curl.so
loading plugin /home/jiewei/deadbeef-devel/plugins/vfs_zip.so
loading plugin /home/jiewei/deadbeef-devel/plugins/vorbis.so
loading plugin /home/jiewei/deadbeef-devel/plugins/vtx.so
loading plugin /home/jiewei/deadbeef-devel/plugins/wavpack.so
loading plugin /home/jiewei/deadbeef-devel/plugins/wildmidi.so
loading plugin /home/jiewei/deadbeef-devel/plugins/wma.so
starting plugin GTK2 user interface
starting plugin AAC player
starting plugin Adplug player
starting plugin ALAC player
starting plugin ALSA output plugin
starting plugin Album Artwork
starting plugin Audio CD player
starting plugin Converter
starting plugin Converter UI
starting plugin Converter UI
starting plugin dts decoder
starting plugin DUMB module player
starting plugin Mono to stereo
starting plugin Shorten player
starting plugin Soundtouch
starting plugin Musical Spectrum
starting plugin Musical Spectrum
starting plugin Resampler (Secret Rabbit Code)
starting plugin Monkey's Audio (APE) decoder
starting plugin FLAC decoder
starting plugin Game-Music-Emu player
starting plugin Hotkey manager
starting plugin SC68 player (Atari ST SNDH YM2149)
starting plugin last.fm scrobbler
starting plugin M3U and PLS support
starting plugin mms vfs
starting plugin MP3 player
starting plugin MusePack decoder
starting plugin OSD Notify
starting plugin Null output plugin
starting plugin Opus player
starting plugin OSS output plugin
starting plugin Playlist Browser
starting plugin Playlist Browser
starting plugin PSF player using Audio Overload SDK
starting plugin PulseAudio output plugin
starting plugin ReplayGain Scanner
starting plugin Shell commands
starting plugin Shellexec UI
starting plugin Shellexec UI
starting plugin SID player
starting plugin WAV/PCM player
starting plugin SuperEQ
starting plugin tta decoder
starting plugin cURL vfs
starting plugin ZIP vfs
starting plugin Ogg Vorbis decoder
starting plugin VTX player
starting plugin WavPack decoder
starting plugin WildMidi player
starting plugin WMA player
starting plugin stdio vfs
starting plugin FFMPEG audio player
selected output plugin: ALSA output plugin
INFO: from file /home/jiewei/.config/deadbeef/playlists/0.dbpl
INFO: from file /home/jiewei/.config/deadbeef/playlists/1.dbpl
convgui: gtkui plugin not found
shellexecui: can't find gtkui plugin
resume: track 0 pos 21.455290 playlist 1
gtkui plugin compiled for gtk version: 2.16.0
Gtk-Message: 18:15:17.387: Failed to load module "canberra-gtk-module"
connecting button tray signals
Segmentation Fault
backtrace() returned 11 addresses
./deadbeef() [0x41e4c7]
/lib/x86_64-linux-gnu/libc.so.6(+0x43090) [0x7f1467019090]
/lib/x86_64-linux-gnu/libc.so.6(+0xbbd67) [0x7f1467091d67]
/home/jiewei/deadbeef-devel/plugins/ddb_vis_musical_spectrum_GTK2.so(+0x3598e) [0x7f1461b3598e]
./deadbeef() [0x4355aa]
/home/jiewei/deadbeef-devel/lib/libdispatch.so.0(_dispatch_call_block_and_release+0x7) [0x7f14673d2cb7]
/home/jiewei/deadbeef-devel/lib/libdispatch.so.0(_dispatch_queue_drain+0x17d) [0x7f14673d3a9d]
/home/jiewei/deadbeef-devel/lib/libdispatch.so.0(+0x6393) [0x7f14673d4393]
/home/jiewei/deadbeef-devel/lib/libdispatch.so.0(+0x6878) [0x7f14673d4878]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x8609) [0x7f14675e8609]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x43) [0x7f14670f5133]
When FFT size is configured 8192 samples or below, it doesn't crash but switches to the next track (if there's a next track; if there's only one track it just continues playing) after resuming a paused track (not always).
Thanks for the update, it looks great :-).
the link for aur archlinux is broken
deadbeef-plugin-musical-spectrum-gtk2-git
deadbeef-plugin-musical-spectrum-gtk3-git
Hello
Thanks a lot for your great work and contribution to deadbeef plugins !
I was wondering if rather than displaying notes as labels, we could have the choice to display a frequency range ?
and maybe as an additional option to define zones like : low / mid / high with different colors ?
Thank you!
I use DeaDBeeF on an M1 Mac.
Gives ddb_musical_spectrum for Mx (ARM) Macs in future?
if possible, it would be greate to have an option to auto pause the sample while the window is invisible, as for most of the time, the music player is run in backgound
here on my laptop(i5-6300HQ CPU @2.30GHz), without the ddb_musical_spectrum and ddb_spectrogram, the CPU usage could be 2-3%, but with the two plugin on, it's 12-13%
thanks for this plugin!
looking at the plugin's output, it seems that the highest frequencies are always zero.
please see screenshot
(other plugins added to show that the error is indeed with this pugin and not the sound itself.
boosted high frequencies on equalizer to make the issue more visible; disabling the eq does not solve it).
this happens for various files; i tried mp3, flac and streams (aac i think).
it would seem that the spectrum scans more frequencies than my system is able to reproduce?
i cannot find any settings (either in this plugin's settings or in deadbeef's) that would change this.
any way to solve this would be appreciated.
forgot to mention, all this is happening on archlinux, alsa and nothing else, simple openbox environment.
im trying Compiling them on kubuntu 14.04:
make
Creating build directory for GTK+2 version
Compiling spectrum.o
/bin/sh: 1: pkg-config: not found
/bin/sh: 1: cc: not found
make: *** [gtk2/spectrum.o] Ошибка 127
I figured it's better to show what I mean: http://gfycat.com/LividPopularAssassinbug
Whenever clipping occurs bar height drops to 0 and disappears. Sorry can't take a look at the code myself at this point.
It'd be very useful to be able to put multiple copies in so that you could have one for each audio channel.
A vertical mode — rotation of 90°, with optional horizontal and vertical symmetries — for the musical spectrum plugin would be very nice. Thank you.
I am sorry for such a simple question that I can't open the spectrum window. This plugin can be found in my deadbeef's plugin list, however, after restarting, there is still no spectrum window. How can I open spectrum window in my deadbeef?
Links to x86_64 and i868 tarballs no longer work.
I'm using deadbeef on i3wm, which means the app usually only has two window sizes, which are full screen which has no issue, the bar width is correct and there is no gap: https://imgur.com/a/qDnzRcq
Or I have deadbeef on an split screen, which is where the issue happens, there's a big gap at either end: https://imgur.com/5IQTD5u.png
Changing the default size from auto to a fixed number shows exactly what the issue is, the plugin decides that the best auto width is a value of 4 when it should instead be 5. Very likely this happens because 5 is slightly bigger than the space available so it defaults to the next smaller value which has the massive gaps.
There are two ways this could be fixed, either auto uses the next higher value instead of the next lower or use fractional values for bar width.
who can tell me what dependencies the plugin Musical Spectrum needs?
Great plugin. Love the same as in foobar.
Default colormap is nice, but would you consider reading colormap from file - thus allowing custom colormaps?
Also it this is to be considered, maybe shifting max color gradient to 12 instead 6?
Anyhow thanks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.