openAVproductions / openAV-Sorcer

A wavetable LV2 plugin synth, targeted at the electronic / dubstep genre.
GNU General Public License v3.0
77 stars 10 forks source link

cannot build main.dsp with Faust 0.9.90 (or 2.5.x) #22

Open rekado opened 5 years ago

rekado commented 5 years ago

With Faust 0.9.90 main.dsp cannot be compiled to main.cpp.

I used to use this command to compile main.cpp with Faust 0.9.67:

faust -i -a lv2synth.cpp -o main.cpp main.dsp

Faust 0.9.90 no longer provides lv2synth.cpp; it provides lv2.cpp or lv2ui.cpp, but when using either of these architecture files Faust complains about redefined symbols:

filter.lib:1904: ERROR: redefinition of symbols are not allowed : BoxIdent[levelfilter] is already defined in file "filter.lib" line 1904 
filter.lib:1912: WARNING: equivalent re-definitions of BoxIdent[levelfilterN]
filter.lib:933: WARNING: equivalent re-definitions of BoxIdent[apnl]
filter.lib:434: WARNING: equivalent re-definitions of BoxIdent[TF2]
effect.lib:22: WARNING: equivalent re-definitions of BoxIdent[log2]
music.lib:52: ERROR: redefinition of symbols are not allowed : BoxIdent[frac] is already defined in file "music.lib" line 52 
music.lib:252: ERROR: redefinition of symbols are not allowed : BoxIdent[decimal] is already defined in file "music.lib" line 252 
music.lib:478: WARNING: equivalent re-definitions of BoxIdent[chebychev]
music.lib:492: WARNING: equivalent re-definitions of BoxIdent[chebychevpoly]
oscillator.lib:231: WARNING: equivalent re-definitions of BoxIdent[diffn]

AIUI music.lib should no longer be used and all other libraries should be referenced via library("name") instead of import("name").

harryhaaren commented 5 years ago

Hey @rekado, thanks for reporting. Correct - in order to move FAUST forward and continue to improve the language itself, it has been necessary for the FAUST developers to move/rename/refactor parts of the language, which results .dsp code becoming outdated and no longer working.

I've not tested the 0.9.90 code (or any recent releases..) so this breakage (although unfortunate) can be expected. Going by the FAUST github, they're working more actively on FAUST 2.x series: https://github.com/grame-cncm/faust/releases

Would you think it best to fixup Sorcer for the 2.x FAUST branch or do you have a specific reason that 0.9.90 branch is the target?

Regards, -Harry

rekado commented 5 years ago

Hey Harry,

I think it would be best to use the latest version of Faust (2.5.23). I just mentioned Faust 0.9.90 because it is the last release of Faust 1 and it is still used by other projects.

Cheers, Ricardo