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