Overtone 0.8-SNAPSHOT on OS X 10.6.8 32bit

137 views
Skip to first unread message

Aaron S

unread,
Jul 21, 2012, 1:21:35 AM7/21/12
to over...@googlegroups.com
Hi everyone,

When using [overtone "0.8.0-SNAPSHOT"] in my project.clj I've been consistently getting 
-> Loading Overtone...
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'scsynth': dlopen(libscsynth.dylib, 9)
: image not found
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:169)
        at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:242)
        at com.sun.jna.Library$Handler.<init>(Library.java:140)
        at com.sun.jna.Native.loadLibrary(Native.java:368)
        at com.sun.jna.Native.loadLibrary(Native.java:353)
        at overtone.sc.machinery.server.native$fn__2336.invoke(native.clj:10)
. Using [overtone "0.7.1"] makes the problem vanish. I've done lein clean, removed the native dir, etc., but I'm stuck. 

Checking the kernel,
$ uname -a
Darwin Aaron-Santoss-iMac.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386

It's a 32bit kernel. Looking for libscsynth.dylib:
$ find . -name libscsynth.dylib
./target/native/macosx/x86_64/libscsynth.dylib

No 32bit version in x86?
$ ls ./target/native/macosx/x86/
libgluegen-rt.jnilib    libjogl.jnilib          libjogl_awt.jnilib      libjogl_cg.jnilib

It looks like the 32bit dependencies are missing. Please let me know if there are additional steps I can take. I'd appreciate it very much. Thank you.

Best,
Aaron



Marmaduke Woodman

unread,
Jul 21, 2012, 6:29:12 AM7/21/12
to over...@googlegroups.com
Hi


On Sat, Jul 21, 2012 at 7:21 AM, Aaron S <aaron...@gmail.com> wrote:
It looks like the 32bit dependencies are missing. Please let me know if there are additional steps I can take. I'd appreciate it very much. Thank you.

I don't have a Mac, but I think you can either

1. in Java Preferences, place a 64-bit Java as the preferred, so that Overtone/Cljoure runs on a 64-bit JVM.

2. look in the SuperCollider 32 bit folder (.app thingy) to find the dylibs, copy them manually to target/native/maocsx/x86 (this may require copying several dylibs)


may the force be with you,

marmaduke

Sam Aaron

unread,
Jul 21, 2012, 6:53:50 AM7/21/12
to over...@googlegroups.com
Hi Aaron,

unfortunately there are no Supercollider distributions of the latest version (3.5.3) for 32 bit on OS X. If you're able to compile SuperCollider and the ugens yourself and contribute these binaries, then that would be amazing - and we could add them to Overtone for other 32-bit-using OS X people out there.

Failing that, the other solution for you is to use an external synth:

https://github.com/overtone/overtone/wiki/Connecting-scsynth

I hope that this helps,

Sam

---
http://sam.aaron.name

Jeff Rose

unread,
Jul 21, 2012, 1:10:23 PM7/21/12
to over...@googlegroups.com
Compiling SuperCollider is pretty easy. (Just a cd supercollider; mkdir build; cd build; cmake ..; make) I think the ideal solution would be to find out what git commit was used for the latest release, check it out and compile. Then we can add it to the jar file and we'll be smooth sailing. That or we could all just choose a newer commit to do the same...

-Jeff

Aaron S

unread,
Jul 21, 2012, 1:21:22 PM7/21/12
to over...@googlegroups.com
Sounds great! I have the binaries and they work (with minibeast at least!). What's the best way for me to contribute them?

Sam Aaron

unread,
Jul 21, 2012, 1:23:22 PM7/21/12
to over...@googlegroups.com

On 21 Jul 2012, at 18:21, Aaron S wrote:

> Sounds great! I have the binaries and they work (with minibeast at least!). What's the best way for me to contribute them?

Awesome. Could you email them directly to me?

Sam

---
http://sam.aaron.name

Sam Aaron

unread,
Jul 21, 2012, 1:59:51 PM7/21/12
to over...@googlegroups.com
Howdy,

Aaron kindly emailed me the 32-bit OS X binaries, and I've added them to overtone/scsynth and uploaded it to Clojars.

32-bit OS X users should be good to go now. Just do a lein -U deps to force the latest scsynth SNAPSHOT.

Let me know if it works out...

Sam

---
http://sam.aaron.name

