I tried to compile v1.2 on Ubuntu 7.10 with an AMD64 cpu. I get this error message when trying to build:
$ make
cd audioio/ && make -f Makefile
make[1]: Entering directory `/home/nhilton/download/sonic-visualiser-1.2/audioio'
g++ -c -pipe -D'RUBBERBAND_VERSION="1.0"' -D'FFTW3F_VERSION="3.1.2"' -D'SAMPLERATE_VERSION="0.1.2"' -D'JACK_VERSION="0.103.0"' -O2 -DNDEBUG -DNO_TIMING -O3 -march=pentium3 -msse -mmmx -DBUILD_RELEASE -D'SVNREV="exported"' -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_RUBBERBAND -DHAVE_FFTW3F -DHAVE_SAMPLERATE -DHAVE_JACK -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -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/AudioCallbackPlaySource.o AudioCallbackPlaySource.cpp
AudioCallbackPlaySource.cpp:1: error: CPU you selected does not support x86-64 instruction set
AudioCallbackPlaySource.cpp:1: error: CPU you selected does not support x86-64 instruction set
make[1]: *** [tmp_obj/AudioCallbackPlaySourc-march=pentium3e.o] Error 1
make[1]: Leaving directory `/home/nhilton/download/sonic-visualiser-1.2/audioio'
make: *** [sub-audioio-make_default] Error 2
It looks like file "sv.prf" assumes pentium cpu.
After removing the -march=pentium3 in sv.prf I still get these errors:
$ make
cd audioio/ && make -f Makefile
make[1]: Entering directory `/home/nhilton/download/sonic-visualiser-1.2/audioio'
g++ -c -pipe -D'RUBBERBAND_VERSION="1.0"' -D'FFTW3F_VERSION="3.1.2"' -D'SAMPLERATE_VERSION="0.1.2"' -D'JACK_VERSION="0.103.0"' -O2 -DNDEBUG -DNO_TIMING -O3 -msse -mmmx -DBUILD_RELEASE -D'SVNREV="exported"' -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_RUBBERBAND -DHAVE_FFTW3F -DHAVE_SAMPLERATE -DHAVE_JACK -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -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:63: error: expected ‘,’ or ‘...’ before ‘*’ token
AudioPortAudioTarget.h:64: error: ISO C++ forbids declaration of ‘PaStreamCallbackTimeInfo’ with no type
AudioPortAudioTarget.h:67: error: expected ‘,’ or ‘...’ before ‘*’ token
AudioPortAudioTarget.h:68: error: ISO C++ forbids declaration of ‘PaStreamCallbackTimeInfo’ with no type
AudioPortAudioTarget.cpp: In constructor ‘AudioPortAudioTarget::AudioPortAudioTarget(AudioCallbackPlaySource*)’:
AudioPortAudioTarget.cpp:66: error: ‘PaStreamParameters’ was not declared in this scope
AudioPortAudioTarget.cpp:66: error: expected `;' before ‘op’
AudioPortAudioTarget.cpp:67: error: ‘op’ was not declared in this scope
AudioPortAudioTarget.cpp:67: error: ‘Pa_GetDefaultOutputDevice’ was not declared in this scope
AudioPortAudioTarget.cpp:73: error: ‘paFramesPerBufferUnspecified’ was not declared in this scope
AudioPortAudioTarget.cpp:97: error: expected initializer before ‘*’ token
AudioPortAudioTarget.cpp:98: error: ‘info’ was not declared in this scope
AudioPortAudioTarget.cpp: In member function ‘virtual double AudioPortAudioTarget::getCurrentTime() const’:
AudioPortAudioTarget.cpp:175: error: ‘Pa_GetStreamTime’ was not declared in this scope
AudioPortAudioTarget.cpp: At global scope:
AudioPortAudioTarget.cpp:191: error: expected ‘,’ or ‘...’ before ‘*’ token
AudioPortAudioTarget.cpp:192: 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:194: error: ‘data’ was not declared in this scope
AudioPortAudioTarget.cpp:195: error: ‘timeInfo’ was not declared in this scope
AudioPortAudioTarget.cpp:196: error: ‘flags’ was not declared in this scope
AudioPortAudioTarget.cpp: At global scope:
AudioPortAudioTarget.cpp:192: warning: unused parameter ‘PaStreamCallbackTimeInfo’
AudioPortAudioTarget.cpp:215: error: expected ‘,’ or ‘...’ before ‘*’ token
AudioPortAudioTarget.cpp:216: error: ISO C++ forbids declaration of ‘PaStreamCallbackTimeInfo’ with no type
AudioPortAudioTarget.cpp:216: warning: unused parameter ‘PaStreamCallbackTimeInfo’
../base/RingBuffer.h: In destructor ‘RingBuffer<T, N>::~RingBuffer() [with T = float, int N = 1]’:
AudioCallbackPlaySource.h:271: 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/nhilton/download/sonic-visualiser-1.2/audioio'
make: *** [sub-audioio-make_default] Error 2
because Ubuntu 7.10 has portaudio V18, but sonic visualizer uses V19 by default. The build system should detect this and declare the correct macro.
After adding -DHAVE_PORTAUDIO_V18 to sv.prf CXXFLAGS I get this error:
$ make
cd audioio/ && make -f Makefile
make[1]: Entering directory `/home/nhilton/download/sonic-visualiser-1.2/audioio'
g++ -c -pipe -D'RUBBERBAND_VERSION="1.0"' -D'FFTW3F_VERSION="3.1.2"' -D'SAMPLERATE_VERSION="0.1.2"' -D'JACK_VERSION="0.103.0"' -O2 -DNDEBUG -DNO_TIMING -O3 -msse -mmmx -DHAVE_PORTAUDIO_V18 -DBUILD_RELEASE -D'SVNREV="exported"' -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_RUBBERBAND -DHAVE_FFTW3F -DHAVE_SAMPLERATE -DHAVE_JACK -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -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.cpp: In member function ‘virtual double AudioPortAudioTarget::getCurrentTime() const’:
AudioPortAudioTarget.cpp:175: error: ‘Pa_GetStreamTime’ was not declared in this scope
AudioPortAudioTarget.cpp: At global scope:
AudioPortAudioTarget.cpp:210: warning: unused parameter ‘inputBuffer’
../base/RingBuffer.h: In destructor ‘RingBuffer<T, N>::~RingBuffer() [with T = float, int N = 1]’:
AudioCallbackPlaySource.h:271: 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/nhilton/download/sonic-visualiser-1.2/audioio'
make: *** [sub-audioio-make_default] Error 2
Has anybody compiled sonic visualiser on AMD64?
Logged In: YES
user_id=13489
Originator: NO
I finally got around to installing a 64-bit operating system on my 64-bit computer a little while ago, so I do use SV on 64-bit routinely now. You're quite right about the stupid default in sv.prf -- that should not be there.
Apart from that, you should just need to install the portaudio19-dev package. PAv18 support in SV is not really tested any more (as you discovered!) and will probably be removed for the next release.
Chris