rorywalsh / cabbage_v1_old

Framework for developing virtual instruments using the Csound audio synthesis programming language.
http://www.cabbageaudio.com
115 stars 15 forks source link

Can't compile on Mint 17 #20

Closed arthurtofani closed 7 years ago

arthurtofani commented 8 years ago

I'm trying to do the installation using this parameters: ./buildCabbage "/usr/include/csound" "/usr/lib" "/home/user/VST_SDK" The first parameter now I know that is right. The second one, well, it's not clear actually to where it should point, but I did it in the /usr/lib folder where I found the most important libraries inside, and the third is renamed from 'VST3 SDK' path.

Unfortunately I'm getting this error when compiling:

../../Source/Plugin/CabbagePluginProcessor.cpp: In member function ‘juce::StringArray CabbagePluginAudioProcessor::getTableStatement(int)’: ../../Source/Plugin/CabbagePluginProcessor.cpp:1546:82: error: ‘csoundGetTableArgs’ was not declared in this scope int noOfArgs = csoundGetTableArgs(csound->GetCsound(), &argsPtr, tableNum); finally, in the end, these files are not being generated: Cabbage, CabbagePluginSynth.so, CabbagePluginEffect.so, CabbageStudio

It's not clear to me if is it a matter of library paths or something else... could somebody help please?

gsenna commented 8 years ago

HI Arthur,

Try building it like this: ./buildCabbage "/usr/include/csound/" "/usr/lib/csound/" "/home/user/VST_SDK/"

Cheers.

arthurtofani commented 8 years ago

gsenna thank you for answering. I've double checked and discovered that the csound version that i'm using is 6.02.0 (default in my package manager) and there's some info to use 6.03.0 or newer. I've uninstalled and build again from the sources, and it's doing pretty well. Now what is happening is some issue with VST libs, I'm getting this error message:

In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.cpp:152:0:
../../JuceLibraryCode/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp:49:44: fatal error: pluginterfaces/vst2.x/aeffectx.h: Arquivo ou diretório não encontrado
 #include "pluginterfaces/vst2.x/aeffectx.h"

My VST_SDK version is 3, I've downloaded yesterday from Steinberg's site - besides, I didn't found versio 2.4 available for downloading...

I let the complete build log here: http://pastebin.com/ydiVMYBX

Does anybody know what could be that? Thank you!

gsenna commented 8 years ago

That's a frequent issue. What is the path of your SDK and how are you calling ./buildCabbage? Are you building the develop branch?

deeprest commented 8 years ago

Debian (Jessie), csound 6.03.2, VST3SDK

I fixed that first error for myself by changing the single 'csoundGetTableArgs()' call at CabbagePluginProcessor.cpp:1546 to 'csoundGetTable()'.
@gsenna Hi :) Do you not see this error when building?

That second error prevented 'CabbageStudio' from being built, but the 'Cabbage' binary succeeded and runs fine. Is CabbageStudio different from 'Cabbage'? Seems like a naming discrepancy in the makefile.

The last few lines are: `In file included from ../../JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.cpp:152:0: ../../JuceLibraryCode/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp:49:44: fatal error: pluginterfaces/vst2.x/aeffectx.h: No such file or directory

include "pluginterfaces/vst2.x/aeffectx.h"

                                        ^

compilation terminated. make: [build/intermediate-host/Release/juce_audio_processors_44a134a2.o] Error 1 make: Waiting for unfinished jobs.... ../../JuceLibraryCode/modules/juce_core/juce_core.cpp:121:110: note: #pragma message: "Please re-save your Introjucer project with the latest Introjucer version to avoid this warning" JUCE_COMPILER_WARNING ("Please re-save your Introjucer project with the latest Introjucer version to avoid this warning") ^ cp: cannot stat ‘./build/CabbageStudio’: No such file or directory cp: cannot stat ‘../../Docs/_book’: No such file or directory `

So arthurtofani and I probably need the latest version of "Introjucer" to build the plugin?

The command I used was: ./buildCabbage "/usr/include/csound" "/usr/lib" "/home/user/sdk/VST3-SDK" 3>&2 2>&1 1>&3 3>&- | tee /dev/stderr > stderr.log Here's the stderr log: http://pastebin.com/LCkBrZwD

Anyway, I having fun poking around with the examples now. Good work guys!!

gsenna commented 8 years ago

Hi!

I fixed that first error for myself by changing the single 'csoundGetTableArgs()' call at CabbagePluginProcessor.cpp:1546 to 'csoundGetTable()'.

But they are two different functions. Gentable editing probably won't work for you. IIRC csoundGetTableArgs() is an API call added some time around Csound v6.03. I'm guessing you are having that error because of using an old Csound.

That second error prevented 'CabbageStudio' from being built, but the 'Cabbage' binary succeeded and runs fine. Is CabbageStudio different from 'Cabbage'? Seems like a naming discrepancy in the makefile.

They are different. See http://forum.cabbageaudio.com/t/cabbage-vs-cabbage-studio/278

So arthurtofani and I probably need the latest version of "Introjucer" to build the plugin?

No, what is happening is that it is not finding a the SDK headers. I thought that was already fixed. Unfortunately, I don't have time to look at it right now. Just to be sure, are you positive that you're building from the develop branch? I think a quick an dirty hack would be to copy the entire pluginterfaces folder (/home/user/sdk/VST3-SDK/pluginterfaces/) into ./JuceLibraryCode/modules/juce_audio_processors/format_types/.

Let me know how it goes! Cheers.

deeprest commented 8 years ago

Spot on. Thank you! I'll leave details in case this is useful for someone out there.

My version of libcsound64-dev (contains csound.h) is 6.03 on Debian Jessie as of this writing (20160806). The function csoundGetTableArgs() was added between 6.04 and 6.07. Also, I was not on the develop branch, which is >100 commits ahead of master.

I could have upgraded to Sid (I will soon) but I decided to build CSound from source instead.

After setting VST_SDK to the sdk dir I built with: ./buildCabbage "/usr/local/include/csound" "/usr/lib" $VST_SDK

I'm pretty sure arthurtofani's problem is that he wasn't on the develop branch and/or didn't pass the correct path to the vst sdk.

deeprest commented 8 years ago

Unless I'm wrong about csoundGetTableArgs(), the line in the linux readme should read: "Please make sure that the version of Csound you use is 6.07 or newer"

cabbageaudio commented 8 years ago

Sorry for missing this thread guys, I'm currently on holidays. I thought csoundGetTableArgs was introduced in 6.03? There is a newer table function that has just been added for gsenna that will be used in the future so changing the readme is probably a good idea regardless.

On 7 Aug 2016 03:03, "TigerCrab" notifications@github.com wrote:

Unless I'm wrong about csoundGetTableArgs(), the linux readme should change the line to: "Please make sure that the version of Csound you use is 6.07 or newer"

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/rorywalsh/cabbage/issues/20#issuecomment-238057042, or mute the thread https://github.com/notifications/unsubscribe-auth/AFrNtzYQNAbYPXyXZq421l12-m6aJj7lks5qdS7SgaJpZM4JDlOS .

arthurtofani commented 8 years ago

Hello guys I didn't ping you back in time, sorry for that.Yes I had a problem with csound version because that one in the repository appears to be a little old. But the biggest problem were to understand correctly what paths I should pass on buildCabbage. When I uninstalled the repository version of csound and did the installation manually I got 2 paths with csound stuff and it turned the process a little confusing... I don't know if it does demand any improvement or if this issue should be closed. Again, thank you for you all!