Aaron S

unread,
Jul 21, 2012, 2:05:21 PM7/21/12
to over...@googlegroups.com
Horray! Thanks Sam. That works for me. :-) It feels great to be in 0.8-dev land.

Sam Aaron

unread,
Jul 21, 2012, 2:12:26 PM7/21/12
to over...@googlegroups.com

On 21 Jul 2012, at 19:05, Aaron S wrote:

> Horray! Thanks Sam. That works for me. :-) It feels great to be in 0.8-dev land.

Awesome! It's great to have you - and thanks for the binaries :-)

Sam

---
http://sam.aaron.name

Toby Jaguar

unread,
May 8, 2013, 3:45:56 PM5/8/13
to over...@googlegroups.com
I got stuck here.  What exactly do I need to do to get past this:

UnsatisfiedLinkError Unable to load library 'scsynth': dlopen(libscsynth.dylib, 9): image not found  com.sun.jna.NativeLibrary.loadLibrary (NativeLibrary.java:169)

thanks,
toby

Sam Aaron

unread,
May 9, 2013, 2:08:33 AM5/9/13
to over...@googlegroups.com
Hi Toby,

On 8 May 2013, at 20:45, Toby Jaguar <tal...@gmail.com> wrote:

> I got stuck here. What exactly do I need to do to get past this:
>
> UnsatisfiedLinkError Unable to load library 'scsynth': dlopen(libscsynth.dylib, 9): image not found com.sun.jna.NativeLibrary.loadLibrary (NativeLibrary.java:169)


Unfortunately I don't have a 32bit Mac, so I'm not able to reproduce this issue. The native files included with the latest version of Overtone do report to be universal binaries, so *should* work.

Which version of Leiningen are you using? Are you using v2+?

Sam

---
http://sam.aaron.name

Toby Jaguar

unread,
May 9, 2013, 2:29:38 AM5/9/13
to over...@googlegroups.com
Thank you for the reply Sam.

I was hoping Aaron would share how his problem was resolved as I went through the steps detailed above and am still getting this error.

I am using:

Leiningen 1.6.2 on Java 1.6.0_45 Java HotSpot(TM) 64-Bit Server VM


Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386

I tried Overtone 0.8.0 and 0.8.1

The command lein -U deps gives an error; should I upgrade to v2?

Trying the external server yields:

user=> (use 'overtone.core)
--> Loading Overtone...

UnsatisfiedLinkError Unable to load library 'scsynth': dlopen(libscsynth.dylib, 9): image not found  com.sun.jna.NativeLibrary.loadLibrary (NativeLibrary.java:169)
user=>

 Where should I go from here?

thank you,
toby

Sam Aaron

unread,
May 9, 2013, 2:42:26 AM5/9/13
to over...@googlegroups.com
Hey Toby,

you definitely need to install Leiningen 2+ which has the support for native libraries required by Overtone. Give that a try and let me know how it goes.

Sam

---
http://sam.aaron.name
> --
> You received this message because you are subscribed to the Google Groups "Overtone" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to overtone+u...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Toby Jaguar

unread,
May 9, 2013, 2:51:38 AM5/9/13
to over...@googlegroups.com
hot damn, that did it.

I upgraded leiningen and ran lein -U deps

now the fun can begin.


thank you very much,
toby

Sam Aaron

unread,
May 9, 2013, 3:04:27 AM5/9/13
to over...@googlegroups.com

On 9 May 2013, at 07:51, Toby Jaguar <tal...@gmail.com> wrote:

> hot damn, that did it.
>
> I upgraded leiningen and ran lein -U deps
>
> now the fun can begin.
>

Awesome! Have fun and let us know what you get up to :-)

Sam

---
http://sam.aaron.name

Toby Jaguar

unread,
May 9, 2013, 3:12:29 AM5/9/13
to over...@googlegroups.com
It is a very big project, so you will be hearing from me.

I think developing in Overtone will give me more control than Max in the long run.

We'll see if I can get streaming Xbee data into Overtone.

thanks again...

Sam Aaron

unread,
May 9, 2013, 3:36:51 AM5/9/13
to over...@googlegroups.com

On 9 May 2013, at 08:12, Toby Jaguar <tal...@gmail.com> wrote:

> It is a very big project, so you will be hearing from me.

Cool - what are your broad plans?

>
> I think developing in Overtone will give me more control than Max in the long run.

