brummer10 / GxFaustSources

This are the faust source files used to build the GxPlugins, generated by dkbuilder
GNU General Public License v3.0
2 stars 2 forks source link

*_table.h files don't compile #1

Open alikthename opened 5 years ago

alikthename commented 5 years ago

tried to compile those nice dsp files for supercollider. So far faust2supercollider returns outputs like this for all of them starting with " expected initializer before ‘__rt_data’ ":

mnt/3/src/gxplugs/GxFaustSources-master/boobtube$ faust2supercollider boobtube.dsp In file included from boobtube.cpp:618: /mnt/3/src/gxplugs/GxFaustSources-master/boobtube/boobtube_table.h:22:36: error: expected initializer before ‘__rt_data’ static table1d_imp<200> tube_table __rt_data = { ^~~~~ /mnt/3/src/gxplugs/GxFaustSources-master/boobtube/boobtube_table.h:67:22: error: expected initializer before ‘tubeclip’ double always_inline tubeclip(double x) { ^~~~ boobtube.cpp: In member function ‘virtual void boobtube::compute(int, float, float)’: boobtube.cpp:958:34: error: ‘tubeclip’ was not declared in this scope output0[i] = FAUSTFLOAT(float(tubeclip(float((fConst1 ((fRec0[0] ((((((((fRec1[0] (fConst67 + (fConst69 fRec2[0]))) + (fRec1[1] (fConst71 + (fConst73 fRec2[0])))) + (fRec1[2] (fConst75 + (fConst77 fRec2[0])))) + (fRec1[3] (fConst78 + (fConst80 fRec2[0])))) + (fRec1[4] (fConst81 + (fConst82 fRec2[0])))) + (fRec1[5] (fConst83 + (fConst84 fRec2[0])))) + (fRec1[6] (fConst85 + (fConst86 fRec2[0])))) + (fRec1[7] (fConst87 + (fConst88 fRec2[0]))))) / fTemp0)))))); ^~~~ boobtube.cpp:958:34: note: suggested alternative: ‘sc_clip’ output0[i] = FAUSTFLOAT(float(tubeclip(float((fConst1 ((fRec0[0] ((((((((fRec1[0] (fConst67 + (fConst69 fRec2[0]))) + (fRec1[1] (fConst71 + (fConst73 fRec2[0])))) + (fRec1[2] (fConst75 + (fConst77 fRec2[0])))) + (fRec1[3] (fConst78 + (fConst80 fRec2[0])))) + (fRec1[4] (fConst81 + (fConst82 fRec2[0])))) + (fRec1[5] (fConst83 + (fConst84 fRec2[0])))) + (fRec1[6] (fConst85 + (fConst86 fRec2[0])))) + (fRec1[7] (fConst87 + (fConst88 fRec2[0]))))) / fTemp0)))))); ^~~~ sc_clip cp: cannot stat 'faust.OavKfF/boobtube/boobtube.so': No such file or directory

or another one:

/mnt/3/src/gxplugs/GxFaustSources-master/epic$ faust2supercollider .dsp In file included from epic.cpp:618: /mnt/3/src/gxplugs/GxFaustSources-master/epic/epiphone_jr_out_table.h:27:61: error: expected initializer before ‘__rt_data’ static tableepiphone_jr_out_imp<200> epiphone_jr_out_table __rt_data = { ^~~~~ /mnt/3/src/gxplugs/GxFaustSources-master/epic/epiphone_jr_out_table.h:72:22: error: expected initializer before ‘epiphone_jr_outclip’ double always_inline epiphone_jr_outclip(double x) { ^~~~~~~ epic.cpp: In member function ‘virtual void epic::compute(int, float, float)’: epic.cpp:835:34: error: ‘epiphone_jr_outclip’ was not declared in this scope output0[i] = FAUSTFLOAT(float(epiphone_jr_outclip(float((fConst0 ((fRec0[0] ((((fRec1[0] (fConst20 + (fConst22 fRec2[0]))) + (fRec1[1] (fConst23 + (fConst25 fRec2[0])))) + (fRec1[2] (fConst26 + (fConst27 fRec2[0])))) + (fRec1[3] (fConst28 + (fConst29 fRec2[0]))))) / fTemp0)))))); ^~~~~~~ epic.cpp:835:34: note: suggested alternative: ‘tableepiphone_jr_out_imp’ output0[i] = FAUSTFLOAT(float(epiphone_jr_outclip(float((fConst0 ((fRec0[0] ((((fRec1[0] (fConst20 + (fConst22 fRec2[0]))) + (fRec1[1] (fConst23 + (fConst25 fRec2[0])))) + (fRec1[2] (fConst26 + (fConst27 fRec2[0])))) + (fRec1[3] (fConst28 + (fConst29 * fRec2[0]))))) / fTemp0)))))); ^~~~~~~ tableepiphone_jr_out_imp

brummer10 commented 5 years ago

always_inline should be defined as #define always_inline inline __attribute__((always_inline))

I do it for the LV2 plugs in my wrapper class. You could try to add this definition on top of the *_table.h files in order to build the supercollider plugs.

alikthename commented 5 years ago

thanks for suggestion. tried it, complaints about initializer before ‘rt_data’: /mnt/3/src/gxplugs/GxFaustSources-master/boobtube$ faust2supercollider boobtube.dsp In file included from boobtube.cpp:618: /mnt/3/src/gxplugs/GxFaustSources-master/boobtube/boobtube_table.h:27:36: error: expected initializer before ‘rt_data’ static table1d_imp<200> tube_table __rt_data = { ^~~~~ /mnt/3/src/gxplugs/GxFaustSources-master/boobtube/boobtube_table.h: In function ‘double tubeclip(double)’: /mnt/3/src/gxplugs/GxFaustSources-master/boobtube/boobtube_table.h:74:13: error: ‘tube_table’ was not declared in this scope f = f tube_table.istep; ^~~~~~ /mnt/3/src/gxplugs/GxFaustSources-master/boobtube/boobtube_table.h:74:13: note: suggested alternative: ‘mutable’ f = f tube_table.istep; ^~~~~~ mutable cp: cannot stat 'faust.Nn9OnY/boobtube/boobtube.so': No such file or directory

brummer10 commented 5 years ago

Here are the needed defines.

https://github.com/brummer10/GxBoobTube.lv2/blob/4e6a12dfc2a8e68420afc4f90daea311bf50764a/plugin/gx_boobtube.cpp#L30

brummer10 commented 5 years ago

Here are the needed defines.

https://github.com/brummer10/GxBoobTube.lv2/blob/4e6a12dfc2a8e68420afc4f90daea311bf50764a/plugin/gx_boobtube.cpp#L30

alikthename commented 5 years ago

adding those #define's to table files made them compile. But unfortunately they don't function as should, producing only chaotic noise bursts

brummer10 commented 5 years ago

To bad to hear that, but I really don't know what could be wrong now.

brummer10 commented 5 years ago

. . . one thing maybe, you should use --double precision, not single (float), to generate the plugs.