libpd / abl_link

Ableton Link integration for Pure Data on desktop and Android.
Other
80 stars 15 forks source link

abl_link crashes Pd on raspberryPi #15

Closed Ant1r closed 3 years ago

Ant1r commented 7 years ago

build (on Raspbian) is successful; running "pd -lib abl_link~" is OK (and prints "setting up abl_link~" to Pd console), while creating [abl_link~] terminates Pd and prints to stderr:

pure virtual method called
terminate called without an active exception
Pd: signal 6
pure virtual method called
terminate called recursively

However LinkHut works normally (excepting build needs removing "std::defaultfloat" manipulator which is unsupported by g++4.9).

Ant1r commented 6 years ago

@nettoyeurny Any clues on that? I just don't know where to search... I tried to replace AblLinkWrapper's members (link, timeline and time_filter) with pointer versions, and to dynamically create them in constructor, and the error clearly happens at "link" creation, e.g, changing: link = new ableton::Link(bpm); to link = NULL; clears the error.

chrisbeckstrom commented 6 years ago

Any updates on this issue? Same thing appears to be happening on my Raspbian system.

nettoyeurny commented 6 years ago

Sorry, @Ant1r, this issue totally slipped through the cracks, until I went back to abl_link~ to update it for Link 3.0.

What you're posting here suggests that the Link constructor attempts to call a pure virtual method. As far as I can tell, the only pure virtual methods (outside of tests) are in the asio-standalone submodule. This suggests that asio isn't being built correctly on Raspberry Pi. The fact that LinkHut works shows that asio can be built on Raspberry Pi.

So, here's a wild guess: Chances are that asio uses conditional compilation a lot, and that the Makefile of abl_link~ fails to set some flag, resulting in a pure virtual method remaining unimplemented. I would have cmake dump all its compiler invocations with all their options, then see which of them are wrong or missing when building abl_link~.

Ant1r commented 6 years ago

Thanks @nettoyeurny for answer. I will try your suggestion as soon as possible (i currently don't have a pi).

BTW : do you know why asio is needed for abl_link? Isn't it related to sound card drivers?

nettoyeurny commented 6 years ago

Yes, the presence of Asio confused me, too. Turns out that this isn't ASIO, the sound card driver protocol, but Asio, the network library: https://think-async.com/Asio

Ant1r commented 6 years ago

OK, much more understandable now, thx!

danomatika commented 3 years ago

Is this still an issue? We just updated to Link 3.0.3, so perhaps it's something fixed in upstream?