Paulstretch2.0 compilation problem

Help
George
2009-04-28
2013-05-14
  • George
    George
    2009-04-28

    Hi Paul,
    I'm very excited to try paulstretch2.0 but get the following error when attempting to compile:

    ~/Downloads/source/paulstretch-2.0$ ./compile_linux_fftw.sh
    GUI.cxx: In member function ‘void GUI::cb_render_button_i(Fl_Button*, void*)’:
    GUI.cxx:449: warning: format not a string literal and no format arguments
    PAaudiooutput.cpp:27: error: expected constructor, destructor, or type conversion before ‘*’ token
    PAaudiooutput.cpp: In function ‘void PAaudiooutputinit(Player*, int)’:
    PAaudiooutput.cpp:40: error: ‘PaStreamCallback’ was not declared in this scope
    PAaudiooutput.cpp:40: error: expected primary-expression before ‘)’ token
    VorbisOutputS.cpp: In member function ‘bool VorbisOutputS::newfile(std::string, int, float)’:
    VorbisOutputS.cpp:46: warning: deprecated conversion from string constant to ‘char*’
    VorbisOutputS.cpp:46: warning: deprecated conversion from string constant to ‘char*’
    Input/MP3InputS.cpp: In member function ‘virtual int MP3InputS::read(int, short int*)’:
    Input/MP3InputS.cpp:114: error: ‘memmove’ was not declared in this scope

    Are you able to assist?

    Many thanks,

    George

     
  • Lefty O'Hara
    Lefty O'Hara
    2009-09-21

    For the GUI.cxx, these are just warnings.  I hate to proceed with even warnings myself, but they seem not to be a problem ultimately.

    For the PAaudiooutput.cpp error, you need to install portaudio dev libraries v1.9.  I had 2.0 by default on my Ubuntu 9.04 install and they weren't called correctly.

    VorbisOutputS.cpp is a warning, same comment as GUI.cxx.

    Input/P3InputS.cpp err is from a string memory alloc include not being in the workspace.  Add #include <string.h>, the old c version, to the MP3InputS.h file just after <string> (the cpp standard library version> and it will compile.  Maybe this will be done better some day with a c++ standard library reference.

    That's all I know … Hope it works.

    Duncan

     
  • plotek
    plotek
    2010-02-22

    HI!

    Fantastic software work! :-)

    I'm trying now right to compile paulstretch2.0 in my Debian Lenny distribution, I followed the instructions of Readme.txt, but i get some errors:

    In file included from Control.h:25,
                     from GUI.h:13,
                     from GUI.cxx:3:
    Input/MP3InputS.h:23:17: error: mad.h: No such file or directory
    In file included from ProcessedStretch.h:24,
                     from Control.h:28,
                     from GUI.h:13,
                     from GUI.cxx:3:
    Stretch.h:25:19: error: fftw3.h: No such file or directory
    In file included from Control.h:25,
                     from GUI.h:13,
                     from GUI.cxx:3:
    Input/MP3InputS.h:40: error: mad_fixed_t has not been declared
    Input/MP3InputS.h:44: error: field stream has incomplete type
    Input/MP3InputS.h:45: error: field frame has incomplete type
    Input/MP3InputS.h:46: error: field synth has incomplete type
    In file included from ProcessedStretch.h:24,
                     from Control.h:28,
                     from GUI.h:13,
                     from GUI.cxx:3:
    Stretch.h:47: error: fftwf_plan does not name a type
    In file included from Control.h:25,
                     from FreeEditUI.h:12,
                     from FreeEditUI.cxx:3:
    Input/MP3InputS.h:23:17: error: mad.h: No such file or directory
    In file included from ProcessedStretch.h:24,
                     from Control.h:28,
                     from FreeEditUI.h:12,
                     from FreeEditUI.cxx:3:
    Stretch.h:25:19: error: fftw3.h: No such file or directory
    In file included from Control.h:25,
                     from FreeEditUI.h:12,
                     from FreeEditUI.cxx:3:
    Input/MP3InputS.h:40: error: mad_fixed_t has not been declared
    Input/MP3InputS.h:44: error: field stream has incomplete type
    Input/MP3InputS.h:45: error: field frame has incomplete type
    Input/MP3InputS.h:46: error: field synth has incomplete type
    In file included from ProcessedStretch.h:24,
                     from Control.h:28,
                     from FreeEditUI.h:12,
                     from FreeEditUI.cxx:3:
    Stretch.h:47: error: fftwf_plan does not name a type
    In file included from Control.h:25,
                     from Control.cpp:21:
    Input/MP3InputS.h:23:17: error: mad.h: No such file or directory
    In file included from ProcessedStretch.h:24,
                     from Control.h:28,
                     from Control.cpp:21:
    Stretch.h:25:19: error: fftw3.h: No such file or directory
    In file included from Control.h:25,
                     from Control.cpp:21:
    Input/MP3InputS.h:40: error: mad_fixed_t has not been declared
    Input/MP3InputS.h:44: error: field stream has incomplete type
    Input/MP3InputS.h:45: error: field frame has incomplete type
    Input/MP3InputS.h:46: error: field synth has incomplete type
    In file included from ProcessedStretch.h:24,
                     from Control.h:28,
                     from Control.cpp:21:
    Stretch.h:47: error: fftwf_plan does not name a type
    In file included from Player.h:24,
                     from PAaudiooutput.h:24,
                     from PAaudiooutput.cpp:22:
    Input/MP3InputS.h:23:17: error: mad.h: No such file or directory
    In file included from ProcessedStretch.h:24,
                     from Player.h:25,
                     from PAaudiooutput.h:24,
                     from PAaudiooutput.cpp:22:
    Stretch.h:25:19: error: fftw3.h: No such file or directory
    In file included from Player.h:24,
                     from PAaudiooutput.h:24,
                     from PAaudiooutput.cpp:22:
    Input/MP3InputS.h:40: error: mad_fixed_t has not been declared
    Input/MP3InputS.h:44: error: field stream has incomplete type
    Input/MP3InputS.h:45: error: field frame has incomplete type
    Input/MP3InputS.h:46: error: field synth has incomplete type
    In file included from ProcessedStretch.h:24,
                     from Player.h:25,
                     from PAaudiooutput.h:24,
                     from PAaudiooutput.cpp:22:
    Stretch.h:47: error: fftwf_plan does not name a type
    PAaudiooutput.cpp:27: error: expected constructor, destructor, or type conversion before * token
    PAaudiooutput.cpp: In function void PAaudiooutputinit(Player*, int):
    PAaudiooutput.cpp:40: error: PaStreamCallback was not declared in this scope
    PAaudiooutput.cpp:40: error: expected primary-expression before ) token
    In file included from Player.h:24,
                     from Player.cpp:22:
    Input/MP3InputS.h:23:17: error: mad.h: No such file or directory
    In file included from ProcessedStretch.h:24,
                     from Player.h:25,
                     from Player.cpp:22:
    Stretch.h:25:19: error: fftw3.h: No such file or directory
    In file included from Player.h:24,
                     from Player.cpp:22:
    Input/MP3InputS.h:40: error: mad_fixed_t has not been declared
    Input/MP3InputS.h:44: error: field stream has incomplete type
    Input/MP3InputS.h:45: error: field frame has incomplete type
    Input/MP3InputS.h:46: error: field synth has incomplete type
    In file included from ProcessedStretch.h:24,
                     from Player.h:25,
                     from Player.cpp:22:
    Stretch.h:47: error: fftwf_plan does not name a type
    In file included from ProcessedStretch.h:24,
                     from ProcessedStretch.cpp:21:
    Stretch.h:25:19: error: fftw3.h: No such file or directory
    In file included from ProcessedStretch.h:24,
                     from ProcessedStretch.cpp:21:
    Stretch.h:47: error: fftwf_plan does not name a type
    In file included from Stretch.cpp:19:
    Stretch.h:25:19: error: fftw3.h: No such file or directory
    In file included from Stretch.cpp:19:
    Stretch.h:47: error: fftwf_plan does not name a type
    Stretch.cpp: In constructor FFT::FFT(int):
    Stretch.cpp:29: error: printf was not declared in this scope
    Stretch.cpp:45: error: planfftw was not declared in this scope
    Stretch.cpp:45: error: FFTW_R2HC was not declared in this scope
    Stretch.cpp:45: error: FFTW_ESTIMATE was not declared in this scope
    Stretch.cpp:45: error: fftwf_plan_r2r_1d was not declared in this scope
    Stretch.cpp:46: error: planifftw was not declared in this scope
    Stretch.cpp:46: error: FFTW_HC2R was not declared in this scope
    Stretch.cpp: In destructor FFT::~FFT():
    Stretch.cpp:63: error: planfftw was not declared in this scope
    Stretch.cpp:63: error: fftwf_destroy_plan was not declared in this scope
    Stretch.cpp:64: error: planifftw was not declared in this scope
    Stretch.cpp: In member function void FFT::smp2freq():
    Stretch.cpp:74: error: planfftw was not declared in this scope
    Stretch.cpp:74: error: fftwf_execute was not declared in this scope
    Stretch.cpp: In member function void FFT::freq2smp():
    Stretch.cpp:111: error: planifftw was not declared in this scope
    Stretch.cpp:111: error: fftwf_execute was not declared in this scope
    Stretch.cpp: In member function void Stretch::process(float*, int):
    Stretch.cpp:194: error: printf was not declared in this scope
    VorbisOutputS.cpp: In member function bool VorbisOutputS::newfile(std::string, int, float):
    VorbisOutputS.cpp:46: warning: deprecated conversion from string constant to char*
    VorbisOutputS.cpp:46: warning: deprecated conversion from string constant to char*
    In file included from Input/MP3InputS.cpp:23:
    Input/MP3InputS.h:23:17: error: mad.h: No such file or directory
    In file included from Input/MP3InputS.cpp:23:
    Input/MP3InputS.h:40: error: mad_fixed_t has not been declared
    Input/MP3InputS.h:44: error: field stream has incomplete type
    Input/MP3InputS.h:45: error: field frame has incomplete type
    Input/MP3InputS.h:46: error: field synth has incomplete type
    Input/MP3InputS.cpp: In member function virtual bool MP3InputS::open(std::string):
    Input/MP3InputS.cpp:48: error: stream was not declared in this scope
    Input/MP3InputS.cpp:48: error: mad_stream_init was not declared in this scope
    Input/MP3InputS.cpp:49: error: frame was not declared in this scope
    Input/MP3InputS.cpp:49: error: mad_frame_init was not declared in this scope
    Input/MP3InputS.cpp:50: error: synth was not declared in this scope
    Input/MP3InputS.cpp:50: error: mad_synth_init was not declared in this scope
    Input/MP3InputS.cpp: In member function virtual void MP3InputS::close():
    Input/MP3InputS.cpp:77: error: synth was not declared in this scope
    Input/MP3InputS.cpp:77: error: mad_synth_finish was not declared in this scope
    Input/MP3InputS.cpp:78: error: frame was not declared in this scope
    Input/MP3InputS.cpp:78: error: mad_frame_finish was not declared in this scope
    Input/MP3InputS.cpp:79: error: stream was not declared in this scope
    Input/MP3InputS.cpp:79: error: mad_stream_finish was not declared in this scope
    Input/MP3InputS.cpp: In member function virtual int MP3InputS::read(int, short int*):
    Input/MP3InputS.cpp:99: error: synth was not declared in this scope
    Input/MP3InputS.cpp:112: error: stream was not declared in this scope
    Input/MP3InputS.cpp:114: error: memmove was not declared in this scope
    Input/MP3InputS.cpp:123: error: stream was not declared in this scope
    Input/MP3InputS.cpp:123: error: mad_stream_buffer was not declared in this scope
    Input/MP3InputS.cpp:125: error: frame was not declared in this scope
    Input/MP3InputS.cpp:125: error: mad_frame_decode was not declared in this scope
    Input/MP3InputS.cpp:126: error: MAD_ERROR_BUFLEN was not declared in this scope
    Input/MP3InputS.cpp:127: error: MAD_ERROR_LOSTSYNC was not declared in this scope
    Input/MP3InputS.cpp:129: error: MAD_RECOVERABLE was not declared in this scope
    Input/MP3InputS.cpp:135: error: synth was not declared in this scope
    Input/MP3InputS.cpp:135: error: frame was not declared in this scope
    Input/MP3InputS.cpp:135: error: mad_synth_frame was not declared in this scope
    Input/MP3InputS.cpp: In member function void MP3InputS::convertsmps(int, short int*, int):
    Input/MP3InputS.cpp:156: error: mad_fixed_t was not declared in this scope
    Input/MP3InputS.cpp:156: error: l was not declared in this scope
    Input/MP3InputS.cpp:156: error: synth was not declared in this scope
    Input/MP3InputS.cpp:156: error: r was not declared in this scope
    Input/MP3InputS.cpp: At global scope:
    Input/MP3InputS.cpp:166: error: short int MP3InputS::madpcm2short is not a static member of class MP3InputS
    Input/MP3InputS.cpp:166: error: mad_fixed_t was not declared in this scope
    Input/MP3InputS.cpp:166: error: expected , or ; before { token
    

    Maybe I'm missing any dependencies? Thanks on advance for the help.

     
  • plotek
    plotek
    2010-02-22

    Sorry for the vast string above.

    I fix most of this problems simply installing the appropriate dependencies:

    # apt-get install libmad0-dev libfftw3-dev portaudio19-dev

    After that I was about to compile, but I've stopped in a similar situation of gcostanza1939,  getting the following errors:

    VorbisOutputS.cpp: In member function bool VorbisOutputS::newfile(std::string, int, float):
    VorbisOutputS.cpp:46: warning: deprecated conversion from string constant to char*
    VorbisOutputS.cpp:46: warning: deprecated conversion from string constant to char*
    Input/MP3InputS.cpp: In member function virtual int MP3InputS::read(int, short int*):
    Input/MP3InputS.cpp:114: error: memmove was not declared in this scope
    

    Re-reading the explanation of catreus user,  I installed on my system the compiler g++ on version 4.2:

    # apt-get install g++-4.2-multilib

    and I've replaced in the compilation script the g++ string by g++-4.2.

    Once done compilation process  work fine and now right I work with this fantastic tool.

    Thanks so much.

     
  • osterchrisi
    osterchrisi
    2010-06-21

    Hi!

    I think you need to add "fluid" also to the dependencies. With fltk alone it didn't work with me to compile on Ubuntu Studio 64 Lucid Lynx.  After installing fluid itself, it worked!
    Thanks a lot for this nice program!!!