3

I have written this event photography application that features a slideshow among other things. The application written in Java and is multi-platform. However on Mac OS X, it takes advantage of the graphics abilities of Quartz Composer by including a QC component in a Java window. The component is based on the sample that comes with Xcode.

The user can select a “skin” for the slideshow, which consists of a .qtz file plus an XML file describing the parameters that the Java application can pass to to QC program. The parameters are passed in UDP packets.

The problem with this method is that it requires a lot of ugly javascript code in the QC project and the designer that builds these projects is not a programmer.

Ideally, I would like to bind the parameters to published inputs in the QC project. Has anyone already done this kind of stuff, or can point me to some information about interfacing Java and QC? Thanks in advance.

Quinn Taylor
  • 44,553
  • 16
  • 113
  • 131
Maurice Perry
  • 32,610
  • 9
  • 70
  • 97

2 Answers2

2

There are bindings in the Objective-C based Mac OS APIs to do what you want, however I don't know how you would access those in Java.

Quartz Composer however supports OpenSoundControl which allows you to send named parameters (Floats, ints, and Strings) over a UDP or TCP connection. Your designer then should be able to connect these named inputs to whatever patch parameters he needs using Quartz Composer's visual editor.

qrunchmonkey
  • 527
  • 4
  • 10
-1

I haven't done this myself, but I assume you could use JNI to access the objective-c interface to the published ports from you java application.

ekj
  • 1,082
  • 2
  • 11
  • 22
  • this is definitely possible http://developer.apple.com/library/mac/#technotes/tn2147/_index.html "The JNI is a low-level mechanism for communication between Java and C-based code. The most common use of the technology is accessing system functionality that does not easily match up with cross-platform Java features or APIs. In the case of Mac OS X, this could mean accessing data from the Mac OS X Address Book, or even **bold**(displaying Quartz Composer compositions)." – ekj Sep 05 '11 at 05:05