Cabbage Logo
Back to Cabbage Site

AU on Logic 10.2.1, Mavericks

I went ahead and tried those. The standalone installer works fine but the AU installer is still failing.

Initially, the AUs were still complaining about the relative path to CsoundLib64:

2016-05-08 15:32:57.101 auvaltool[26456:360199] Error loading /Users/tenfoxes/Library/Audio/Plug-Ins/Components/CabbageAUEffect.component/Contents/MacOS/CabbageAUEffect:  dlopen(/Users/tenfoxes/Library/Audio/Plug-Ins/Components/CabbageAUEffect.component/Contents/MacOS/CabbageAUEffect, 262): Library not loaded: CsoundLib64.framework/Versions/6.0/CsoundLib64
  Referenced from: /Users/tenfoxes/Library/Audio/Plug-Ins/Components/CabbageAUEffect.component/Contents/MacOS/CabbageAUEffect
  Reason: unsafe use of relative rpath CsoundLib64.framework/Versions/6.0/CsoundLib64 in /Users/tenfoxes/Library/Audio/Plug-Ins/Components/CabbageAUEffect.component/Contents/MacOS/CabbageAUEffect with restricted binary

I tried using install_name_tool to change the path used for CsoundLib64 in the AUs to the absolute path of its location on my system (as described in https://bitbucket.org/fenics-project/fenics-developer-tools/issues/8/fenics-160-binary-for-os-x-does-not-work) and got a different error:

2016-05-08 16:16:20.533 auvaltool[28978:383214] 16:16:20.533 ERROR:    >compload> 529: CFBundle 0x7f81b9d00b40 </Users/tenfoxes/Library/Audio/Plug-Ins/Components/CabbageAUEffect.component> (bundle, not loaded): cannot load bundle: The bundle “CabbageAUEffect” couldn’t be loaded. (dlopen(/Users/tenfoxes/Library/Audio/Plug-Ins/Components/CabbageAUEffect.component/Contents/MacOS/CabbageAUEffect, 262): Symbol not found: _csoundCompileCsdText
  Referenced from: /Users/tenfoxes/Library/Audio/Plug-Ins/Components/CabbageAUEffect.component/Contents/MacOS/CabbageAUEffect
  Expected in: /Library/Frameworks/CsoundLib64.framework/Versions/6.0/CsoundLib64
 in /Users/tenfoxes/Library/Audio/Plug-Ins/Components/CabbageAUEffect.component/Contents/MacOS/CabbageAUEffect)

I’ll try building it from source and seeing what happens.

At the risk of maybe pulling this thread off-topic, I’ve kind of hit a wall trying to build the AUs from source. I managed to specify the paths to the CsoundLib64 framework, Steinberg’s VST SDK, etc., but now I’m getting these compilation errors (from within XCode):

Undefined symbols for architecture x86_64:
  "RangeSlider::setValue(float, float)", referenced from:
      CabbagePluginAudioProcessorEditor::updateGUIControls() in CabbagePluginEditor.o
  "CabbageLabel::update(CabbageGUIType)", referenced from:
      CabbagePluginAudioProcessorEditor::updateGUIControls() in CabbagePluginEditor.o
  "CabbageLabel::CabbageLabel(CabbageGUIType&, CabbagePluginAudioProcessorEditor*)", referenced from:
      CabbagePluginAudioProcessorEditor::InsertLabel(CabbageGUIType&) in CabbagePluginEditor.o
  "CabbageEncoder::update(CabbageGUIType)", referenced from:
      CabbagePluginAudioProcessorEditor::updateGUIControls() in CabbagePluginEditor.o
  "CabbageEncoder::CabbageEncoder(CabbageGUIType&, CabbagePluginAudioProcessorEditor*)", referenced from:
      CabbagePluginAudioProcessorEditor::InsertEncoder(CabbageGUIType&) in CabbagePluginEditor.o
  "CabbageListbox::CabbageListbox(CabbageGUIType&, CabbagePluginAudioProcessorEditor*)", referenced from:
      CabbagePluginAudioProcessorEditor::InsertListbox(CabbageGUIType&) in CabbagePluginEditor.o
  "CabbageStepper::update(CabbageGUIType)", referenced from:
      CabbagePluginAudioProcessorEditor::updateGUIControls() in CabbagePluginEditor.o
  "CabbageStepper::CabbageStepper(CabbageGUIType&, CabbagePluginAudioProcessorEditor*)", referenced from:
      CabbagePluginAudioProcessorEditor::InsertStepper(CabbageGUIType&) in CabbagePluginEditor.o
  "CabbageFFTDisplay::update(CabbageGUIType)", referenced from:
      CabbagePluginAudioProcessorEditor::updateGUIControls() in CabbagePluginEditor.o
  "CabbageFFTDisplay::setPoints(juce::Array<float, juce::CriticalSection, 0>)", referenced from:
      CabbagePluginAudioProcessorEditor::updateGUIControls() in CabbagePluginEditor.o
  "CabbageFFTDisplay::CabbageFFTDisplay(CabbageGUIType&, CabbagePluginAudioProcessorEditor*)", referenced from:
      CabbagePluginAudioProcessorEditor::InsertFFTDisplay(CabbageGUIType&) in CabbagePluginEditor.o
  "CabbageMessageQueue::flushOutgoingChannelMessages()", referenced from:
      CabbagePluginAudioProcessor::sendOutgoingMessagesToCsound() in CabbagePluginProcessor.o
  "CabbageMessageQueue::addOutgoingChannelMessageToQueue(juce::String, juce::String, juce::String)", referenced from:
      CabbagePluginAudioProcessorEditor::InsertTextEditor(CabbageGUIType&) in CabbagePluginEditor.o
      CabbagePluginAudioProcessorEditor::changeListenerCallback(juce::ChangeBroadcaster*) in CabbagePluginEditor.o
      CabbagePluginAudioProcessorEditor::buttonClicked(juce::Button*) in CabbagePluginEditor.o
      CabbagePluginAudioProcessor::setParameter(int, float) in CabbagePluginProcessor.o
  "CabbageMessageQueue::addOutgoingChannelMessageToQueue(juce::String, double, juce::String)", referenced from:
      CabbagePluginAudioProcessorEditor::CabbagePluginAudioProcessorEditor(CabbagePluginAudioProcessor*) in CabbagePluginEditor.o
      CabbagePluginAudioProcessorEditor::changeListenerCallback(juce::ChangeBroadcaster*) in CabbagePluginEditor.o
      CabbagePluginAudioProcessorEditor::mouseMove(juce::MouseEvent const&) in CabbagePluginEditor.o
      CabbagePluginAudioProcessorEditor::mouseDrag(juce::MouseEvent const&) in CabbagePluginEditor.o
      CabbagePluginAudioProcessorEditor::mouseDown(juce::MouseEvent const&) in CabbagePluginEditor.o
      popupMenuCallback(int, CabbagePluginAudioProcessorEditor*) in CabbagePluginEditor.o
      CabbagePluginAudioProcessorEditor::mouseUp(juce::MouseEvent const&) in CabbagePluginEditor.o
      ...
  "CabbageMessageQueue::getOutgoingChannelMessageFromQueue(int)", referenced from:
      CabbagePluginAudioProcessor::sendOutgoingMessagesToCsound() in CabbagePluginProcessor.o
  "CabbageMessageQueue::addOutgoingTableUpdateMessageToQueue(juce::String, int)", referenced from:
      CabbagePluginAudioProcessorEditor::createfTableData(Table*, bool) in CabbagePluginEditor.o
      CabbagePluginAudioProcessorEditor::updatefTableData(GenTable*) in CabbagePluginEditor.o
  "CabbageMessageQueue::getNumberOfOutgoingChannelMessagesInQueue()", referenced from:
      CabbagePluginAudioProcessor::sendOutgoingMessagesToCsound() in CabbagePluginProcessor.o
  "CabbageRangeSlider2::CabbageRangeSlider2(CabbageGUIType&, CabbagePluginAudioProcessorEditor*)", referenced from:
      CabbagePluginAudioProcessorEditor::InsertRangeSlider(CabbageGUIType&) in CabbagePluginEditor.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

It looks like those methods(?) are defined in the CabbageCustomWidgets files in the Source directory under the repository root, but they’re not included in the AU projects. I barely know anything about C or C++ development or making native Mac apps so I’m at a bit of a loss. :smirk:

Make sure you are building from the dev branch rather than the master one. That should sort the compiler error. Are you using 10.10, or have you upgraded to 10.11? As for the other issue, can you double check what version of Csound is in your Library folder? csoundCompileCsdText is a new API function that comes with 6.07 so it should be found.

I’m happy that you’re trying to build this yourself. The more people that can build Cabbage on OSX the better :slight_smile:

Yay, the AUs are working now! Thanks so much for your help!

After switching to the dev branch getting them to build was pretty trivial. The only thing I had to do other than specifying the path to CsoundLib64 was change the framework and header search paths; they included what looked like paths specific to your system, so I changed them to the appropriate paths for my system. :stuck_out_tongue: Not quite sure what the generic solution would be, although the Csound framework is installed to /Library/Frameworks by the Csound installer on my system so maybe that would be safe?

After compiling, though, the resulting components still had relative paths to CsoundLib64 stored, which kept them from working. I am on 10.11 which I imagine is the source of this problem; SIP seems to disallow relative paths to shared libraries.

You were right about my version of Csound, though—I had 6.06. After upgrading to 6.07 and using install_name_tool to specify absolute paths to CsoundLib64, auval stopped complaining. I tried using them from within Live and they totally worked, with clean sound and everything! I’m very pleased. :blush:

There were some discussions about the rpath issue on the Csound mailing list in the past few days. So it’s something they are aware of. I’m glad you were able to build. It would be great if you could have a go with the main Cabbage package too whenever you get a chance. There is a build script in the MacOSX folder call buildAll.sh, Running it with the “all” option from the command line should build everything in one go, as in:

./buildAll.sh all

It simple builds the xcode projects. If that fails you can open each of the xcode projects and modify the build settings there. The scripts is just a simple one step command to build each project. I don’t use OSX much myself, so having another OSX user on board would be a great help.

Hey @rorywalsh, will there be an update to the main cabbage distribution files (pkg) if the dev branch has fixed the issue?

I intend to. But I think I need to upgrade to 10.11 as this seems to be where the issues are. It’s exam time right now so I’ve not had much time to spend on Cabbage with all the correcting I have to do!

Thanks for update. Would the new version of Cabbage run on Mavericks? Or would we all need to upgrade to 10.11?

It should also run on Mavericks. And if it doesn’t at the start we’ll keep at it until it does!

Sorry it took me so long to respond to this! Also sorry for reviving a three-month-old thread—I was going to PM you but I don’t think I have the privileges yet.

If you still need someone to do this I’m happy to get the latest source and give it a shot. I’ve switched back to using Arch Linux as my primary OS but I still have my OSX partition. I’m on my way to bed right now, but I could do it when I get up again.

it should be working now. At least it was working the last time I checked? It doesn’t work in Ardour however, but that’s a different issue! The problem with building from the current source is that I made some changes which I’ve not yet tested on OSX. It’s probably best to leave it until I get a chance to build myself and update the sources. That won’t be for another few weeks though. So, relax, and enjoy your time with Arch Linux!

Ah, all right! Well, feel free to ping me when the time comes. And thanks, I’m enjoying it very much!