[PD-dev] Creating an external / sinewave equation example

Patrice Colet colet.patrice at free.fr
Sat Sep 10 04:37:59 CEST 2011


----- "Rick T" <ratulloch at gmail.com> a écrit :

> On Fri, Sep 9, 2011 at 2:46 PM, Patrice Colet < colet.patrice at free.fr
> > wrote:
> 
> 
> Hello, I'm not a C expert but I see errors in your code
> 
> ----- "Rick T" < ratulloch at gmail.com > a écrit :
> 
> 
> > Greetings All
> >
> >
> > I'm having trouble getting my external to work, It compiles with 5
> > warnings
> > sineq.c:48: warning: unused variable ‘x’
> > sineq.c:49: warning: unused variable ‘in1’
> > sineq.c:50: warning: unused variable ‘in2’
> > sineq.c:51: warning: unused variable ‘in3’
> > sineq.c:52: warning: unused variable ‘in4’
> >
> 
> in http://iem.at/pd/externals-HOWTO/node6.html it's not a t_float but
> a t_sample for using those variables
> 
> 
> 
> True but the variables in my external are floats not samples like in
> the example pan~ which takes in 2 different signals. I'm taking in 4
> different floats (numbers)
> 

 Allright, maybe you should directly name your variables amp freq phase and vertoff
instead of in1 in2 in3 and in4


> 
> 
> >
> > It does a "make" successfully but I get this warning message
> > /usr/bin/ld: warning: cannot find entry symbol xport_dynamic;
> > defaulting to 00000000000007f0
> >
> 
> it's certainly caused by your makefile during linking, it's rather
> export_dynamic, you've certainly made a typo ^^
> 
> 
> 
> I thought so to but when I take a look at the make file it looks fine
> here's a link to the code in (pastebin)
> 

 Okay, in fact you should write:

 -Wl,-export-dynamic to pass it with gcc



> >
> > but when I try and add it in PD it says "couldn't create". I've
> looked
> > at the pan~ tutorial and the d_osc.c file as recommended, which did
> > help. I tried to take pieces from the two which I thought were
> > applicable to my situation but I'm still having some issues.
> >
> 
> maybe a little look into bassmu~ source code could also be interesting
> 
> 
> 
> Do you know the name for the source file or know where I can find it?
> I typed in bassmu~
> in PD and nothing came back.
>

ah sorry I've made a typo :D
it's bassemu~

you can get it in pd-extended externals sources

> 
> 
> 
> 
> 
> 
> >
> > Here's a link to the workflow (dropbox)
> > http://dl.dropbox.com/u/6576402/questions/pd/Sine_EQ_Diagram.jpg
> >
> >
> > Here's a link to the C code online (pastebin)
> > http://pastebin.com/9rK3szUE
> >
> >
> >
> >
> > My external is a reproduction of the sinewave equation with 4 inputs
> > and one output my logic is to have 4 inlets one for the
> > frequency,amplitude,phase and vertical offset and an output for the
> > created signal. Granted this isn't the final equation but this will
> > help me understand how to create the full equation once done. If you
> > want to see the full equation I'll be using here's a link to it
> below.
> > Basically it's a 1 second periodic signal with the sample rate at
> > 44100 which the equation gives me control over the
> > frequency,amplitude,phase and vertical offset, which will be
> > controlled by a usb midi controller.
> >
> >
> > Another question I have is what do I use for the t (time) for my
> final
> > equation is that the t_sample object in PD? or do I need to create a
> > for loop counting from 1-44100 for a 1 second 44100 sampled
> equation?
> >
> >
> > http://dl.dropbox.com/u/6576402/questions/eq1.txt
> >
> >
> >
> >
> > PS: I'm compiling on ubuntu 10.04 using gcc
> >
> > On Sun, Sep 4, 2011 at 12:13 PM, Martin Peach <
> > martin.peach at sympatico.ca > wrote:
> >
> >
> > On 2011-09-04 16:52, Rick T wrote:
> > ...
> >
> >
> >
> >
> > I've been able to find instructions on how to create a hello world
> > C-external but not one that creates a simple sine wave from a
> sinewave
> > equation like A*sin(w*t+p)
> > ( https://secure.wikimedia.org/ wikipedia/en/wiki/Sine_wave ) Does
> > anyone
> > have one or know where to find one.
> >
> > The canonical reference is here:
> > http://iem.at/pd/externals- HOWTO/node6.html
> > You just need to plug your equation into the perform routine.
> > Also check the source for osc~ in d_osc.c of the Pd source, which
> uses
> > a fancy 32-bit float cosine table scanning method that was useful
> when
> > it mattered but is getting obsolete as a call to sin() is probably
> > just as fast nowadays.
> >
> > Martin
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > Pd-dev mailing list
> > Pd-dev at iem.at
> > http://lists.puredata.info/listinfo/pd-dev
> 
> --
> Patrice Colet
> 
> 
> 
> Aloha
> and thanks for the help every bit helps --

-- 
Patrice Colet 



More information about the Pd-dev mailing list