[PD] Libpd running in OS X app

Rich E reakinator at gmail.com
Sun Jul 7 04:02:37 CEST 2013


I started adding support for using PdAudioUnit in a Cocoa / OS X app
(PdAudioController is too iOS-specific) and checked my progress into the
cocoa branch here:

https://github.com/libpd/libpd/tree/cocoa

There is a (very basic) working app at:

https://github.com/libpd/libpd/tree/cocoa/samples/cocoa_samples/CocoaPdBasic

You can also find some experimentation I did with moving towards an AUGraph
design but, in the end, I found it much more restrictive than just using
Audio Units directly.  Apologies for not finding the time to finish this,
I've been working full-time on a different project for many months now...
but hopefully once that is done I will finish off those samples, unless
someone else already has.

In essence, there were only a few things that needed to be modified. Off
the top of my head, they were:

- switch the audio unit to kAudioUnitSubType_HALOutput
- enable an input audio device (required on OS X, not on iOS)
- fix some Obj-C syntax issues that are different on OS X (property
synthesis generation I believe)

By the way, you can use the C++ wrapper quite readily with any other
existing audio framework that provides OS X support - I use it in cinder
apps and of course Dan provides ofxPd.  I know others who have used
portaudio or FMOD directly.

cheers,
Rich


On Sat, Jul 6, 2013 at 9:04 AM, Dan Wilcox <danomatika at gmail.com> wrote:

> Sorry. I assumed you were using the existing Obj-C PdAudioUnit and
> PdAudioController classes included with libpd which were written mainly for
> iOS. We should get around to tweaking it so it works on OSX. Did you try it?
>
> In skimming your code, it looks like you're doing everything the
> PAudioUnit does, so I don't see any obvious problems.
>
>
> On Jul 6, 2013, at 8:52 AM, Joe White <white.joe4 at gmail.com> wrote:
>
> Sorry that previous code had some test stuff in it, here's a slightly
> cleaner version (ARC'd)
>
> http://pastebin.com/index/1bR2Ftqn
>
> On 6 July 2013 13:47, Joe White <white.joe4 at gmail.com> wrote:
>
>> How do you mean the CoreAudio backend? I would have thought I should just
>> be able to call the process function in my render callback. Did you check
>> out the code I posted? I happy to provide that as an AudioController for
>> libpd on OSX. Messages and print objects work correctly but libpd is not
>> processing any audio.
>>
>> http://pastebin.com/1bR2Ftqn
>>
>> Cheers,
>> Joe
>>
>>
>> On 5 July 2013 23:33, Dan Wilcox <danomatika at gmail.com> wrote:
>>
>>> As far as I know, the OSX port isn't finished and the CoreAudio backend
>>> isn't hooked up. Anyone wanna help out there or sponsor us? :D
>>>
>>> On Jul 5, 2013, at 7:56 AM, pd-list-request at iem.at wrote:
>>>
>>> *From: *Joe White <white.joe4 at gmail.com>
>>>  *Subject: **[PD] Libpd running in OS X app*
>>> *Date: *July 5, 2013 7:34:47 AM EDT
>>> *To: *pd-list <pd-list at iem.at>
>>>
>>>
>>> Hi guys,
>>>
>>> Does anyone have any experience running libpd in an OS X app, using
>>> CoreAudio.
>>>
>>> I'm able to run a patch and receive print statements but I'm not getting
>>> any audio output and DSP doesn't seem to be processing. I created a quick
>>> test tone in code to see if it was my audio unit but that works. My main
>>> problem it seems is that after calling
>>>
>>>   [PdBase processFloatWithInputBuffer:leftBuffer outputBuffer:leftBuffer
>>>  ticks:ticks];
>>>
>>> ...the buffer is still empty. Anyone have any ideas?
>>>
>>> I'm calling [PdBase computeAudio:] just before I start the AudioUnit.
>>> Here's the whole controller class if that helps:
>>> http://pastebin.com/eYf1Facp
>>>
>>> Any help would be much appreciated!
>>>
>>> Many thanks,
>>>
>>> Joe
>>>
>>>
>>>  --------
>>> Dan Wilcox
>>> @danomatika
>>> danomatika.com
>>> robotcowboy.com
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Follow me on Twitter @diplojocus
>>
>
>
>
> --
> Follow me on Twitter @diplojocus
>
>
> --------
> Dan Wilcox
> @danomatika
> danomatika.com
> robotcowboy.com
>
>
>
>
>
>
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20130706/a88d1274/attachment.htm>


More information about the Pd-list mailing list