Commission Music

Commission Music
Bespoke Noise!!

Tuesday, 6 February 2007

Jacked

Yeah, so I can get Ardour to display on a remote machine, but forget about making sounds thus displayed. Run it in VNC and it's fine. Run with ssh X tunneling, and there are problems. What kind of problems, you ask?

allocate_mach_clientport: can't find mach server port
Can't allocate mach port

For the longest time, I thought that error was originating within Ardour. So I downloaded the source. Man, you need a ton of libraries to compile it, several of which are either in Fink's unstable tree or not present within fink at all. Ardour developers use Darwin Ports, I guess. Anyway, the fink version of jack absolutely does not work for me. So I was giving up on the project, when I looking at console logs revealed that the problem seemed to be coming from Jack.

Maybe if I could just discover the name of the jack sever, there exists an undocumented command line argument to pass to Ardour to tell it which server to use! Fortunately, there exists a utility for just such discovery: jack_lsp. So after learning of it's existence, I typed in the command and got:

allocate_mach_clientport: can't find mach server port
Can't allocate mach port
jack_client_open() failed, status = 0x  

aha! So I downloaded the JackOSX code and it was a terrible mess. So I downloaded the Jackit code, but it doesn't play well with core audio. There's some goofy thing on mactel computers such that you have to create an aggregate device or else in and outs are treated differently. There's probably a command line argument to fix this, but I like the nice JackOSC GUI, so I went back to their messy, messy code and started banging away at the core audio driver, since that seemed like a possible culprit.

Several hours later, after learning about some macros in C that I'd never heard of and borrowing some code form JackIt and otherwise swearing, I got a new library for coreaudio to build and link. Hooray. That was way too much effort. And I fired up the JackOSC GUI and everything worked. Yay!

And then I typed jack_lsp and got the same error again. grrrr. The code for jack_lsp is not in the Jack OSX source repository, as far as I can tell. It is included with JackIt, but it's clearly not the problem. The problem is some Jack library that they ship out as a binary. Perhaps using my special sekrit powers, I can build the JackIT kit to use my core audio library, since it's got a bunch of jackit code in there now anyway. Or maybe I can give up and just use VNC.

Anyway, this is why I haven't written any music the last few days, nor implemented a very, very fast pitch tracker that just uses the samples around zero crossings.

In other news, the weird mole on my back was not cancer. Wonder why it itched so much.

No comments: