Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile/Install Documentation #16

Open
jofemodo opened this issue Oct 16, 2018 · 11 comments
Open

Compile/Install Documentation #16

jofemodo opened this issue Oct 16, 2018 · 11 comments

Comments

@jofemodo
Copy link
Contributor

jofemodo commented Oct 16, 2018

There is no documentation about compiling/installing the project. Please, could you give some guidance about how to build the project?

I've compiled and installed the last version of Faust and tried to compile the project, but i get:

include/foo-yc20.h:36:29: fatal error: faust/audio/dsp.h: No such file or directory
 #include <faust/audio/dsp.h>

It seems that the installed Faust version doesn't fit the required file/directory struct. The file "dsp.h" is not in the "audio" directory but in the "dsp" directory (faust/dsp/dsp.h).

What Faust version should be used? Etc.

Thanks!

@jofemodo
Copy link
Contributor Author

jofemodo commented Oct 16, 2018

I modified the include line in "include/foo-yc20.h" like that:

#include <faust/dsp/dsp.h>

Then it started compiling and progressed a little bit, giving this error:

src/main-gui.cpp: In function ‘int main(int, char**)’:
src/main-gui.cpp:85:11: error: cannot declare variable ‘processor’ to be of abstract type ‘YC20Jack’
  YC20Jack processor;

??? I'm lost here ... ;-)

@sampov2
Copy link
Owner

sampov2 commented Oct 16, 2018

The documentation indeed is lacking. You might find some clues in the Semaphore CI build configuration: https://semaphoreci.com/sampov2/foo-yc20

Also, did you try compiling the master version or an earlier release?

@jofemodo
Copy link
Contributor Author

OK! It's difficult to get useful information from there, as it uses a docker image. Anyway, i will read it carefully ;-)

And yes, I tried to compile the master version, of course ;-)

@jofemodo
Copy link
Contributor Author

Hi @sampov2 & @jpcima !

I'm trying to compile in debian jessie/stretch and it's really difficult to figure how to solve the building problems.

Please, could some of you give some tips for compiling the source code?
What is needed? What faust version? etc.

Thanks a lot!

@jpcima
Copy link
Collaborator

jpcima commented Oct 23, 2018

Hello @jofemodo.

This build needs headers from faust 0.9.73. (located in the archive as faust-0.9.73/architecture/faust)

To explain more, I have made faust2 compatibility in a personal fork and found it slower, hence why I never submitted the work and preferred staying on the old one.

Now a problem is that the faust 1 branch is decreasingly available in OS packages, so compatibility problems are sure to happen. I don't really have an idea for a solution to make all users happy about this.

You can unpack the said archive in sources and edit Makefile to point the include path at the directory indicated (eg -Ifaust-0.9.73/architecture)

@jofemodo
Copy link
Contributor Author

OK guys! Thanks a lot!

It compiled successfully, with no error or warnings. I did it for AMD64 platform and it worked perfectly. Sound is nice and everything works OK.

Then, i tried to compile for Raspberry Pi v3 (ARM Cortex A-9 with FP Neon v8). It compiled perfectly, without errors or warnings, but the sound is wrong. It seems that the audio processing is broken in many ways, as the notes holds-on forever and the sound is really ugly. I'm trying with different compiling/optimization options, but with no luck until now ...

Some ideas?

Thanks!

@jpcima
Copy link
Collaborator

jpcima commented Oct 23, 2018

I have absolutely no idea about this, sorry.

@jofemodo
Copy link
Contributor Author

OK! Thanks!
It works when compiled without any optimization or platform-specific option. It's a good starting point, although some optimization is needed because CPU load is too high and got too many XRUNs with jackd.

@jofemodo
Copy link
Contributor Author

Hi @sampov2 & @jpcima!

I've tuned the compilation and got a working binary with an acceptable CPU load: around 55-60% in a RBPi 3 B+, using only one core, of course. This is enough by now.

@jofemodo jofemodo reopened this Oct 24, 2018
@jofemodo
Copy link
Contributor Author

I've written a little script for building the foo-yc20 for the ZynthianOS (RBPi):

https://github.com/zynthian/zynthian-sys/blob/master/scripts/recipes/install_foo-yc20.sh

@Baggypants
Copy link

Baggypants commented Nov 24, 2019

foo-yc20 seems to work perfectly fine on the pi4 by the way. Here is a recording, (let's say I was drunk ok?) https://discourse.zynthian.org/t/new-features-sub-snapshots-setbfree-keyboard-splits-combo-organ-model-and-more/2438/49?u=baggypants

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants