Cabbage Logo
Back to Cabbage Site

FLTK and Jack libraries are not loading

I’m using Csound 6.06 on my Mac OS 10.11.2, and I’m attempting to analyze my audio signals using the dispfft, but the FLTK and Jack libraries are not loading. I get the following errors:

“WARNING: could not open library ‘/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64/libjacko.dylib’ (-1)
WARNING: could not open library ‘/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64/libjackTransport.dylib’ (-1)
WARNING: could not open library ‘/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64/librtjack.dylib’ (-1)
WARNING: could not open library ‘/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64/libvirtual.dylib’ (-1)
WARNING: could not open library ‘/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64/libwidgets.dylib’ (-1)”

I read on a forum to try and download an earlier version of Csound, then the latest, but that didn’t work.

Does anyone have a solution?

Hi,

My friend has the same problem. Maybe it was my email that you read on the Csound mailing list?

Unfortunately, I only had access to that machine twice. I tried a lot of things but nothing worked. Your best option would be to ask in the Csound mailing list, as this is not a Cabbage problem per se. You’ll probably have to build Csound to solve it or wait until 6.07 is released and try that installer instead.

If you solve it, please share the solution!

This is only a warning. And it shouldn’t prevent Cabbage from working in any way. You can read more about these warnings here:

http://csound.1045644.n5.nabble.com/error-message-could-not-find-library-td5739667.html

Btw, are you using the new fftdisplay widget to show your signal?

Isn’t he referring to the dispfft opcode? If I pass --displays as a command-line option I get a FLTK widget with the fft (instead of the ascii representation). That’s why I’m guessing this is a Csound problem.

Cabbage overrides the fltk graphing callback methods. If you look at the FFTDisplay.csd example in the instructional example folder you’ll see how to display an FFT using the dispfft and Cabbage. No need for FLTK at all i this case.

Wow, that’s really cool Rory! I didn’t have time to play with the FFT display yet. It’s interesting that Cabbage can override Csound behavior.

Sorry, I’m new to the whole csound thing. I’ll post this question in the appropriate forum and get back to you all if there’s a solution.

The API provides a way of registering your own callbacks for certain things. The most common one is the Csound message callback. Developers register their own callback function, that Csound will call when it needs to display messages. In this case I tell Csound to trigger a set of Cabbage methods whenever the dispfft opcode updates its window. Hats of the the Csound devs for their work on the API. I’m continuously finding more and more great ways to use it!

Hi Kevin, I’m a little confused as to whether you are trying to load the FTLK window in Cabbage, or purely with Csound, say from the command line. If it’s from Cabbage, then the window might not pop open as Cabbage doesn’t support the FLTK widgets. But if you want to see the FFT window IN Cabbage, use the fftdisplay widget. Look at the FFTDisplay.csd in the Cabbage examples. It’s there in the “Instructional” examples.

So I got help from Victor Lazzarini and solved the issue with libwidgets and libvirtual not opening. Pasted is the solution that is also present somewhere in another forum. you can follow the same code subsituting libwidget for libvirtual.

"
I noticed that the installer had a problem where the libwidgets.dylib plugin was linking to a libpng.dylib that
was in /usr/local/lib, instead of the correct one that we ship inside the framework. I fixed this, but
that will only take effect at the next release. For now, you can use these commands to solve your
problem:

  1. first check that this is the case:

$ otool -L /Library/Frameworks/CsoundLib64.framework/Resources/Opcodes64/libwidgets.dylib
/Library/Frameworks/CsoundLib64.framework/Resources/Opcodes64/libwidgets.dylib:
libwidgets.dylib (compatibility version 0.0.0, current version 0.0.0)
@loader_path/…/…/…/…/libs/libfltk_images.1.3.dylib (compatibility version 1.3.0, current version 1.3.3)
/usr/local/lib/libpng16.16.dylib (compatibility version 23.0.0, current version 23.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
@loader_path/…/…/…/…/libs/libfltk.1.3.dylib (compatibility version 1.3.0, current version 1.3.3)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 21.0.0)

— see the line /usr/local/lib/libpng16.16.dylib (compatibility version 23.0.0, current version 23.0.0)? That’s the problem.

  1. Change the linked-to library. First go to the plugin dir to simplify the commands

$ cd /Library/Frameworks/CsoundLib64.framework/Resources/Opcodes64/

then use install_name_tool to change the link in libwidgets.dylib to the correct one

$ sudo install_name_tool -change /usr/local/lib/libpng16.16.dylib @loader_path/…/…/…/…/libs/libpng16.16.dylib libwidgets.dylib

  1. check that it’s done:

$ otool -L libwidgets.dylib
libwidgets.dylib:
libwidgets.dylib (compatibility version 0.0.0, current version 0.0.0)
@loader_path/…/…/…/…/libs/libfltk_images.1.3.dylib (compatibility version 1.3.0, current version 1.3.3)
@loader_path/…/…/…/…/libs/libpng16.16.dylib (compatibility version 23.0.0, current version 23.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
@loader_path/…/…/…/…/libs/libfltk.1.3.dylib (compatibility version 1.3.0, current version 1.3.3)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 21.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.1.0)

then it should be back working
"

Thanks for letting us know, but I still recommend using the native Cabbage keyboard and fftdisplay widget instead of the FLTK ones. Trying to mix the FLTK stuff with Cabbage will most likely lead to threading problems. Anyhow, good to hear you got past this problem. Good luck with your project.

Thank you @Kevin_A for posting the solution. Although we should not mix Cabbage and FLTK, there are a lot of interesting things made with the FLTK interface. This solution allows OSX people to be able run those things again!

To be honest, one can probably try mixing them up. It was a problem in the past, but the Csound API is much tighter now so there may actually be less problems with it.