[PD] Writing you own externals in PD How to?

Geoff geoffspuredata at googlemail.com
Tue Mar 17 17:00:32 CET 2009


>
Thanks for the reply
This is interesting, but I am not sure if I understand you correctly.

> A nice example of this would be building filters like biquad
> starting with just [+~], [*~] and [z~]. Then in the second round
> using them to make a synthesiser. Then in the third round using
> those to make a stand alone musical application ... all in a days
> development!


So I can actually build filters from smaller building blocks in PD,

So things like a Delay line to simulate a string is possible where by  
I can actually change the filtering in the feedback and feedforward  
paths to simulate different conditions?
I.e. using [Z~] [*] I can create things like a comb filter but then  
have the freedom to put other sorts of filtering in it to make it  
more complex i.e. simulate the end effects of strings etc. all inside  
a single object.

I thought that this can be done in PD as a test exercise but not if I  
want to create something that will actually work fast enough to be  
usable as a synthesizer. I'm glad to have been wrong!

> Develop in Pd. For a vast majority of DSP development Pd with
> variable blocksize is a perfect tool if you could only work in
> dataflow THEN: hit "compile"
>

Are there any tutorials on this any where?

> ****** Pd should be able to compile its own externals *******
>
> then you'd get an external built from a properly componentised pdlib

Where can I find further information about this?

> that you can immediately include into the running patch (no having  
> to exit
> Pd to flush cached classes), just continue building abstraction
> upon abstraction (as compiled code) this way.


Cheers
Geoff


On 17 Mar 2009, at 15:32, Andy Farnell wrote:

> On Tue, 17 Mar 2009 15:52:17 +0100
> Nicolas Montgermont <nicolas_montgermont at yahoo.fr> wrote:
>
>> Hello,
>>
>> If you have the example in faust, there is an online compiler for
>> puredata external:
>> http://faust.grame.fr/compiler.php
>> I haven't test it though.
>
>
> It works very well. Though the question you arrive at is, do
> you want to think in Faust's symbolic 'DSP algebra'? It's actually
> very elegant, but is a cognitive island (as a further aside,
> it is easier to pick up if you already think in dataflow). The problem
> is, ordinary C and C++ code isn't easy to integrate. The code  
> generated by
> the filter is tersely optimised.
>
> A temporary happy solution is to use Faust's Pd arch filter to make
> some ready made wrappers. Then just drop C/++ code into the main loop.
> It gets around the chores of building a Pd external from scratch  
> each time.
>
> But, if you are going to start doing that sort of thing, that's
> what Flext is supposed to be for, though it doesn't quite work out as
> easy as you might hope.
>
> The idea that you can compile for VST, Max, Pd or a standalone
> GUI app is very appealing, for both Flext and Faust.
>
> Ultimately, the logical thing is to amplify what Georg says:
>
> Develop in Pd. For a vast majority of DSP development Pd with
> variable blocksize is a perfect tool if you could only work in
> dataflow THEN: hit "compile"
>
> ****** Pd should be able to compile its own externals *******
>
> then you'd get an external built from a properly componentised pdlib
> that you can immediately include into the running patch (no having  
> to exit
> Pd to flush cached classes), just continue building abstraction
> upon abstraction (as compiled code) this way.
>
> A nice example of this would be building filters like biquad
> starting with just [+~], [*~] and [z~]. Then in the second round
> using them to make a synthesiser. Then in the third round using
> those to make a stand alone musical application ... all in a days
> development!
>
> as Bill Hicks would say... "just planting seeds...."
>
>
>
>
>
>
>>
>> Nicolas
>>
>> Le 17/03/09 15:28, Geoff a écrit :
>>>
>>>
>>> *Q) I want to create my own Pure data objects specifically filters
>>> starting with the examples in Julius Smiths book. What would be the
>>> most straight forward path to take to begin with given my System,  
>>> lack
>>> of experience, aims ???? what I would like is the easiest route to
>>> begin with :)*
>>>
>>>
>>
>> -- 
>> http://nim.on.free.fr
>>
>
>
> -- 
> Use the source
>
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/ 
> listinfo/pd-list





More information about the Pd-list mailing list