Re: [PD] polynomial pairs in lpc filter
Ah! Now you've piqued my interest. I wonder if it would also run on a Bela board (Beaglebone Black hat - I have one of these). It's really good that there's some low-latency platforms in small form factors coming out now. Having gone through the grinder with this MSP->Pd port, when I get it working I'll be happy to try and phizz it into Bela. I started writing Pd externals precisely to enable speech manipulation, but I got stuck and moved on to other things. You've re-lit this fire! Ed _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Friday, 11 May 2018, 06:53:31 GMT+1, Simon Iten <itensi...@gmail.com> wrote: hi, well it is not a dissertation at all.i am working on some axoloti (a stm32 with dedicated midi and audioports, lowlatency audio board) modules for lpc playback. check out the axoloti, it’s nice!it is pretty hardware specific but sure i can share a github link, once it is up there. it progresses slowly right now, since i have a life as well (music…) On 11 May 2018, at 03:46, Ed Kelly via Pd-list <pd-list@lists.iem.at> wrote: Oh gosh! Well spotted! It loads, but I suspect I will have to interrogate the algorithms to make sure they are the correct interpretation of the vDSP algorithms in the original Max objects. This was the main part, and I've been a bit rusty at this - it's got me almost up-to-scratch again. A few more modules to port and it might just work! Thanks Christof, and all of you...but Simon Iten - when you've finished your dissertation could you share your results? Still on it... Ed _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Friday, 11 May 2018, 01:21:29 GMT+1, Christof Ressi <christof.re...@gmx.at> wrote: you forgot to return your object (x) in mbc_lpc_tilde_new :-) Christof Gesendet: Freitag, 11. Mai 2018 um 02:06 Uhr Von: "Ed Kelly via Pd-list" <pd-list@lists.iem.at> An: padovani <zepadovani.li...@gmail.com> Cc: "Pd list" <pd-list@lists.iem.at> Betreff: Re: [PD] polynomial pairs in lpc filter Jose... I've stuck my head in the lion's mouth so I may as well go in for one more bite, although I promise you that IOhannes Zmoelnig is a REALLY NICE GUY. I agree that edkellytista9 is a pretty stupid github name. It was done in a hurry for working on another project, but I'm setting up a more serious one because...you know...presentation is important. I'm using Makefile.pdlibbuilder now - very cool. And deken ekext-0.2 coming soon. I have a house. It's a bit of a dump but has a studio. I don't live there yet. We need to get the builders in! ...and my mbc_lpc~ port compiles but spits out an error: mbc_lpc~: initializing mbc_lpc~: free memory... mbc_lpc~: allocated memory Generating Hamming window for LPC analysis mbc_lpc~ ... didn't return a patchable object mbc_lpc~ ... couldn't create I still don't know why. Perhaps Iohannes can help? Ed _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Monday, 7 May 2018, 09:54:49 GMT+1, padovani <zepadovani.li...@gmail.com> wrote: Got late into this discussion, but I'm really interested in this project and would like to help (even if I don't have much experience coding new objects and have been a little busy with my classes at the University). Ed, any further success last weeks? well... also with the house... ;) José H. 2018-04-23 4:45 GMT-03:00 IOhannes m zmoelnig <zmoel...@iem.at[mailto:zmoel...@iem.at]>:On 2018-04-23 00:50, Christof Ressi wrote: >> - please mark all your functions as static. > > except for the setup function, of course. just to prevent a possible source > of further frustration :-). > ouch. thanks for pointing that out! __ _ Pd-list@lists.iem.at[mailto:Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/ listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list] ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list] ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
hi, well it is not a dissertation at all. i am working on some axoloti (a stm32 with dedicated midi and audioports, lowlatency audio board) modules for lpc playback. check out the axoloti, it’s nice! it is pretty hardware specific but sure i can share a github link, once it is up there. it progresses slowly right now, since i have a life as well (music…) > On 11 May 2018, at 03:46, Ed Kelly via Pd-list <pd-list@lists.iem.at> wrote: > > Oh gosh! Well spotted! > > It loads, but I suspect I will have to interrogate the algorithms to make > sure they are the correct interpretation of the vDSP algorithms in the > original Max objects. This was the main part, and I've been a bit rusty at > this - it's got me almost up-to-scratch again. A few more modules to port and > it might just work! > > Thanks Christof, and all of you...but > > Simon Iten - when you've finished your dissertation could you share your > results? > > Still on it... > Ed > > > _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ > > For Lone Shark releases, Pure Data software and published Research, go to > http://sharktracks.co.uk <http://sharktracks.co.uk/> > > > On Friday, 11 May 2018, 01:21:29 GMT+1, Christof Ressi > <christof.re...@gmx.at> wrote: > > > you forgot to return your object (x) in mbc_lpc_tilde_new :-) > > Christof > > > Gesendet: Freitag, 11. Mai 2018 um 02:06 Uhr > Von: "Ed Kelly via Pd-list" <pd-list@lists.iem.at > <mailto:pd-list@lists.iem.at>> > An: padovani <zepadovani.li...@gmail.com <mailto:zepadovani.li...@gmail.com>> > Cc: "Pd list" <pd-list@lists.iem.at <mailto:pd-list@lists.iem.at>> > Betreff: Re: [PD] polynomial pairs in lpc filter > > Jose... > I've stuck my head in the lion's mouth so I may as well go in for one more > bite, although I promise you that IOhannes Zmoelnig is a REALLY NICE GUY. > > > I agree that edkellytista9 is a pretty stupid github name. It was done in a > hurry for working on another project, but I'm setting up a more serious one > because...you know...presentation is important. > > I'm using Makefile.pdlibbuilder now - very cool. And deken ekext-0.2 coming > soon. > > I have a house. It's a bit of a dump but has a studio. I don't live there > yet. We need to get the builders in! > > > > ...and my mbc_lpc~ port compiles but spits out an error: > mbc_lpc~: initializing > mbc_lpc~: free memory... > mbc_lpc~: allocated memory > Generating Hamming window for LPC analysis > mbc_lpc~ > ... didn't return a patchable object > mbc_lpc~ > ... couldn't create > > I still don't know why. Perhaps Iohannes can help? > Ed > > _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ > > For Lone Shark releases, Pure Data software and published Research, go to > http://sharktracks.co.uk <http://sharktracks.co.uk > > > > > > > On Monday, 7 May 2018, 09:54:49 GMT+1, padovani <zepadovani.li...@gmail.com > <mailto:zepadovani.li...@gmail.com>> wrote: > > > > Got late into this discussion, but I'm really interested in this project and > would like to help (even if I don't have much experience coding new objects > and have been a little busy with my classes at the University). > > Ed, any further success last weeks? well... also with the house... ;) > > José H. > > > > > 2018-04-23 4:45 GMT-03:00 IOhannes m zmoelnig <zmoel...@iem.at > <mailto:zmoel...@iem.at>[mailto:zmoel...@iem.at <mailto:zmoel...@iem.at>]>:On > 2018-04-23 00:50, Christof Ressi wrote: > >> - please mark all your functions as static. > > > > except for the setup function, of course. just to prevent a possible source > > of further frustration :-). > > > > ouch. > thanks for pointing that out! > > > > __ _ > Pd-list@lists.iem.at > <mailto:Pd-list@lists.iem.at>[mailto:Pd-list@lists.iem.at > <mailto:Pd-list@lists.iem.at>] mailing list > UNSUBSCRIBE and account-management -> https://lists.puredata.info/ > <https://lists.puredata.info/>listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list > <https://lists.puredata.info/listinfo/pd-list>] > > > ___ Pd-list@lists.iem.at > <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management > -> https://lists.puredata.info/listinfo/pd-list > <https://lists.puredata.info/listinfo/pd-list>[https://lists.puredata.info/listinfo/pd-list > <https://lists.puredata.info/listinfo/pd-list>] > ___ > Pd-list@lists.iem.at mailing list > UNSUBSCRIBE and account-management -> > https://lists.puredata.info/listinfo/pd-list ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
Oh gosh! Well spotted! It loads, but I suspect I will have to interrogate the algorithms to make sure they are the correct interpretation of the vDSP algorithms in the original Max objects. This was the main part, and I've been a bit rusty at this - it's got me almost up-to-scratch again. A few more modules to port and it might just work! Thanks Christof, and all of you...but Simon Iten - when you've finished your dissertation could you share your results? Still on it... Ed _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Friday, 11 May 2018, 01:21:29 GMT+1, Christof Ressi <christof.re...@gmx.at> wrote: you forgot to return your object (x) in mbc_lpc_tilde_new :-) Christof Gesendet: Freitag, 11. Mai 2018 um 02:06 Uhr Von: "Ed Kelly via Pd-list" <pd-list@lists.iem.at> An: padovani <zepadovani.li...@gmail.com> Cc: "Pd list" <pd-list@lists.iem.at> Betreff: Re: [PD] polynomial pairs in lpc filter Jose... I've stuck my head in the lion's mouth so I may as well go in for one more bite, although I promise you that IOhannes Zmoelnig is a REALLY NICE GUY. I agree that edkellytista9 is a pretty stupid github name. It was done in a hurry for working on another project, but I'm setting up a more serious one because...you know...presentation is important. I'm using Makefile.pdlibbuilder now - very cool. And deken ekext-0.2 coming soon. I have a house. It's a bit of a dump but has a studio. I don't live there yet. We need to get the builders in! ...and my mbc_lpc~ port compiles but spits out an error: mbc_lpc~: initializing mbc_lpc~: free memory... mbc_lpc~: allocated memory Generating Hamming window for LPC analysis mbc_lpc~ ... didn't return a patchable object mbc_lpc~ ... couldn't create I still don't know why. Perhaps Iohannes can help? Ed _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Monday, 7 May 2018, 09:54:49 GMT+1, padovani <zepadovani.li...@gmail.com> wrote: Got late into this discussion, but I'm really interested in this project and would like to help (even if I don't have much experience coding new objects and have been a little busy with my classes at the University). Ed, any further success last weeks? well... also with the house... ;) José H. 2018-04-23 4:45 GMT-03:00 IOhannes m zmoelnig <zmoel...@iem.at[mailto:zmoel...@iem.at]>:On 2018-04-23 00:50, Christof Ressi wrote: >> - please mark all your functions as static. > > except for the setup function, of course. just to prevent a possible source > of further frustration :-). > ouch. thanks for pointing that out! __ _ Pd-list@lists.iem.at[mailto:Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/ listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list] ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list] ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
you forgot to return your object (x) in mbc_lpc_tilde_new :-) Christof Gesendet: Freitag, 11. Mai 2018 um 02:06 Uhr Von: "Ed Kelly via Pd-list" <pd-list@lists.iem.at> An: padovani <zepadovani.li...@gmail.com> Cc: "Pd list" <pd-list@lists.iem.at> Betreff: Re: [PD] polynomial pairs in lpc filter Jose... I've stuck my head in the lion's mouth so I may as well go in for one more bite, although I promise you that IOhannes Zmoelnig is a REALLY NICE GUY. I agree that edkellytista9 is a pretty stupid github name. It was done in a hurry for working on another project, but I'm setting up a more serious one because...you know...presentation is important. I'm using Makefile.pdlibbuilder now - very cool. And deken ekext-0.2 coming soon. I have a house. It's a bit of a dump but has a studio. I don't live there yet. We need to get the builders in! ...and my mbc_lpc~ port compiles but spits out an error: mbc_lpc~: initializing mbc_lpc~: free memory... mbc_lpc~: allocated memory Generating Hamming window for LPC analysis mbc_lpc~ ... didn't return a patchable object mbc_lpc~ ... couldn't create I still don't know why. Perhaps Iohannes can help? Ed _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Monday, 7 May 2018, 09:54:49 GMT+1, padovani <zepadovani.li...@gmail.com> wrote: Got late into this discussion, but I'm really interested in this project and would like to help (even if I don't have much experience coding new objects and have been a little busy with my classes at the University). Ed, any further success last weeks? well... also with the house... ;) José H. 2018-04-23 4:45 GMT-03:00 IOhannes m zmoelnig <zmoel...@iem.at[mailto:zmoel...@iem.at]>:On 2018-04-23 00:50, Christof Ressi wrote: >> - please mark all your functions as static. > > except for the setup function, of course. just to prevent a possible source > of further frustration :-). > ouch. thanks for pointing that out! __ _ Pd-list@lists.iem.at[mailto:Pd-list@lists.iem.at] mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/ listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list] ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list] ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
Jose... I've stuck my head in the lion's mouth so I may as well go in for one more bite, although I promise you that IOhannes Zmoelnig is a REALLY NICE GUY. I agree that edkellytista9 is a pretty stupid github name. It was done in a hurry for working on another project, but I'm setting up a more serious one because...you know...presentation is important. I'm using Makefile.pdlibbuilder now - very cool. And deken ekext-0.2 coming soon. I have a house. It's a bit of a dump but has a studio. I don't live there yet. We need to get the builders in! ...and my mbc_lpc~ port compiles but spits out an error: mbc_lpc~: initializing mbc_lpc~: free memory... mbc_lpc~: allocated memory Generating Hamming window for LPC analysis mbc_lpc~ ... didn't return a patchable object mbc_lpc~ ... couldn't create I still don't know why. Perhaps Iohannes can help? Ed _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Monday, 7 May 2018, 09:54:49 GMT+1, padovaniwrote: Got late into this discussion, but I'm really interested in this project and would like to help (even if I don't have much experience coding new objects and have been a little busy with my classes at the University). Ed, any further success last weeks? well... also with the house... ;) José H. 2018-04-23 4:45 GMT-03:00 IOhannes m zmoelnig : On 2018-04-23 00:50, Christof Ressi wrote: >> - please mark all your functions as static. > > except for the setup function, of course. just to prevent a possible source > of further frustration :-). > ouch. thanks for pointing that out! __ _ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/ listinfo/pd-list /* * LPC Toolkit * By Mark Cartwright * Pure Data port by Edward Kelly 2018 * BSD licence * * */ #include "m_pd.h" #include //#include //#include static t_class *mbc_lpc_tilde_class; #define MAX_ORDER 200 #define NLOG2(x) (ceil(log2(x))) #define POW2(x) (1 << x) #define TWOPI M_PI * 2 #define DEFAULT_FS 44100 #define DEFAULT_FRAMERATE 100 #define DEFAULT_V_SIZE 64 #define DEFAULT_ORDER 32 typedef struct _DSPcomplex { //gsl_vector_float* real; //gsl_vector_float* imag; t_float* fReal; t_float* fImag; } t_DSPcomplex; //#define REAL(z,i) gsl_vector_float_set(z,2*(i)) //#define IMAG(z,i) gsl_vector_float_setz(z,2*(i)+1) typedef struct _mbc_lpc_tilde { t_object x_obj; // the object itself (t_pxobject in MSP) t_float dummy; //t_float* l_frame_buff; //input frame buffer //gsl_vector_float* l_frame_buff; //input frame buffer //t_float* l_winframe_buff; //windowed input frame buffer //gsl_vector_float* l_winframe_buff; //windowed input frame buffer //t_float* l_outCoeff_buff; //coefficient signal //gsl_vector_float* l_outCoeff_buff; //coefficient signal //t_float* l_outParcor_buff; //PARCOR coeffs //gsl_vector_float* l_outParcor_buff; //PARCOR coeffs //t_float* l_outError_buff; //error signal //gsl_vector_float* l_outError_buff; //error signal //t_float* l_win; //analysis window //gsl_vector_float* l_win; //analysis window //t_float* l_R; //gsl_vector_float* l_R; /*-- non-GSL versions --*/ t_float* frameBuffer; t_float* winFrameBuffer; t_float* outCoeffBuffer; t_float* parcorBuffer; t_float* errorSigBuffer; t_float* window; t_float* lR; // t_float* vectorBuffer; double* l_W; double* l_E; double* l_K; double l_G; double** l_A; double l_x1; //last samples of pre-emphasis filter float l_b1; //pre-emph coefficient int l_order; //predictor order int l_order_max; //max order according to fs = order * frame_rate int l_preemph; //pre-epmhasis filter on/off long l_frame_rate; //analysis frame rate int l_frame_size; //analysis frame size, where fs = frame_rate * frame_size * 2 int l_hop_size;//hop_size = frame_size * 2 (b/c of overlap) int l_inframe_idx; //current inframe buffer index int l_outframe_idx; //current outframe buffer index long l_v_size; //vector size float l_fs; //sampling rate int l_maxnfft; //fft length int l_log2nfft; //log2(fft length) int initOrder, initFramerate, initPreemph; // initialization values int j; //FFTSetup l_fftsetup;//FFTSetup for vDSP FFT functions
Re: [PD] polynomial pairs in lpc filter
Got late into this discussion, but I'm really interested in this project and would like to help (even if I don't have much experience coding new objects and have been a little busy with my classes at the University). Ed, any further success last weeks? well... also with the house... ;) José H. 2018-04-23 4:45 GMT-03:00 IOhannes m zmoelnig: > On 2018-04-23 00:50, Christof Ressi wrote: > >> - please mark all your functions as static. > > > > except for the setup function, of course. just to prevent a possible > source of further frustration :-). > > > > ouch. > thanks for pointing that out! > > > > ___ > Pd-list@lists.iem.at mailing list > UNSUBSCRIBE and account-management -> https://lists.puredata.info/ > listinfo/pd-list > > ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
On 2018-04-23 00:50, Christof Ressi wrote: >> - please mark all your functions as static. > > except for the setup function, of course. just to prevent a possible source > of further frustration :-). > ouch. thanks for pointing that out! signature.asc Description: OpenPGP digital signature ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
> - please mark all your functions as static. except for the setup function, of course. just to prevent a possible source of further frustration :-). Gesendet: Sonntag, 22. April 2018 um 22:08 Uhr Von: "Ed Kelly via Pd-list" <pd-list@lists.iem.at> An: pd-list@lists.iem.at Betreff: Re: [PD] polynomial pairs in lpc filter Ouch! _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Friday, 20 April 2018, 22:26:46 GMT+1, IOhannes m zmölnig <zmoel...@iem.at> wrote: On 04/20/2018 11:06 PM, Ed Kelly via Pd-list wrote: > Code was shared previously on a github, but here's the offending article, and > the link. > > The botherer is called mbc_lpc~.c > > edkellytista9/LPCToolkitPd you know, "edkellytista9/LPCToolkitPd" can be about everything; why would i have thought about a github project? anyhow. compiling your file prints a huge fat warning: > mbc_lpc~.c:661:1: warning: control reaches end of non-void function [-Wreturn-type] which is indeed true, and it is telling you that your constructor function lpc_new() is not returning anything (and definitely not an object). the externals howto [1] says: > The constructor has to return a pointer to the instantiated > data space. but even with that fixed, it doesn't load. now i've asked you to: - run Pd with "-verbose". - check the console. to which you replied: > tried...(all pd search paths)...and failed > tried...(current directory)...and failed however, when i try to load your external i get: > tried /tmp/zmoelnig/LPCToolkitPd/mbc_lpc~.l_ia64 and succeeded > load_object: Symbol "mbc_lpc_tilde_setup" not found which is writing out as plain as possible that your external misses the only function that it *must* have in order to be any use to Pd: the callback function that allows your external to bootstrap. (while blindly copying, you renamed your object but forgot to rename the setup function). apart from that: - please mark all your functions as static. you will get nameclashes otherwise. making your objects use totally different functions than you expect (and possible making the object of other people use different functions). - template Makefile 1.0.14? seriously? consider switching to pdlibbuilder. it's much nicer. for starters, it doesn't make bogus file-extensions on linux/amd64. gfmdsar IOhannes [1] https://github.com/pure-data/externals-howto#constructor-instantiation-of-an-object[https://github.com/pure-data/externals-howto#constructor-instantiation-of-an-object] > > > | > | > | > | | | > > | > > | > | > | | > edkellytista9/LPCToolkitPd > > LPCToolkitPd - Mark Cartwright's LPC Toolkit for Pure Data > | > > | > > | > > > > > > _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ > > For Lone Shark releases, Pure Data software and published Research, go to > http://sharktracks.co.uk [http://sharktracks.co.uk ] > > On Friday, 20 April 2018, 22:02:16 GMT+1, IOhannes m zmölnig ><zmoel...@iem.at[mailto:zmoel...@iem.at]> wrote: > > On 04/20/2018 04:38 PM, Ed Kelly via Pd-list wrote: >> Apologies - I'm trying to do this while buying a house...I don't know if >> that is simple in Austria but it isn't here. > > good luck. > i'm sure it is a hell of stuff to do. > >> After reading your email I assumed it was something new, but of course I had >> just copied, pasted and altered code from a previous external (and forgot> >> Perhaps it's to do with linking to libm, so I'll check the makefile > once I'm back in a reasonably stable (time-wise) environment. > > in the meantime, you could also share your code with us. > >> BUT - I've never really understood (in ~13 years of external development) >> what all those args to class_new() did before, and you've forced me to look >> deeper into m_pd.h > > fwiw, each and every argument to class_new() is covered by the externals > howto. > >> I should thank you for that - and yes, I learned how to write externals by >> reading your howto, in 2005 I believe. > > :-) > > > gdsamr > IOhannes > ___ > Pd-list@lists.iem.at[mailto:Pd-list@lists.iem.at] mailing list > UNSUBSCRIBE and account-management -> > https://lists.puredata.info/listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list] > > > > > ___ > Pd-list@lists.iem.at[mailto:Pd-list@lists.iem.at] mailing list > UNSUBSCRIBE and account-management -> > https://lists.puredata.info/listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list] > ___ Pd-list@lists.iem.at[m
Re: [PD] polynomial pairs in lpc filter
Ouch! _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Friday, 20 April 2018, 22:26:46 GMT+1, IOhannes m zmölnigwrote: On 04/20/2018 11:06 PM, Ed Kelly via Pd-list wrote: > Code was shared previously on a github, but here's the offending article, and > the link. > > The botherer is called mbc_lpc~.c > > edkellytista9/LPCToolkitPd you know, "edkellytista9/LPCToolkitPd" can be about everything; why would i have thought about a github project? anyhow. compiling your file prints a huge fat warning: > mbc_lpc~.c:661:1: warning: control reaches end of non-void function [-Wreturn-type] which is indeed true, and it is telling you that your constructor function lpc_new() is not returning anything (and definitely not an object). the externals howto [1] says: > The constructor has to return a pointer to the instantiated > data space. but even with that fixed, it doesn't load. now i've asked you to: - run Pd with "-verbose". - check the console. to which you replied: > tried...(all pd search paths)...and failed > tried...(current directory)...and failed however, when i try to load your external i get: > tried /tmp/zmoelnig/LPCToolkitPd/mbc_lpc~.l_ia64 and succeeded > load_object: Symbol "mbc_lpc_tilde_setup" not found which is writing out as plain as possible that your external misses the only function that it *must* have in order to be any use to Pd: the callback function that allows your external to bootstrap. (while blindly copying, you renamed your object but forgot to rename the setup function). apart from that: - please mark all your functions as static. you will get nameclashes otherwise. making your objects use totally different functions than you expect (and possible making the object of other people use different functions). - template Makefile 1.0.14? seriously? consider switching to pdlibbuilder. it's much nicer. for starters, it doesn't make bogus file-extensions on linux/amd64. gfmdsar IOhannes [1] https://github.com/pure-data/externals-howto#constructor-instantiation-of-an-object > > > | > | > | > | | | > > | > > | > | > | | > edkellytista9/LPCToolkitPd > > LPCToolkitPd - Mark Cartwright's LPC Toolkit for Pure Data > | > > | > > | > > > > > > _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ > > For Lone Shark releases, Pure Data software and published Research, go to > http://sharktracks.co.uk > > On Friday, 20 April 2018, 22:02:16 GMT+1, IOhannes m zmölnig > wrote: > > On 04/20/2018 04:38 PM, Ed Kelly via Pd-list wrote: >> Apologies - I'm trying to do this while buying a house...I don't know if >> that is simple in Austria but it isn't here. > > good luck. > i'm sure it is a hell of stuff to do. > >> After reading your email I assumed it was something new, but of course I had >> just copied, pasted and altered code from a previous external (and forgot> >> Perhaps it's to do with linking to libm, so I'll check the makefile > once I'm back in a reasonably stable (time-wise) environment. > > in the meantime, you could also share your code with us. > >> BUT - I've never really understood (in ~13 years of external development) >> what all those args to class_new() did before, and you've forced me to look >> deeper into m_pd.h > > fwiw, each and every argument to class_new() is covered by the externals > howto. > >> I should thank you for that - and yes, I learned how to write externals by >> reading your howto, in 2005 I believe. > > :-) > > > gdsamr > IOhannes > ___ > Pd-list@lists.iem.at mailing list > UNSUBSCRIBE and account-management -> > https://lists.puredata.info/listinfo/pd-list > > > > > ___ > Pd-list@lists.iem.at mailing list > UNSUBSCRIBE and account-management -> > https://lists.puredata.info/listinfo/pd-list > ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
On 04/20/2018 11:06 PM, Ed Kelly via Pd-list wrote: > Code was shared previously on a github, but here's the offending article, and > the link. > > The botherer is called mbc_lpc~.c > > edkellytista9/LPCToolkitPd you know, "edkellytista9/LPCToolkitPd" can be about everything; why would i have thought about a github project? anyhow. compiling your file prints a huge fat warning: > mbc_lpc~.c:661:1: warning: control reaches end of non-void function [-Wreturn-type] which is indeed true, and it is telling you that your constructor function lpc_new() is not returning anything (and definitely not an object). the externals howto [1] says: > The constructor has to return a pointer to the instantiated > data space. but even with that fixed, it doesn't load. now i've asked you to: - run Pd with "-verbose". - check the console. to which you replied: > tried...(all pd search paths)...and failed > tried...(current directory)...and failed however, when i try to load your external i get: > tried /tmp/zmoelnig/LPCToolkitPd/mbc_lpc~.l_ia64 and succeeded > load_object: Symbol "mbc_lpc_tilde_setup" not found which is writing out as plain as possible that your external misses the only function that it *must* have in order to be any use to Pd: the callback function that allows your external to bootstrap. (while blindly copying, you renamed your object but forgot to rename the setup function). apart from that: - please mark all your functions as static. you will get nameclashes otherwise. making your objects use totally different functions than you expect (and possible making the object of other people use different functions). - template Makefile 1.0.14? seriously? consider switching to pdlibbuilder. it's much nicer. for starters, it doesn't make bogus file-extensions on linux/amd64. gfmdsar IOhannes [1] https://github.com/pure-data/externals-howto#constructor-instantiation-of-an-object > > > | > | > | > | | | > > | > > | > | > | | > edkellytista9/LPCToolkitPd > > LPCToolkitPd - Mark Cartwright's LPC Toolkit for Pure Data > | > > | > > | > > > > > > _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ > > For Lone Shark releases, Pure Data software and published Research, go to > http://sharktracks.co.uk > > On Friday, 20 April 2018, 22:02:16 GMT+1, IOhannes m zmölnig >wrote: > > On 04/20/2018 04:38 PM, Ed Kelly via Pd-list wrote: >> Apologies - I'm trying to do this while buying a house...I don't know if >> that is simple in Austria but it isn't here. > > good luck. > i'm sure it is a hell of stuff to do. > >> After reading your email I assumed it was something new, but of course I had >> just copied, pasted and altered code from a previous external (and forgot> >> Perhaps it's to do with linking to libm, so I'll check the makefile > once I'm back in a reasonably stable (time-wise) environment. > > in the meantime, you could also share your code with us. > >> BUT - I've never really understood (in ~13 years of external development) >> what all those args to class_new() did before, and you've forced me to look >> deeper into m_pd.h > > fwiw, each and every argument to class_new() is covered by the externals > howto. > >> I should thank you for that - and yes, I learned how to write externals by >> reading your howto, in 2005 I believe. > > :-) > > > gdsamr > IOhannes > ___ > Pd-list@lists.iem.at mailing list > UNSUBSCRIBE and account-management -> > https://lists.puredata.info/listinfo/pd-list > > > > > ___ > Pd-list@lists.iem.at mailing list > UNSUBSCRIBE and account-management -> > https://lists.puredata.info/listinfo/pd-list > signature.asc Description: OpenPGP digital signature ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
Code was shared previously on a github, but here's the offending article, and the link. The botherer is called mbc_lpc~.c edkellytista9/LPCToolkitPd | | | | | | | | | | | edkellytista9/LPCToolkitPd LPCToolkitPd - Mark Cartwright's LPC Toolkit for Pure Data | | | _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Friday, 20 April 2018, 22:02:16 GMT+1, IOhannes m zmölnigwrote: On 04/20/2018 04:38 PM, Ed Kelly via Pd-list wrote: > Apologies - I'm trying to do this while buying a house...I don't know if that > is simple in Austria but it isn't here. good luck. i'm sure it is a hell of stuff to do. > After reading your email I assumed it was something new, but of course I had > just copied, pasted and altered code from a previous external (and forgot> > Perhaps it's to do with linking to libm, so I'll check the makefile once I'm back in a reasonably stable (time-wise) environment. in the meantime, you could also share your code with us. > BUT - I've never really understood (in ~13 years of external development) > what all those args to class_new() did before, and you've forced me to look > deeper into m_pd.h fwiw, each and every argument to class_new() is covered by the externals howto. > I should thank you for that - and yes, I learned how to write externals by > reading your howto, in 2005 I believe. :-) gdsamr IOhannes ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list /* * LPC Toolkit * By Mark Cartwright * Pure Data port by Edward Kelly 2018 * BSD licence * * */ #include "m_pd.h" #include //#include //#include #ifdef _WIN32 # include /* MSVC or mingw on windows */ #elif defined(__linux__) || defined(__APPLE__) # include /* linux, mac, mingw, cygwin */ #else # include /* BSDs for example */ #endif static t_class *mbc_lpc_class; #define MAX_ORDER 200 #define NLOG2(x) (ceil(log2(x))) #define POW2(x) (1 << x) #define TWOPI M_PI * 2 #define DEFAULT_FS 44100 #define DEFAULT_FRAMERATE 100 #define DEFAULT_V_SIZE 64 #define DEFAULT_ORDER 32 typedef struct _DSPcomplex { //gsl_vector_float* real; //gsl_vector_float* imag; t_float* fReal; t_float* fImag; } t_DSPcomplex; //#define REAL(z,i) gsl_vector_float_set(z,2*(i)) //#define IMAG(z,i) gsl_vector_float_setz(z,2*(i)+1) typedef struct _lpc { t_object x_obj; // the object itself (t_pxobject in MSP) t_float dummy; //t_float* l_frame_buff; //input frame buffer //gsl_vector_float* l_frame_buff; //input frame buffer //t_float* l_winframe_buff; //windowed input frame buffer //gsl_vector_float* l_winframe_buff; //windowed input frame buffer //t_float* l_outCoeff_buff; //coefficient signal //gsl_vector_float* l_outCoeff_buff; //coefficient signal //t_float* l_outParcor_buff; //PARCOR coeffs //gsl_vector_float* l_outParcor_buff; //PARCOR coeffs //t_float* l_outError_buff; //error signal //gsl_vector_float* l_outError_buff; //error signal //t_float* l_win; //analysis window //gsl_vector_float* l_win; //analysis window //t_float* l_R; //gsl_vector_float* l_R; /*-- non-GSL versions --*/ t_float* frameBuffer; t_float* winFrameBuffer; t_float* outCoeffBuffer; t_float* parcorBuffer; t_float* errorSigBuffer; t_float* window; t_float* lR; // t_float* vectorBuffer; double* l_W; double* l_E; double* l_K; double l_G; double** l_A; double l_x1; //last samples of pre-emphasis filter float l_b1; //pre-emph coefficient int l_order; //predictor order int l_order_max; //max order according to fs = order * frame_rate int l_preemph; //pre-epmhasis filter on/off int l_frame_rate; //analysis frame rate int l_frame_size; //analysis frame size, where fs = frame_rate * frame_size * 2 int l_hop_size;//hop_size = frame_size * 2 (b/c of overlap) int l_inframe_idx; //current inframe buffer index int l_outframe_idx; //current outframe buffer index long l_v_size; //vector size float l_fs; //sampling rate int l_maxnfft; //fft length int l_log2nfft; //log2(fft length) int initOrder, initFramerate, initPreemph; // initialization values int j; // FFTSetup l_fftsetup;//FFTSetup for vDSP FFT functions t_DSPcomplex split; //
Re: [PD] polynomial pairs in lpc filter
On 04/20/2018 04:38 PM, Ed Kelly via Pd-list wrote: > Apologies - I'm trying to do this while buying a house...I don't know if that > is simple in Austria but it isn't here. good luck. i'm sure it is a hell of stuff to do. > After reading your email I assumed it was something new, but of course I had > just copied, pasted and altered code from a previous external (and forgot> > Perhaps it's to do with linking to libm, so I'll check the makefile once I'm back in a reasonably stable (time-wise) environment. in the meantime, you could also share your code with us. > BUT - I've never really understood (in ~13 years of external development) > what all those args to class_new() did before, and you've forced me to look > deeper into m_pd.h fwiw, each and every argument to class_new() is covered by the externals howto. > I should thank you for that - and yes, I learned how to write externals by > reading your howto, in 2005 I believe. :-) gdsamr IOhannes signature.asc Description: OpenPGP digital signature ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
Apologies - I'm trying to do this while buying a house...I don't know if that is simple in Austria but it isn't here. But, I was indeed firing blind myself. I assume you are referring to line 665 to 668 in mbc_lpc~.c: mbc_lpc_class = class_new(gensym("mbc_lpc~"), (t_newmethod)lpc_new, 0, sizeof(t_lpc), CLASS_DEFAULT, A_DEFFLOAT, 0); After reading your email I assumed it was something new, but of course I had just copied, pasted and altered code from a previous external (and forgot) Perhaps it's to do with linking to libm, so I'll check the makefile once I'm back in a reasonably stable (time-wise) environment. BUT - I've never really understood (in ~13 years of external development) what all those args to class_new() did before, and you've forced me to look deeper into m_pd.h I should thank you for that - and yes, I learned how to write externals by reading your howto, in 2005 I believe. Thanks, Ed _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Friday, 20 April 2018, 10:50:27 GMT+1, IOhannes m zmoelnigwrote: On 2018-04-20 11:31, Ed Kelly via Pd-list wrote: >> it seems that you are making it deliberately hard to help... :-) > > I am taking a stab at doind things I've never done before, and I'm quite out > of my depth! :~} > >> also, if the *only* external function you are using from m_pd.h is > [i]fft_mayer(), then it is pretty clear that the external cannot load: > you need at least class_new() and pd_new() as well... > > Ok. I've never used class_new() and pd_new() before. Can you point me in the > direction of an external that uses it? hmm... each and every one? just to make sure: with "external" you mean some dynamically loadable file that somehow adds new [object]s to Pd? if we can agree on that, you might want to read my externals howto [1]. (for completeness sake, there are other ways to write externals; but so far the only thing i've understood so far is that "it doesn't work", making it impossible to tell which path you took before you lost your way). fgmasdr IOhannes [1] https://github.com/pure-data/externals-howto ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
On 2018-04-20 11:31, Ed Kelly via Pd-list wrote: >> it seems that you are making it deliberately hard to help... :-) > > I am taking a stab at doind things I've never done before, and I'm quite out > of my depth! :~} > >> also, if the *only* external function you are using from m_pd.h is > [i]fft_mayer(), then it is pretty clear that the external cannot load: > you need at least class_new() and pd_new() as well... > > Ok. I've never used class_new() and pd_new() before. Can you point me in the > direction of an external that uses it? hmm... each and every one? just to make sure: with "external" you mean some dynamically loadable file that somehow adds new [object]s to Pd? if we can agree on that, you might want to read my externals howto [1]. (for completeness sake, there are other ways to write externals; but so far the only thing i've understood so far is that "it doesn't work", making it impossible to tell which path you took before you lost your way). fgmasdr IOhannes [1] https://github.com/pure-data/externals-howto signature.asc Description: OpenPGP digital signature ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
> it seems that you are making it deliberately hard to help... :-) I am taking a stab at doind things I've never done before, and I'm quite out of my depth! :~} > also, if the *only* external function you are using from m_pd.h is [i]fft_mayer(), then it is pretty clear that the external cannot load: you need at least class_new() and pd_new() as well... Ok. I've never used class_new() and pd_new() before. Can you point me in the direction of an external that uses it? Ed _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Friday, 20 April 2018, 07:38:32 GMT+1, IOhannes m zmoelnigwrote: On 2018-04-19 23:11, Ed Kelly via Pd-list wrote: > verbose... > > tried...(all pd search paths)...and failed > tried...(current directory)...and failed it seems that you are making it deliberately hard to help... :-) does Pd find your external? if so, does it print an error message? (raise verbosity in the Pd-console to "DEBUG" as well). > I will probably work it out sooner or later. The only external functions I'm > using are fabs() from and fft_mayer/ifft_mayer from m_pd.h for fabs() you must link against libm. also, if the *only* external function you are using from m_pd.h is [i]fft_mayer(), then it is pretty clear that the external cannot load: you need at least class_new() and pd_new() as well... fgamsdr IOhannes ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
On 2018-04-19 23:11, Ed Kelly via Pd-list wrote: > verbose... > > tried...(all pd search paths)...and failed > tried...(current directory)...and failed it seems that you are making it deliberately hard to help... :-) does Pd find your external? if so, does it print an error message? (raise verbosity in the Pd-console to "DEBUG" as well). > I will probably work it out sooner or later. The only external functions I'm > using are fabs() from and fft_mayer/ifft_mayer from m_pd.h for fabs() you must link against libm. also, if the *only* external function you are using from m_pd.h is [i]fft_mayer(), then it is pretty clear that the external cannot load: you need at least class_new() and pd_new() as well... fgamsdr IOhannes signature.asc Description: OpenPGP digital signature ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
verbose... tried...(all pd search paths)...and failed tried...(current directory)...and failed I will probably work it out sooner or later. The only external functions I'm using are fabs() from and fft_mayer/ifft_mayer from m_pd.h Ed _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Thursday, 19 April 2018, 14:14:52 GMT+1, IOhannes m zmölnigwrote: On 04/19/2018 11:48 AM, Ed Kelly via Pd-list wrote: > I remember trying to get some help with why my ported lpc object wasn't > initalizing properly earlier this week- also silence. that's probably because it was totally unclear (at least to me) what you were asking. if your object cannot load - replace "print" with "post" - run Pd with "-verbose". - check the console. check the terminal. - check the file type. - check whether all the runtime dependencies can be found. etc. gamdsr IOhannes ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
On 04/19/2018 11:48 AM, Ed Kelly via Pd-list wrote: > I remember trying to get some help with why my ported lpc object wasn't > initalizing properly earlier this week- also silence. that's probably because it was totally unclear (at least to me) what you were asking. if your object cannot load - replace "print" with "post" - run Pd with "-verbose". - check the console. check the terminal. - check the file type. - check whether all the runtime dependencies can be found. etc. gamdsr IOhannes signature.asc Description: OpenPGP digital signature ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
Hi Simon, I remember trying to extract such information from pd-list members about 13 years ago...the silence was deafening! I remember trying to get some help with why my ported lpc object wasn't initalizing properly earlier this week- also silence. However, I soldier on regardless. If you have any ideas about why my mbc_lpc~ object doesn't load then please hack it and return(github details at the bottom) but also take a look at the original code for mbc.allpass~ - it contains various methods that are commented out for calculating filter coefficients, and there may be some clues in there for you to pick at. I've never quite got to the bottom of calculating Line Spectrum Frequencies and manipulating these as formants, but it sounds like the project I was trying to pursue so many years ago (before my idiot managers pulled the funding and tried tobotch their own project together). Anyway - here's how far I've got with the port - do you think you could share ideas and code with me? it may speed things up at my end... Ed edkellytista9/LPCToolkitPd | | | | | | | | | | | edkellytista9/LPCToolkitPd LPCToolkitPd - Mark Cartwright's LPC Toolkit for Pure Data | | | _-_-_-_-_-_-_-^-_-_-_-_-_-_-_ For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk On Wednesday, 18 April 2018, 14:31:43 GMT+1, Simon Itenwrote: calculate the zeroes (roots) of the polynomial i guess. still hints are very welcome :) > On 18 Apr 2018, at 11:51, Simon Iten wrote: > > hi list, > > this is more of a general DSP question... > > i am working on an LPC playback and mangling system for axoloti. i have most > of it working and i am now trying to shift formants in the filter to change > voice character. i found functions to convert reflection coefficients into > polynomial pairs and presumably i should be able to shift filter frequencies > in this representation of the data. unfortunately i have no clue how to do > that. any hints, papers, code snippets etc. are very welcome. > > or if someone wants to take the time to explain, you are of course more then > welcome > > thanks for any suggestions > > ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Re: [PD] polynomial pairs in lpc filter
calculate the zeroes (roots) of the polynomial i guess. still hints are very welcome :) > On 18 Apr 2018, at 11:51, Simon Itenwrote: > > hi list, > > this is more of a general DSP question... > > i am working on an LPC playback and mangling system for axoloti. i have most > of it working and i am now trying to shift formants in the filter to change > voice character. i found functions to convert reflection coefficients into > polynomial pairs and presumably i should be able to shift filter frequencies > in this representation of the data. unfortunately i have no clue how to do > that. any hints, papers, code snippets etc. are very welcome. > > or if someone wants to take the time to explain, you are of course more then > welcome > > thanks for any suggestions > > ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list