FreeBSD port of MuseScore

• Jul 30, 2011 - 14:49

Hi!

Just wanted to report that I have working FreeBSD port of MuseScore.

Here's a little patch to the build system which reorders includes a bit and which may be useful for other systems.
http://people.freebsd.org/~amdmi3/musescore.patch

it solves build problem when portaudio18 is installed as well. At least on FreeBSD its portaudio.h is installed into root include directory, so with original include ordering, resulting paths

-I/usr/local/include (from ALSA) -I/usr/local/include/portaudio2 (portaudio)

make wrong portaudio.h included.

I'm not really into music, so I can't test all features, but the application seem to work. The main problem is sound output - ALSA is not native to FreeBSD, and though there's some kind of ALSA implementation, I couldn't get it to work:

ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
init ALSA driver failed
init audio driver failed
sequencer init failed

not sure why it's looking for /dev/snd/seq while "Use internal synthesizer" is enabled in preferences->I/O and as far as I understand it should only require raw PCM output. Portaudio doesn't work as well (Api: and Device: list are just empty, no relevant messages in the stderr).

Anyway, JACK output works (with internal synthesizer) and actually plays sound. A little bug I've noticed - when MuseScore is closed with Ctrl+Q while audio is playing, it (as it seems) won't clearly shutdown JACK connection and looped buffer will play infinitely after the program quits.

The port is almost complete and I think of committing it to the official FreeBSD ports tree after some tweaks. The things I don't really like are that script bindings conflict with qtscriptgenerator. (shouldn't MuseScore depend on the former instead? or at least install its binding to some local directory; or those are compatible and I can disable BUILD_SCRIPTGEN, install qtscriptgenerator and it will work?) and that system CXXFLAGS are overridden all over CMakeLists, e.g.:

set(CMAKE_CXX_FLAGS "-g -Wall -Wextra -Winvalid-pch -DQT_STATICPLUGIN")

I suggest to turn that into

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Winvalid-pch -DQT_STATICPLUGIN")

and move -g into CMAKE_CXX_FLAGS_DEBUG where it really belongs. Can make a patch if needed.

Thanks for the great software!

Do you still have an unanswered question? Please log in first to post your question.