MacOSX Programmer Needed
Posted in Random by Dan at 9:25 pm
Do you know how to compile for MacOSX? Then this challenge is for you! On smashtheSILENCE we use SoundFlower to help us record our podcast. However there is NO Intel version (which sucks if you have a PowerBook MacBook Pro).
So the challenge is: Can anyone compile the Soundflower source into a Installer package?
Lets see if YOU can do something the developer cant!

C O M P I L E is what you mean, I’m guessing. You didn’t spell it right either time you typed it. just tryin to help.
:-P – Got a bit tired there I guess
Since you have a MacBook, you can just open GarageBand, invite Ben using iChat, then click the record button in GarageBand which will ask you if you would like to record Ben using GarageBand, much EASIER solution.
True but HORRIBLE audio quality – Skype, sadly, is much better.
While I have no real experience recording podcasts (though I did download your podcast for the first time a few days ago), have you tried/considered either Audio Hijack or WireTap Pro? Both can record audio from running applications, but neither is universal yet. The WireTap developer has promised a new version soon, but when that will be I don’t know.
Audio Hijack is one component that we use – but SoundFlower is required.
I’ve opened the source in XCode and this is where I get,
1. I open soundflower.pbproj, XCode notifies me that it needs to be updated and updates it to .xcodeproj
2. I select Soundflower in the Groups and Files section after opening the new file. I press Info and then select the Build tab. Double click architecture and select build for Intel and PowerPC.
3. Build, and you will get 5 errors. 4 of those will be regarding the Conversion of AbsoluteTime* to uint64_t. The other one will say Tool:0: Command /Developer/Private/jam failed with exit code 1.
I believe that there are two ways of going about this problem, neither I know how to do. Build the project with GCC 3.3 which I cannot figure out how to do. That is the easier solution it seems, or rewrite the AbsoluteTime code to uint64_t, which I don’t know how to do because I’m not familiar with C++. With a little investigation and a bit of programming experience you can probably find the solution and rewrite it yourself in an hour.
I’ll keep looking into it.
So, you’re sure that if you compile with GCC 3.3, you own’t get any errors?
I’m not entirely certain, but I think that would be your best bet.
Thanks for posting about this! I’ve been waiting for someone to recompile this thing to x86.
I figured out how to change the compiler. If you double click on “SoundflowerDriver” under Targets, a new windows pops up. From there you choose “GCC Compiler Settings” and change the compiler version with the first popup menu. I tried compiling with gcc 3.3, it yields the same errors that you get with gcc 4.0. But if you compile with gcc 3.1, you get only one error, the “Command /Developer/Private/jam failed with exit code 1″ error.
Seems like gcc 2.95 was jus tmore lax about this sort of thing since C++ doesn’t allow you to implicitly cast random types to stucts/classes. Half the job can be done with plain ole casting and the rest by implicit casting, the real problem here is getting the entire thing to compile universal since it’s a jam target instead of native Xcode target. Someone would have to rebuild the project and fix those problems while they are at it.
In order to get it to compile, just change those lines to the following:
Line 584-587:
AbsoluteTime time;
clock_get_uptime((uint64_t *)&time);
absolutetime_to_nanoseconds(*(uint64_t *) &time, &nextTime);
nextTime += blockTimeoutNS;
Line 681-687:
// calculate next time to fire, by taking the time and comparing it to
// the time we requested.
UInt64 thisTimeNS;
AbsoluteTime time;
clock_get_uptime((uint64_t *)&time);
absolutetime_to_nanoseconds(*(uint64_t *) &time, &thisTimeNS);
Then Soundflower will compile for you and you can drop it in your extensions dir and be happy. Since this is internet code, you can’t blame me if the extension morphs and suddenly gains the ability to eat your children and loved ones.
I upgraded the target to a native xcode target and using Karl’s advice was able to get the project to compile using gcc 4.0.
Here’s the updated source: http://www.dibblecreekdesign.com/ModifiedSFSource.zip
and here’s the Soundflower.kext file that is yielded when the project is built:
http://www.dibblecreekdesign.com/Soundflower.kext.zip
Derek – I’ll test the file when I’m at my MacBook later tonight, and I would be more then glad to host it if you want.
_d
Ok sounds good. Also, i’m not familiar with the process of creating package installers so hopefully someone with that area of expertise can pkg up the .kext file. It looks like the file needs to be installed here: /System/Library/Extensions
Yea – once it is tested, I can get some to PKG it.
I am so excited that this could work!
You don’t need Soundflower anymore with Hijack Pro–it has all of that functionality built into it now. I used to have to use Soundflower until the latest AHP came out–Skype and all of that can be piped right in.
Great!!!!!!! :o)
I tried for myself to get soundflower work on a mac intel, but…
anyway, this works!! Thanks!!!
PS: I really don’t know what a pay tool like AudioHijack has to do with it…
I need Soundflower, cause I don’t want AudioHijack.
Dan, did Soundflower work with your MacBook Pro?
It did – I am doing a major test on it tonight.
Dan,
Were the tests successful?
I have made an intel only (not universal) binary version of Soundflower. The file and instructions on how to build/install it can be found on:
http://homepage.mac.com/volker_h/SoundFlower_intel/Site/Compiling%20Soundflower%20for%20Intel%20Macs.html
hi, thanks for posting instructions and the compiled for intel version of soundflower.kext.
being new to macs, can someone help me out:
i downloaded the compiled for intel version of soundflower.kext
i copied it into system/library/extensions
i restarted the machine
when it starts, it says soundflower.kext was installed imrproperly and cannot be used.
i’m sure i’m doing something really basic wrong, can anyone help me?
http://www.tuaw.com/2006/08/08/soundflower-now-universal/