dpayne/cli-visualizer

Aborted, core dumped

neoserpent opened this issue ยท 8 comments

I've been trying to set up cli-visualizer for using with mpd, but every time I try to launch it, I get the error

/usr/include/c++/11.1.0/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = double; _Alloc = std::allocator<double>; std::vector<_Tp, _Alloc>::reference = double&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__n < this->size()' failed. Aborted (core dumped)

I'm using cli-visualizer-git downloaded with yay from the AUR, and mpd with pipewire.

This is my mpd.conf file:

#music_directory`                "/home/xavier/Music"
music_directory                 "/mnt/Data150GB/XavierArchData/Music"
playlist_directory      "/home/xavier/.config/mpd/playlists"

auto_update "yes"
bind_to_address "127.0.0.1"
port "6600"
restore_paused "yes"
max_output_buffer_size "16384"

audio_output {
        type "pulse"
        name "pulse audio"
        #type  "alsa"
        #name  "ALSA"
}

audio_output {
       type     "fifo"
       name     "my_fifo"
       path     "/tmp/mpd.fifo"
       format   "44100:16:2"
}

This is my cli-visualizer config file:

#Refresh rate of the visualizers. A really high refresh rate may cause screen tearing. Default is 20.
visualizer.fps=20

#Defaults to "/tmp/mpd.fifo"
/tmp/mpd.fifo

#If set to false the visualizers will use mono mode instead of stereo. Some visualizers will
#behave differently when mono is enabled. For example, spectrum show two sets of bars.
audio.stereo.enabled=false

#Specifies how often the visualizer will change in seconds. 0 means do not rotate. Default is 0.
visualizer.rotation.secs=10

#Configures the samples rate and the cutoff frequencies.
audio.sampling.frequency=44100
audio.low.cutoff.frequency=30
audio.high.cutoff.frequency=22050

##Applies scaling factor to both lorenz and ellipse visualizers. This is useful when the system audio is set
#to a low volume.
#visualizer.scaling.multiplier=1.0

#Configures the visualizers and the order they are in. Available visualizers are spectrum,lorenz,ellipse.
#Defaults to spectrum,ellipse,lorenz
visualizers=spectrum,ellipse,lorenz


#Configures what character the spectrum visualizer will use. Specifying a space (e.g " ") means the
#background will be colored instead of the character. Defaults to " ".
visualizer.spectrum.character=#

#Spectrum bar width. Defaults to 1.
visualizer.spectrum.bar.width=2

#The amount of space between each bar in the spectrum visualizer. Defaults to 1. It's possible to set this to
#zero to have no space between bars
visualizer.spectrum.bar.spacing=1

#Available smoothing options are monstercat, sgs, none. Defaults to sgs.
visualizer.spectrum.smoothing.mode=monstercat

#This configures the falloff effect on the spectrum visualizer. Available falloff options are fill,top,none.
#Defaults to "fill"
visualizer.spectrum.falloff.mode=fill

#Configures how fast the falloff character falls. This is an exponential falloff so values usually look
#best 0.9+ and small changes in this value can have a large effect. Defaults to 0.95
visualizer.spectrum.falloff.weight=0.95

#Margins in percent of total screen for spectrum visualizer. All margins default to 0
visualizer.spectrum.top.margin=0.0
visualizer.spectrum.bottom.margin=0.0
visualizer.spectrum.right.margin=0.0
visualizer.spectrum.left.margin=0.0

#Reverses the direction of the spectrum so that high freqs are first and low freqs last. Defaults to false.
visualizer.spectrum.reversed=false 

#Sets the audio sources to use. Currently available ones are "mpd" and "alsa"Sets the audio sources to use.
#Currently available ones are "mpd", "pulse", "port", and "alsa". Defaults to "mpd".
audio.sources=mpd

##vis tries to find the correct pulseaudio sink, however this will not work on all systems.
#If pulse audio is not working with vis try switching the audio source. A list can be found by running the
#command pacmd list-sinks  | grep -e 'name:'  -e 'index'
#audio.pulse.source=0

#vis tries to find the correct portaudio device (through portaudio default method), however its not for-sure.
#If port audio is not working with vis try switching the audio srouce. A list can be found by setting
#this value to "list" and checking the vis log file. Replace this value with the device name desired
audio.port.source=auto

#This configures the sgs smoothing effect on the spectrum visualizer. More points spreads out the smoothing
#effect and increasing passes runs the smoother multiple times on reach run. Defaults are points=3 and passes=2.
visualizer.sgs.smoothing.points=3
visualizer.sgs.smoothing.passes=2


#Configures what character the ellipse visualizer will use. Specifying a space (e.g " ") means the
#background will be colored instead of the character. Defaults to " ".
visualizer.ellipse.character=#

#The radius of each color ring in the ellipse visualizer. Defaults to 2.
visualizer.ellipse.radius=2

## Turns off overriding the user's terminal colors
colors.override.terminal=false

#Specifies the color scheme. The color scheme must be in ~/.config/vis/colors/ directory. Default is "colors"
colors.scheme=rainbow

And of course, I have a color scheme called "rainbow" in .config/vis/colors/

I can confirm with Arch.
Even without config files, it doesn't work.
image

Can confirm whit Pulseaudio setup.

audio.sources=pulse
audio.pulse.source=0

in the config, else defaults.

Also confirming with pulse/ pipewire, downloaded from the AUR

Confirming with a stock version of EndeavourOS, using yay as my AUR helper

Yea looks like it's strictly an issue with the AUR package cli-visualizer-git.

The good news is that the program works if you build from this repo yourself using the README instructions.

I believe the AUR packages are unmaintained. Anyone know if something's outdated here?

https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=cli-visualizer-git

Helpful/relevant section in Arch Wiki:

https://wiki.archlinux.org/title/Arch_User_Repository#Debugging_the_package_build_process

cli-visualizer-git package was now fixed in AUR. Thanks AUR user toitenminh.

Edit: non-git package cli-visualizer fixed as well :)

About the problem and the fix:

https://wiki.archlinux.org/title/Makepkg#Troubleshooting

See section Makepkg fails, but make succeeds

Adding !buildflags to options array fixed the package, and I can see from toitenminh's initial attempt to fix the PKGBUILD that the offending flags were:

-Wp,-D_GLIBCXX_ASSERTIONS

Wanted to preserve that info here as it's now hidden behind comment edit history.

I can see from toitenminh's initial attempt to fix the PKGBUILD that the offending flags were:

-Wp,-D_GLIBCXX_ASSERTIONS

Wanted to preserve that info here as it's now hidden behind comment edit history.

I have recovered my removed comment on aur page. This is just my temporary walkaround, I also don't know what the flag has any impact on the build process. Waiting for someone to analyze the impact.