I'm running gentoo on amd64. Gentoo provides an ebuild, which succeeds to build but always tells me, when I open a file:
Could not open an audio device for playback.
Audio playback will not be available during this session.
So I tried to build straight from the SVN trunk. First, I had to change the -march in sv.prf to athlon64 instead of pentium-m. Here's a diff of the change I made:
Index: sv.prf
===================================================================
--- sv.prf (revision 919)
+++ sv.prf (working copy)
@@ -10,7 +10,7 @@
# (Don't use -ffast-math -- it does make things faster, but it
# prevents isnan and isinf from working, and we need those.)
#
-linux-g++:QMAKE_CXXFLAGS_RELEASE += -DNDEBUG -DNO_TIMING -O3 -march=pentium-m -msse -msse2 -msse3 -mmmx
+linux-g++:QMAKE_CXXFLAGS_RELEASE += -DNDEBUG -DNO_TIMING -O3 -march=athlon64 -msse -msse2 -msse3 -mmmx
# QMAKE_CXXFLAGS_RELEASE += -O3 -march=pentium4 -mfpmath=sse -msse -msse2 -ffast-math -fomit-frame-pointer
# QMAKE_CXXFLAGS_RELEASE += -O3 -march=athlon-mp -mfpmath=sse -fomit-frame-pointer
After that change, run qmake -recursive to rebuild the makefiles. But there is still a compilation error, and I'm stuck here.
dave@george ~/devel/sonic-visualiser> make
cd audioio/ && make -f Makefile
make[1]: Entering directory `/home/dave/devel/sonic-visualiser/audioio'
g++ -c -pipe -D'FFTW3F_VERSION="3.1.2"' -D'SAMPLERATE_VERSION="0.1.2"' -D'JACK_VERSION="0.103.0"' -march=athlon64 -O2 -pipe -ggdb -DNDEBUG -DNO_TIMING -O3 -march=athlon64 -msse -msse2 -msse3 -mmmx -DBUILD_RELEASE -D'SVNREV="919M"' -Wall -W -D_REENTRANT -fPIC -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_FFTW3F -DHAVE_SAMPLERATE -DHAVE_JACK -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.. -Itmp_moc -I. -o tmp_obj/AudioPortAudioTarget.o AudioPortAudioTarget.cpp
AudioPortAudioTarget.h:61: error: expected ',' or '...' before '*' token
AudioPortAudioTarget.h:62: error: ISO C++ forbids declaration of 'PaStreamCallbackTimeInfo' with no type
AudioPortAudioTarget.h:65: error: expected ',' or '...' before '*' token
AudioPortAudioTarget.h:66: error: ISO C++ forbids declaration of 'PaStreamCallbackTimeInfo' with no type
AudioPortAudioTarget.cpp: In constructor 'AudioPortAudioTarget::AudioPortAudioTarget(AudioCallbackPlaySource*)':
AudioPortAudioTarget.cpp:68: error: invalid conversion from 'int (*)(const void*, void*, long unsigned int, int)' to 'long unsigned int'
AudioPortAudioTarget.cpp:68: error: cannot convert 'AudioPortAudioTarget* const' to 'int (*)(void*, void*, long unsigned int, PaTimestamp, void*)' for argument '8' to 'PaError Pa_OpenDefaultStream(PortAudioStream**, int, int, PaSampleFormat, double, long unsigned int, long unsigned int, int (*)(void*, void*, long unsigned int, PaTimestamp, void*), void*)'
AudioPortAudioTarget.cpp:79: error: expected initializer before '*' token
AudioPortAudioTarget.cpp:80: error: 'info' was not declared in this scope
AudioPortAudioTarget.cpp: At global scope:
AudioPortAudioTarget.cpp:161: error: expected ',' or '...' before '*' token
AudioPortAudioTarget.cpp:162: error: ISO C++ forbids declaration of 'PaStreamCallbackTimeInfo' with no type
AudioPortAudioTarget.cpp: In static member function 'static int AudioPortAudioTarget::processStatic(const void*, void*, long unsigned int, int)':
AudioPortAudioTarget.cpp:164: error: 'data' was not declared in this scope
AudioPortAudioTarget.cpp:165: error: 'timeInfo' was not declared in this scope
AudioPortAudioTarget.cpp:166: error: 'flags' was not declared in this scope
AudioPortAudioTarget.cpp: At global scope:
AudioPortAudioTarget.cpp:162: warning: unused parameter 'PaStreamCallbackTimeInfo'
AudioPortAudioTarget.cpp:185: error: expected ',' or '...' before '*' token
AudioPortAudioTarget.cpp:186: error: ISO C++ forbids declaration of 'PaStreamCallbackTimeInfo' with no type
AudioPortAudioTarget.cpp:186: warning: unused parameter 'PaStreamCallbackTimeInfo'
../base/RingBuffer.h: In destructor 'RingBuffer<T, N>::~RingBuffer() [with T = float, int N = 1]':
AudioCallbackPlaySource.h:265: instantiated from here
../base/RingBuffer.h:201: warning: right-hand operand of comma has no effect
make[1]: *** [tmp_obj/AudioPortAudioTarget.o] Error 1
make[1]: Leaving directory `/home/dave/devel/sonic-visualiser/audioio'
make: *** [sub-audioio-make_default] Error 2
Any advice?