Created in early 2004, UNEASYsilence aims to deliver daily coverage of offbeat & generally geeky news. Subscribe via RSS or Email.

READING single

MacOSX Programmer Needed

Posted in Random by Dan at 9:25 pm
closeThis post was published 3 years 8 months 23 days ago and its content may not be valid anymore.

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!

25 Responses to “MacOSX Programmer Needed”

  1. Jeff says:

    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.

  2. Dan says:

    :-P – Got a bit tired there I guess

  3. Alex Tan says:

    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.

  4. Dan says:

    True but HORRIBLE audio quality – Skype, sadly, is much better.

  5. Ian says:

    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.

  6. Dan says:

    Audio Hijack is one component that we use – but SoundFlower is required.

  7. Alex Tan says:

    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.

  8. Dylan says:

    So, you’re sure that if you compile with GCC 3.3, you own’t get any errors?

  9. Alex Tan says:

    I’m not entirely certain, but I think that would be your best bet.

  10. Tim Germer says:

    Thanks for posting about this! I’ve been waiting for someone to recompile this thing to x86.

  11. Derek Scott says:

    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.

  12. Karl Adam says:

    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.

  13. Karl Adam says:

    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.

  14. Derek Scott says:

    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

  15. Dan says:

    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

  16. Derek Scott says:

    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

  17. Dan says:

    Yea – once it is tested, I can get some to PKG it.

    I am so excited that this could work!

  18. Mr. X says:

    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.

  19. starlings says:

    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.

  20. Tim says:

    Dan, did Soundflower work with your MacBook Pro?

  21. Dan says:

    It did – I am doing a major test on it tonight.

  22. Tim Germer says:

    Dan,

    Were the tests successful?

  23. vh says:

    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

  24. jes says:

    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?

Additional comments powered by BackType