Comments (22)
CPU: M1 Pro (arm64)
MacOS: Ventura 13.0.1
Kernel: Darwin Kernel Version 22.1.0
Does it compile out of the box?
no
If it doesn't compile, did ./configure complain and helped figuring out what was needed?
no, it fails at make
Does lv-tool-0.4 start and show a spinning 3D GL spectrum?
(after successful compile) it does start, but with a blank window
Does lv-tool-0.4 use actual audio input when run with --input portaudio (and does it use the microphone or the audio that other apps are playing)?
no
libvisual CRITICAL: lv-tool-0.4: inp_portaudio_upload(): assertion `priv->stream != NULL' failed
Workaround for compile
make
fails with default compiler clang
- install alternative compiler gcc 11 via brew
brew install gcc@11
- override compiler flags for
configure
&make
2.1../configure CC=/opt/homebrew/bin/gcc-11 CXX=/opt/homebrew/bin/g++-11
2.2.make CC=/opt/homebrew/bin/gcc-11 CXX=/opt/homebrew/bin/g++-11
notes for run-0.4-macos.sh
nproc
is not available by defaultmake install
requires root privileges
from libvisual.
For comparison, here's the result on my rather old setup:
System Version: macOS 10.15.7 (19H2026)
Kernel Version: Darwin 19.6.0
Model Name: Mac mini
Model Identifier: Macmini8,1
Processor Name: 6-Core Intel Core i5
The output of your demo script:
+ LV_INSTALL_PREFIX=/Users/jan/Desktop/libvisual/INSTALL_PREFIX
+ configure_args=(--prefix="${LV_INSTALL_PREFIX}")
+ for i in libvisual libvisual-plugins
+ cd libvisual
+ NOCONFIGURE=please
+ ./autogen.sh
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: running: autopoint --force
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: running: glibtoolize --copy --force
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: aclocal --force -I m4
autoreconf: running: /usr/local/Cellar/autoconf/2.71/bin/autoconf --force
configure.ac:101: error: possibly undefined macro: AC_MSG_ERROR
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: error: /usr/local/Cellar/autoconf/2.71/bin/autoconf failed with exit status: 1
from libvisual.
Thank you! 👍 👍 That's more and more severe trouble than I expected.
@ChrisScheffler regarding your report:
- Is there no other error output before the
priv->stream != NULL
? It would mean that PortAudio failed to open the stream but also pretended it worked (thinking linevisual_log_return_val_if_fail (open_error == paNoError, -3);
) - Any ideas on why PortAudio could have trouble opening the microphone on your system? Are you aware of other apps using PortAudio that work fine for you on macOS? The only two things I can think of right now are stereo versus mono (currently tries stereo) and permission problems. For permissions, someone has ideas here: pure-data/pure-data#1208 (comment) .
- My guess on the blank window is that we'd need to link against macOS
-framework
OpenGL rather than homebrew's Mesa then. - Regarding the Clang compile error, could you share the error, the clang version and whether it's from homebrew or macOS very own?
nproc
is GNU coreutils, right,coreutils
was is not in the list for homebrew to install, my bad.- Did
make install
require root despite--prefix="${LV_INSTALL_PREFIX}"
? If so, did you find why?
@idleberg regarding the AC_MSG_ERROR
, is this with pkg-config installed, did you run the homebrew install list mentioned above? From what this reads it seems to happen when pkg-config is not installed.
from libvisual.
@idleberg PS: Alternatively, could it be that there are multiple copies of pkg-config and the wrong one wins the ${PATH}
race? Does which pkg-config
point at homebrew? Autoconf tries to satisfy macro PKG_PROG_PKG_CONFIG
and it needs file pkg.m4
for that — my copy is at /usr/share/aclocal/pkg.m4
. If the wrong pkg-config looks in effectively the wrong place, maybe that would cause the error.
from libvisual.
Homebrew gave me some warnings when installing the dependencies. Basically, they don't guarantee that installing "formalas" will continue work for an outdated OS. I tried again and I'm now getting this:
=====================================================================
LIBVISUAL, AN AUDIO VISUALISATION ABSTRACTION LIBRARY, VERSION 0.4.1
=====================================================================
install path : ~/libvisual/INSTALL_PREFIX/lib
plugins base directory : /Users/jan/Desktop/libvisual/INSTALL_PREFIX/lib/libvisual-0.4
compiler : gcc
debug enabled : no
++ nproc
+ make -j6
/Library/Developer/CommandLineTools/usr/bin/make all-recursive
Making all in libvisual
make[2]: Nothing to be done for `all'.
Making all in po
make[2]: Nothing to be done for `all'.
Making all in examples
make[2]: Nothing to be done for `all'.
Making all in tools/lv-tool
g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../libvisual -D_THREAD_SAFE -I/usr/local/include/SDL -g -O2 -MT lv_tool_0_4-lv-tool.o -MD -MP -MF .deps/lv_tool_0_4-lv-tool.Tpo -c -o lv_tool_0_4-lv-tool.o `test -f 'lv-tool.cpp' || echo './'`lv-tool.cpp
lv-tool.cpp:145:55: error: expected ';' after top level declarator
const std::unordered_set<std::string> actors_to_skip {
^
;
lv-tool.cpp:168:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
enum class CycleDir
^
lv-tool.cpp:382:11: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
auto modelist = SDL_ListModes (nullptr, SDL_FULLSCREEN);
^
lv-tool.cpp:415:67: error: expected ';' at end of declaration
std::array<SDL_Color, target_color_count> colors {};
^
;
lv-tool.cpp:733:7: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
auto cycler = (dir == CycleDir::NEXT) ? visual_actor_get_next_by_name
^
lv-tool.cpp:733:29: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
auto cycler = (dir == CycleDir::NEXT) ? visual_actor_get_next_by_name
^
lv-tool.cpp:736:7: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
auto new_name = cycler (name.c_str ());
^
lv-tool.cpp:770:19: error: no matching constructor for initialization of '(anonymous namespace)::Libvisual'
Libvisual main {argc, argv};
^
/usr/local/include/SDL/SDL_main.h:34:14: note: expanded from macro 'main'
#define main SDL_main
^
lv-tool.cpp:175:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0
were provided
class Libvisual
^
lv-tool.cpp:179:7: note: candidate constructor not viable: requires 2 arguments, but 0 were provided
Libvisual (int& argc, char**& argv)
^
lv-tool.cpp:770:23: error: expected ';' at end of declaration
Libvisual main {argc, argv};
^
;
lv-tool.cpp:807:9: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
auto actor = bin.get_actor();
^
lv-tool.cpp:835:9: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
auto vidoptions = visual_actor_get_video_attribute_options(actor);
^
lv-tool.cpp:841:9: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
auto video = display.create(depth, vidoptions, width, height, true);
^
lv-tool.cpp:887:29: error: no matching constructor for initialization of '(anonymous namespace)::DisplayLock'
DisplayLock lock {display};
^
lv-tool.cpp:458:7: note: candidate constructor not viable: requires single argument 'display', but no arguments were
provided
DisplayLock(Display & display) : m_display(&display) {
^
lv-tool.cpp:453:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0
were provided
class DisplayLock
^
lv-tool.cpp:887:33: error: expected ';' at end of declaration
DisplayLock lock {display};
^
;
lv-tool.cpp:910:64: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
actor_name = cycle_actor_name (actor_name, CycleDir::NEXT);
^
lv-tool.cpp:922:13: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
auto pluginqueue = visual_plugin_get_eventqueue (visual_actor_get_plugin(bin.get_actor()));
^
lv-tool.cpp:938:37: error: no matching constructor for initialization of '(anonymous namespace)::DisplayLock'
DisplayLock lock {display};
^
lv-tool.cpp:458:7: note: candidate constructor not viable: requires single argument 'display', but no arguments were
provided
DisplayLock(Display & display) : m_display(&display) {
^
lv-tool.cpp:453:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0
were provided
class DisplayLock
^
lv-tool.cpp:938:41: error: expected ';' at end of declaration
DisplayLock lock {display};
^
;
lv-tool.cpp:960:68: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
actor_name = cycle_actor_name (actor_name, CycleDir::NEXT);
^
lv-tool.cpp:1032:29: error: no matching constructor for initialization of '(anonymous namespace)::DisplayLock'
DisplayLock lock {display};
^
lv-tool.cpp:458:7: note: candidate constructor not viable: requires single argument 'display', but no arguments were
provided
DisplayLock(Display & display) : m_display(&display) {
^
lv-tool.cpp:453:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0
were provided
class DisplayLock
^
lv-tool.cpp:1032:33: error: expected ';' at end of declaration
DisplayLock lock {display};
^
;
11 warnings and 10 errors generated.
make[2]: *** [lv_tool_0_4-lv-tool.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
from libvisual.
startup with root privileges:
libvisual CRITICAL: lv-tool-0.4: VisPluginRef **visual_plugin_get_references(const char *, int *)(): Cannot load plugin: dlopen(/usr/local/lib/libvisual-0.4/input/input_mplayer.so, 0x0001): symbol not found in flat namespace '_mremap'
lv-tool - Libvisual 0.4.1 commandline tool - https://github.com/Libvisual/libvisual
libvisual CRITICAL: lv-tool-0.4: int visual_video_set_depth(VisVideo *, VisVideoDepth)(): assertion `video != NULL' failed
libvisual CRITICAL: lv-tool-0.4: int visual_video_set_depth(VisVideo *, VisVideoDepth)(): assertion `video != NULL' failed
libvisual CRITICAL: lv-tool-0.4: inp_portaudio_init(): assertion `open_error == paNoError' failed
libvisual CRITICAL: lv-tool-0.4: inp_portaudio_upload(): assertion `priv->stream != NULL' failed
from libvisual.
@idleberg last comment addresses the clang issue. Its the default compiler frontend (not homebrew).
On M1 Pro @ Ventura: gcc -v
Apple clang version 14.0.0 (clang-1400.0.29.202)
Target: arm64-apple-darwin22.1.0
from libvisual.
Thanks for the updates, interesting! 👍
There is a new branch 0.4.x-macos
with these noteworthy changes:
- Enable C++11 support for the compiler, Clang in particular
- Compile and link against macOS' own OpenGL rather than Mesa's
- Make the PortAudio plugin output error code and error message to help understand the situation
- Fix C++11 and Clang macOS issues until the CI was all green
Could you try with branch 0.4.x-macos
and report back?
Thanks in advance! 🙏
from libvisual.
PS: One more homebrew package is needed with branch 0.4.x-macos
now: autoconf-archive
.
from libvisual.
compiling branch 0.4.x-macos
with native clang fails for G-Force plugin (errors only):
G-Force.cpp:345:4: error: no matching member function for call to 'Print'
Print(_("WaveShape: "));
^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Print( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); }
^
G-Force.cpp:347:4: error: no matching member function for call to 'Print'
Print(_("ColorMap: "));
^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Print( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); }
^
G-Force.cpp:349:4: error: no matching member function for call to 'Print'
Print(_("DeltaField: "));
^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Print( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); }
^
G-Force.cpp:353:5: error: no matching member function for call to 'Print'
Print(_("Particles: "));
^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Print( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); }
^
G-Force.cpp:374:4: error: no matching member function for call to 'Print'
Print(_("Amplitude scale: "));
^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Print( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); }
^
G-Force.cpp:381:4: error: no matching member function for call to 'Print'
Print(_("Amplitude scale: "));
^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Print( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); }
^
G-Force.cpp:388:5: error: no matching member function for call to 'Println'
Println(_("Particles ON"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
G-Force.cpp:390:5: error: no matching member function for call to 'Println'
Println(_("Particles OFF"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
G-Force.cpp:412:5: error: no matching member function for call to 'Println'
Println(_("Show names ON"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
G-Force.cpp:414:5: error: no matching member function for call to 'Println'
Println(_("Show names OFF"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
G-Force.cpp:420:5: error: no matching member function for call to 'Println'
Println(_("Normalize ON"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
G-Force.cpp:422:5: error: no matching member function for call to 'Println'
Println(_("Normalize OFF"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
G-Force.cpp:435:5: error: no matching member function for call to 'Print'
Print(_("Loading DeltaField: "));
^~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Print( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); }
^
G-Force.cpp:446:5: error: no matching member function for call to 'Println'
Println(_("DeltaField slideshow ON"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
G-Force.cpp:449:5: error: no matching member function for call to 'Println'
Println(_("DeltaField slideshow OFF"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
G-Force.cpp:457:4: error: no matching member function for call to 'Println'
Println(_("All slideshows ON"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
G-Force.cpp:464:4: error: no matching member function for call to 'Println'
Println(_("All slideshows OFF"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
G-Force.cpp:483:5: error: no matching member function for call to 'Println'
Println(_("ColorMap slideshow ON"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
G-Force.cpp:486:5: error: no matching member function for call to 'Println'
Println(_("ColorMap slideshow OFF"));
^~~~~~~
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier
void Println( char* inStr );
^
../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument
void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); }
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
output for compiled binary (with gcc 11):
lv-tool - Libvisual 0.4.1 commandline tool - https://github.com/Libvisual/libvisual
libvisual CRITICAL: lv-tool-0.4: int visual_video_set_depth(VisVideo *, VisVideoDepth)(): assertion `video != NULL' failed
libvisual CRITICAL: lv-tool-0.4: int visual_video_set_depth(VisVideo *, VisVideoDepth)(): assertion `video != NULL' failed
libvisual CRITICAL: lv-tool-0.4: inp_portaudio_init(): PortAudio: Could not open input stream, error -9998 "Invalid number of channels".
libvisual CRITICAL: lv-tool-0.4: inp_portaudio_upload(): assertion `priv->stream != NULL' failed
from libvisual.
@ChrisScheffler thanks! Will need to look into the C++ errors and find a clean way to make the PortAudio code first try stereo and the fall back to mono. With the changes regarding OpenGL, did you still get a black window or a rotating plane of squares this time?
from libvisual.
@hartwork sorry, forgot the screenshot. The window is now filled with colored "bars" as expected.
from libvisual.
@ChrisScheffler that is plain awesome! 👍
from libvisual.
With the new version, I'm getting dozens of warnings (C++11 related, OpenGL deprecations and others) and ultimately an error:
~/Desktop/libvisual
+ lv_tool_env=(DYLD_LIBRARY_PATH="${LV_INSTALL_PREFIX}"/lib/)
+ exec env DYLD_LIBRARY_PATH=/Users/jan/Desktop/libvisual/INSTALL_PREFIX/lib/ /Users/jan/Desktop/libvisual/INSTALL_PREFIX/bin/lv-tool-0.4 --input portaudio
lv-tool - Libvisual 0.4.1 commandline tool - https://github.com/Libvisual/libvisual
Failed to start pipeline with actor 'lv_gltest' and input 'portaudio'
Let me know if you need the entire log (3181 lines)
PS: neither version will compile with root privileges
from libvisual.
@ChrisScheffler I made the PortAudio plugin fall back to mono now when stereo is not available, same branch. Could you give it a try?
@idleberg I did try with macOS 10.15 and its system Clang in the CI earlier, strange. If you could drag-n-drop the full log as a text file into a reply, that would rock (and be the easiest to look at). Alternatively, a <details>
tag would work well too. The log would allow seeing if plugins lv_gltest
and portaudio
were fully built.
PS: There should be no need for root with anything here, I made run-0.4-macos.sh
with that in mind, e.g. that's why I put DYLD_LIBRARY_PATH
in there. But maybe it needs adjustment (if the plugins are fully built). Could you share the output of find . -name \*lv_gltest.dy\*
?
from libvisual.
@idleberg PS: Got your e-mail just now.
from libvisual.
@hartwork with the new version of the plugin audio is captured from the microphone and visualized.
output:
lv-tool - Libvisual 0.4.1 commandline tool - https://github.com/Libvisual/libvisual
libvisual CRITICAL: lv-tool-0.4: visual_video_set_depth(): assertion `video != NULL' failed
libvisual CRITICAL: lv-tool-0.4: visual_video_set_depth(): assertion `video != NULL' failed
from libvisual.
@hartwork with the new version of the plugin audio is captured from the microphone and visualized.
@ChrisScheffler awesome!
lv-tool - Libvisual 0.4.1 commandline tool - https://github.com/Libvisual/libvisual libvisual CRITICAL: lv-tool-0.4: visual_video_set_depth(): assertion `video != NULL' failed libvisual CRITICAL: lv-tool-0.4: visual_video_set_depth(): assertion `video != NULL' failed
The assertion output is not specific to macOS and a known todo, but thanks.
from libvisual.
compiling branch
0.4.x-macos
with native clang fails for G-Force plugin (errors only):Compiler output
``` G-Force.cpp:345:4: error: no matching member function for call to 'Print' Print(_("WaveShape: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:347:4: error: no matching member function for call to 'Print' Print(_("ColorMap: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:349:4: error: no matching member function for call to 'Print' Print(_("DeltaField: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:353:5: error: no matching member function for call to 'Print' Print(_("Particles: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:374:4: error: no matching member function for call to 'Print' Print(_("Amplitude scale: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:381:4: error: no matching member function for call to 'Print' Print(_("Amplitude scale: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:388:5: error: no matching member function for call to 'Println' Println(_("Particles ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:390:5: error: no matching member function for call to 'Println' Println(_("Particles OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:412:5: error: no matching member function for call to 'Println' Println(_("Show names ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:414:5: error: no matching member function for call to 'Println' Println(_("Show names OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:420:5: error: no matching member function for call to 'Println' Println(_("Normalize ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:422:5: error: no matching member function for call to 'Println' Println(_("Normalize OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:435:5: error: no matching member function for call to 'Print' Print(_("Loading DeltaField: ")); ^~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:146:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Print( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:147:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Print( UtilStr* inStr ) { if ( inStr ) Print( inStr -> getCStr() ); } ^ G-Force.cpp:446:5: error: no matching member function for call to 'Println' Println(_("DeltaField slideshow ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:449:5: error: no matching member function for call to 'Println' Println(_("DeltaField slideshow OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:457:4: error: no matching member function for call to 'Println' Println(_("All slideshows ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:464:4: error: no matching member function for call to 'Println' Println(_("All slideshows OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:483:5: error: no matching member function for call to 'Println' Println(_("ColorMap slideshow ON")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ G-Force.cpp:486:5: error: no matching member function for call to 'Println' Println(_("ColorMap slideshow OFF")); ^~~~~~~ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:148:12: note: candidate function not viable: 1st argument ('const char *') would lose const qualifier void Println( char* inStr ); ^ ../../../../plugins/actor/G-Force/GForceCommon/Headers/G-Force.h:149:12: note: candidate function not viable: no known conversion from 'const char *' to 'UtilStr *' for 1st argument void Println( UtilStr* inStr ) { Println( inStr ? inStr -> getCStr() : 0 ); } ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] ```
@ChrisScheffler this^^ seems to be about const correctness. I believe that is fixed by 0c21b88 now, same branch. Can you confirm?
from libvisual.
@hartwork 6d93614 compiles without errors for clang and gcc11
from libvisual.
@ChrisScheffler perfect, thank you! 👍
from libvisual.
libvisual just entered Homebrew. Please be invited to try it on macOS for yourself:
brew install libvisual libvisual-plugins libvisual-projectm
lv-tool-0.4 --input portaudio # left click cycles through visual effects
from libvisual.
Related Issues (20)
- [0.4.x] Re-integrate or drop zombie plugins (that exist but are not being built) HOT 16
- Pass "double seconds_passed" to the acter rendering function? HOT 5
- MMX implementation of LV::Video's blit_overlay_alphasrc() is broken HOT 5
- Plans on release 0.4.2 (off branch 0.4.x, not master)
- Enable anti-aliasing for actor "lv_gltest"? HOT 6
- [0.4.x] Segfault in function blit_overlay_noalpha (lv_video.c)
- Enhancement of lv_analyzer HOT 6
- [0.4.x] Plugin "gforce": heap-use-after-free in method PixPort::Fade
- [0.4.x] Plugin "corona": heap-buffer-overflow in method Corona::genReflectedWaves HOT 4
- Support PipeWire HOT 4
- Port old GL code in actors to work with OpenGL 3.2+ core profiles HOT 9
- Throw out SIMD versions of memcpy and memset?
- Plugin (dancingparticles) - Signed integer overflows
- Provision Let's Encrypt certificate(s) for LV website
- [0.4.x] Plugin "gforce": severe warnings "no return statement in function returning non-void [-Wreturn-type]"
- [0.4.2] ./configure: 18070: Syntax error: word unexpected (expecting ")") HOT 8
- [0.4.2] [plugins] configure / bad substitution HOT 4
- RFE: port to `sdl2` HOT 4
- [REQ] Add a (GH-compliant) license file HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libvisual.