For sure :-) I've also just finished developing a graphviz viewer which will let you visualise your synth designs in a Max/MSP style. I've been amazed by how the visual form handles complex designs so poorly in comparison to text.

>
> We'll see if I can get streaming Xbee data into Overtone.

Shouldn't be too tough. You'll want to pipe your data into the event system. This is as simple as calling the fn event:

(event event-key event-data)

where event-key is a unique key for this data stream. We've recently been using vectors of keywords for this i.e.

[:xbee :data]

and where event-data is an arbitrary map i.e.

{:data 2.45 :foo 1 :bar 9}

You can then register handlers to be executed on incoming events:

(on-event [:xbee :data]
(fn [event-data] (println event-data))
::handle-xbee)

By default this will use a thread pool to handle the incoming events. This may mean the handle fns are executed in a different order to the incoming events due to multiple cores being utilised. To tackle this, you can use the on-sync-event strategy which will execute the handler on the thread of the incoming event - the downside to this is that this fn may then block that thread for long periods of time, essentially starving the event stream. To tackle that issue, you can use on-latest-event which preserves ordering, doesn't block the incoming thread but can drop some intermediate events that can't be handled in real time to minimise latency. I use on-latest-event to handle the events coming from my MIDI controllers.

Let me know if I can help any further,

Sam

---
http://sam.aaron.name

Toby Jaguar

unread,
May 10, 2013, 3:28:55 AM5/10/13
to over...@googlegroups.com

> It is a very big project, so you will be hearing from me.

Cool - what are your broad plans?


 
I am working on a dance piece that maps body sensor data to sound


 
>
> I think developing in Overtone will give me more control than Max in the long run.

For sure :-) I've also just finished developing a graphviz viewer which will let you visualise your synth designs in a Max/MSP style. I've been amazed by how the visual form handles complex designs so poorly in comparison to text.

>
> We'll see if I can get streaming Xbee data into Overtone.

Shouldn't be too tough. You'll want to pipe your data into the event system. This is as simple as calling the fn event:

(event event-key event-data)

where event-key is a unique key for this data stream. We've recently been using vectors of keywords for this i.e.

[:xbee :data]

and where event-data is an arbitrary map i.e.

{:data 2.45 :foo 1 :bar 9}

You can then register handlers to be executed on incoming events:

(on-event [:xbee :data]
  (fn [event-data] (println event-data))
  ::handle-xbee)

By default this will use a thread pool to handle the incoming events. This may mean the handle fns are executed in a different order to the incoming events due to multiple cores being utilised. To tackle this, you can use the on-sync-event strategy which will execute the handler on the thread of the incoming event - the downside to this is that this fn may then block that thread for long periods of time, essentially starving the event stream. To tackle that issue, you can use on-latest-event which preserves ordering, doesn't block the incoming thread but can drop some intermediate events that can't be handled in real time to minimise latency. I use on-latest-event to handle the events coming from my MIDI controllers.



Thank you for the info...there is a lot here and I am just starting out so it may take some time, but I have been watching the development of Overtone for some time now and I think it is the right infrastructure for the piece.  I need to go through all the wiki pages and group threads before I start asking questions.  When I get stuck after that, I will most likely ask away.

 
Let me know if I can help any further,

Sam



Thanks so much,
toby

 
---
http://sam.aaron.name

Toby Jaguar

unread,
Jan 16, 2014, 5:32:27 PM1/16/14
to over...@googlegroups.com
Hey Sam,

I am back on this project again, after a bit of a hiatus.  I am wondering if I should start a new post on xbees, but I guess this is an event stream issue.
I have been stewing over this last post and am a bit stuck.  I got the xbee to print to the terminal screen with (def port (open "/dev/...")) and (on-byte port #(println %))
curiously this wouldn't work in emacs-live, but i did get it to work with a call to the repl with lein on the terminal...something to figure out later...

Is there a resource to read up on the event system in Overtone?  I hate to ask the most basic questions but I am having issue with relating the midi event programming to this, which is the same but different.  Do I have to register the event, and then call on-event?  What is the best resource for researching this?

Essentially I am getting a packet from the xbee that I have to strip to the sensor data and then attach that data to music parameter fun stuff...I want to get to the fun stuff!

Any help is appreciated.

thanks again,
toby
Reply all
Reply to author
Forward
0 new messages