Hello Dan et. al.,

Apologies for duplication if this has been addressed before, but I didn't find it handled in the forum. I am (very) new to the DSP world and bought the BasicSynth book as a way to learn about it and ran into the following error running the provided makefile in the Src directory:

SynthFileU.cpp: In function ‘int SynthFileExists(const char*)’:
SynthFileU.cpp:189:23: error: no matching function for call to ‘stat::stat(const char*&, stat*)’
SynthFileU.cpp:189:23: note: candidates are:
/usr/include/x86_64-linux-gnu/bits/stat.h:46:8: note: stat::stat()
/usr/include/x86_64-linux-gnu/bits/stat.h:46:8: note:   candidate expects 0 arguments, 2 provided
/usr/include/x86_64-linux-gnu/bits/stat.h:46:8: note: stat::stat(const stat&)
/usr/include/x86_64-linux-gnu/bits/stat.h:46:8: note:   candidate expects 1 argument, 2 provided
make: ***  Error 1
make: ***  Error 2

After some searching I found the fix was to add the following line to SynthFileU.cpp:

#include <sys/stat.h>

which was not there previuosly.

I also needed to add the package libasound2-dev (for Debian|Ubuntu) to fix an error for a missing file

asoundlib.h

to successfully run make in the Src directory. The text did not mention that ALSA was needed to compile the source, and I am not sure if that kind of knowledge is presupposed by the text, I did not know of it (ALSA) myself. So it brought to mind the question, "How novice is the intended audience for BasicSynth?" Anyway, it seems to be working for me so far, so thanks for writing it in the first place.

Regards
David C.