Hi,

Maybe partconv~ would make a good addition to Pd-extended.

I don't have CVS write access and do so little Pd development that it 
probably wouldn't make much sense to add me, but would anyone be willing to 
add partconv~ (or anything else of mine that might be appropriate, for that 
matter) to CVS?

http://www.puredata.info/Members/bensaylor/folder_contents

Ben

P.S.  Here is a patch that adds automatic FFTW wisdom-file loading and 
saving.  It speeds up initialization when you create a partconv~ object 
with the same partition size as one you've created before.  I'm not sure it 
will work on Windows, because it depends on the $HOME environment variable.  
Anyone want to give it a try?

On Thursday 05 July 2007 10:00, David Merrill wrote:
> Hello all -
> I'm setting up an installation this week that will run on Intel Macs with
> OSX, and I need to use partconv~.. Luigi - do you have this external
> compiled that you can send me a copy of?
>
> Also, this is a totally mac-noob question, but when I click "get info" on
> the pd-extended application in the applications list, there is a
> "Plug-ins" section, and bsaylor is one of the items in that list. Does
> that "get info" interface represent the Mac way to add libraries to the
> path? If not, how can I add them?
>
> thanks,
> -David M.
>
> On 3/7/07, Luigi Rensinghoff <[EMAIL PROTECTED]> wrote:
> > Am 07.03.2007 um 12:00 schrieb Steffen:
> > > On 07/03/2007, at 9.30, IOhannes m zmoelnig wrote:
> > >> if so, did it put a libfftw3f.a file somewhere? if it went to /usr/
> > >> lib/
> > >> instead of /usr/local/lib/ just edit the makefile and replace all
> > >> occurences of /usr/local/lib/libfftw3f.a by /usr/lib/libfftw3f.a (or
> > >> wherever the fftw3-dev packages put the .a-file)
> > >
> > > Ah, and Fink, which was used to install it, doesn't install to /usr/
> > > local but to /sw by default.
> >
> > it was in /sw/lib but i found it with "locate"
> >
> > Thats a success ;-) I was looking for a way to get a good reverb in
> > pd, and it works !!!!
> > In case you dont know, there are really good (and free) impulse
> > responses for "Altiverb" and "TL-Space" (A Protools plugin), and i
> > was wondering if that works in PD, it does !! And it sounds quite
> > good. If you want to give it a try.
> >
> > http://www.xs4all.nl/~fokkie/IR.htm
> >
> > some nice telefones and speakers.
> >
> > Have a nice day
> >
> > Luigi
> >
> > Do you know any other good places for impulse responses ?
> >
> > _______________________________________________
> > PD-dev mailing list
> > [email protected]
> > http://lists.puredata.info/listinfo/pd-dev
--- partconv~-0.2/partconv~.c	2005-08-12 21:45:08.000000000 -0800
+++ partconv~/partconv~.c	2006-03-04 10:11:53.000000000 -0900
@@ -29,6 +29,7 @@
 // divide work more evenly? (0, 15, 7, 23, 3, 11, 19, 27, ...)
 // someday, an SSE3 version (supposed to make complex math fast)
 
+#include <stdlib.h>
 #include <math.h>
 #include <string.h>
 #include <fftw3.h>
@@ -86,6 +87,8 @@
 	int curpart;			// current partition to convolve
 } t_partconv;
 
+static int partconv_instance_count = 0;
+
 // Determine how to divide the work as evenly as possible between calls to perform().
 static void partconv_deal_work(t_partconv *x)
 {
@@ -228,6 +231,18 @@
 
 #endif // __VEC__
 
+void partconv_get_wisdom_filename(char *s)
+{
+	// FIXME: how to do this on Windows?
+	
+	char *home = getenv("HOME");
+	*s = '\0';
+	strcat(s, home);
+	strcat(s, "/");
+	strcat(s, ".partconv-wisdom");
+	printf("%s\n", s);
+}
+
 static void partconv_free(t_partconv *x)
 {
 	int i;
@@ -241,6 +256,17 @@
 		fftwf_free(x->sumbufs[i].fd);
 		fftwf_destroy_plan(x->sumbufs[i].plan);
 	}
+
+	partconv_instance_count--;
+	if (partconv_instance_count == 0) {
+		char fname[250];
+		FILE *file;
+		printf("partconv~: saving wisdom\n");
+		partconv_get_wisdom_filename(fname);
+		file = fopen(fname, "w");
+		fftwf_export_wisdom_to_file(file);
+		fclose(file);
+	}
 }
 
 static void partconv_set(t_partconv *x, t_symbol *s)
@@ -369,6 +395,21 @@
 	x->ir_prepared = 0;
 	x->pd_blocksize = sys_getblksize();
 
+	partconv_instance_count++;
+	if (partconv_instance_count == 1) {
+		char fname[250];
+		FILE *file;
+		printf("partconv~: loading wisdom\n");
+		partconv_get_wisdom_filename(fname);
+		file = fopen(fname, "r");
+		if (file) {
+			fftwf_import_wisdom_from_file(file);
+			fclose(file);
+		} else {
+			printf(" --couldn't open wisdom file\n");
+		}
+	}
+
 	return (x);
 }
 
_______________________________________________
PD-dev mailing list
[email protected]
http://lists.puredata.info/listinfo/pd-dev

Reply via email to