Re: [PD] Find distance to a line in 3d space

2013-12-05 Thread Claude Heiland-Allen

On 05/12/13 23:40, João Pais wrote:

Hello list,

I had a doubt, will try to explain.

I wanted to define a line in a 3d space through 2 points, and be able to
find out the distance from another point to that line. Since I'm very
bad at math, I wanted to know if anyone has done something similar, or
knows how to get to it.


http://paulbourke.net/geometry/pointlineplane/

first example on the page, you just need to clamp u to [0..1] if you 
want to make it work for a line segment instead of an infinite line.



Claude


As I see it, the process goes this way:
- define a line from coordinates x1,y1,z1 to x2,y2,z2
- declare the point x3,y3,z3
- find the distance from that point to the nearest point belonging to
the said line


Any existing examples with gem rendering would be great.

Thanks as usual,

jmmmp


--
http://mathr.co.uk


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] tabread2~ noisy output

2013-10-29 Thread Claude Heiland-Allen

On 29/10/13 12:36, peiman khosravi wrote:

An
artefact of the sample interpolation perhaps?


No, of limited precision in the index:

http://lists.puredata.info/pipermail/pd-list/2012-07/097073.html


Claude
--
http://mathr.co.uk


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] wiki table feedback tutorial link dead

2013-10-18 Thread Claude Heiland-Allen
Hi Dan + list,

On 18/10/13 22:14, Dan Wilcox wrote:
 I'm curious about the table feedback tutorial on the puredata.info tutorials 
 wiki page, but the link is dead: 
 http://puredata.info/docs/tutorials?portal_status_message=HowTo%20Read%20HID%20Devices%20in%20Linux%20Without%20Being%20Root%20has%20been%20deleted.

I attached a tarball.

Thanks,


Claude
-- 
http://mathr.co.uk



table-feedback.tar.bz2
Description: Binary data
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] RME TotalMix controlled with OSC

2013-08-28 Thread Claude Heiland-Allen
On 28/08/13 21:10, Max wrote:
 hm. since in Pd all numbers are floats printing a 1.0 will show 1 
 however I can use [makefilename %s.0] which seems to be a possible
 workaround.

[makefilename %f]

But then it might be sent as s string instead of a number (whether
float or int).

What are you using to send OSC?



Claude
-- 
http://mathr.co.uk


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] RME TotalMix controlled with OSC

2013-08-28 Thread Claude Heiland-Allen
Looking at the source, there seems to be a way to set explicit type
tags.  I haven't checked the help patch, maybe it is documented there.

On 28/08/13 21:26, Dan Wilcox wrote:
 I was thinking that [packOSC] might be interpreting a non-decimal float as an 
 int, but I don't think so ...

There is no other way it could be happening - because messages are
arrays of atoms and there are no int atoms:

https://sourceforge.net/p/pure-data/svn/17199/tree/trunk/externals/mrpeach/osc/packOSC.c#l578


Claude
-- 
http://mathr.co.uk


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Worse performance with -nogui.

2013-08-15 Thread Claude Heiland-Allen
Hi Mario,

I think you might be being bitten by this bug, though I'm not 100% sure.

On 15/08/13 05:22, Mario Mey wrote:
 Then, I realized that that noise is there only with -nogui option. Using
 GUI, it sounds great. Is this a known issue?

Some versions of Pd have a bug where the sample rate isn't set correctly
during initialisation before loading patches.  This can cause all kinds
of strange problems (delay lines having the wrong length, externals
crashing...).

A workaround is to load your patches using a loader patch like
[loadbang]-[delay 0]-[;pd -open your-real-patch.pd path/to/patch(
The attached onload.pd provides a more general approach, but needs at
least pd-0.39 (December 2005) to work properly.

As you can see in this test log, Miller's pd 0.41, 0.42, 0.43 have
problems - earlier and later versions seem fine.  I couldn't test any
pd-extended versions (someone with a few versions installed wants to
try?) but pd-l2ork git master is buggy too.

$ ./samplerate~-test.sh ~/opt/pd/*/bin/pd
Pd version 0.38.4
compiled 08:16:18 Aug 15 2013
SR: 44100
 list prepend add
... couldn't create
error: inlet: expected '' but got 'pd'
... you might be able to track this down from the Find menu.
error: inlet: expected '' but got 'pd'
couldn't open MIDI input device 0
couldn't open MIDI output device 0
opened 0 MIDI input device(s) and 0 MIDI output device(s).
Pd version 0.39-2
compiled 08:16:43 Aug 15 2013
SR: 44100
SR: 44100
Pd version 0.40-3
compiled 08:17:08 Aug 15 2013
SR: 44100
SR: 44100
Pd version 0.41-4
compiled 08:17:23 Aug 15 2013
SR: 0
SR: 44100
Pd version 0.42-5
compiled 08:17:45 Aug 15 2013
SR: 0
SR: 44100
Pd-0.43.4 () compiled 08:18:09 Aug 15 2013
SR: 0
SR: 44100
Pd-0.44.3 () compiled 08:20:19 Aug 15 2013
SR: 44100
SR: 44100


Claude
-- 
http://mathr.co.uk

#N canvas 0 0 298 185 10;
#X obj 96 29 r onload;
#X obj 96 57 list prepend add;
#X obj 96 81 list trim;
#X obj 35 29 loadbang;
#X obj 35 50 delay 0;
#X obj 96 111 qlist;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 5 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#N canvas 3 44 450 300 10;
#X obj 93 51 loadbang;
#X obj 93 73 samplerate~;
#X obj 93 95 print SR;
#X connect 0 0 1 0;
#X connect 1 0 2 0;


samplerate~-test.sh
Description: application/shellscript
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Worse performance with -nogui.

2013-08-15 Thread Claude Heiland-Allen
On 15/08/13 05:22, Mario Mey wrote:
 I'm using Pd-Extended 0.43.4

Nevermind what I said in my earlier reply, this version doesn't have
that particular bug (but 0.41 and 0.42 extended do, and so does pd-l2ork
git master as of today):

Pd version 0.41-4extended
compiled 17:56:28 Aug 15 2013
SR: 0
SR: 44100

Pd version 0.42-5extended
compiled 13:25:06 Aug 15 2013
SR: 0
SR: 44100

Pd-0.43.4 (extended) compiled 12:23:46 Aug 15 2013
SR: 44100
SR: 44100

Pd-l2ork version 20130724
compiled 18:10:00 Aug 15 2013
SR: 0
SR: 44100


Claude
-- 
http://mathr.co.uk


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Worse performance with -nogui.

2013-08-15 Thread Claude Heiland-Allen
Hi,

On 15/08/13 20:35, Mario Mey wrote:
 I don't understand what SR is. Why 0 and 44100?

Ah sorry for being unclear - the first one is the output of
[samplerate~] when a patch is loaded from the command line, the second
is the outut when the patch is loaded after a [delay].  See the
attachments in my other reply:

http://lists.puredata.info/pipermail/pd-list/2013-08/103730.html

If it's ever 0, that might cause problems.

Anyway, this bug is fixed in the latest pd and pd-extended (which you
are using), sorry for the noise.

 El 15/08/13 14:11, Claude Heiland-Allen escribió:
 On 15/08/13 05:22, Mario Mey wrote:
 I'm using Pd-Extended 0.43.4
 Nevermind what I said in my earlier reply, this version doesn't have
 that particular bug (but 0.41 and 0.42 extended do, and so does pd-l2ork
 git master as of today):

 Pd version 0.41-4extended
 compiled 17:56:28 Aug 15 2013
 SR: 0
 SR: 44100

 Pd version 0.42-5extended
 compiled 13:25:06 Aug 15 2013
 SR: 0
 SR: 44100

 Pd-0.43.4 (extended) compiled 12:23:46 Aug 15 2013
 SR: 44100
 SR: 44100

 Pd-l2ork version 20130724
 compiled 18:10:00 Aug 15 2013
 SR: 0
 SR: 44100


Claude
-- 
http://mathr.co.uk


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] abstraction penalty benchmarks

2013-08-09 Thread Claude Heiland-Allen
Hi,

On 09/08/13 04:27, Miller Puckette wrote:
 Here's a guess - I think each copy of the abstraction binds itself to
 a symbol, pd-name. Binding is fast bt unbinding is linear-time in the
 number of things bound to the symbol... ouch.

Yes, I think that's it:

git master from yesterday
Pd-0.45.0 (test) compiled 17:10:02 Aug  8 2013
patch   bench   opendsp saveclose
small   4.6e-05 38.775  1.34085 44.326  4.012
medium  5.2e-05 314.812 10.2582 715.956 144.512
large   4.7e-05 2639.28 85.3561 78711.5 35918

git master, lightly patched with the attached
Pd-0.45.0 (test) compiled 14:36:39 Aug  9 2013
patch   bench   opendsp saveclose
small   4.3e-05 36.167  1.31707 39.657  3.447
medium  4.4e-05 291.52  9.8958  327.389 18.067
large   4.3e-05 2443.07 82.0808 3628.66 224.972

 There's a good reason to bind toplevels and named sub-patches to ther names,
 but I think there's little reason to do it for abstractions - perhaps I can
 take this out, but I'd have to leave it as an option for compatibility (ouch!)

The attached patch doesn't do this, but it should be easy to add a
global compatibility flag to the new canvas_should_bind() function.

Toplevel patches are still bound to pd-name.pd and subpatches [pd
name] are still bound to pd-name; it's just abstraction instances
that no longer have the automatic binding.

 On Thu, Aug 08, 2013 at 10:46:24PM -0400, Jonathan Wilkes wrote:
 On 08/08/2013 04:57 PM, Claude Heiland-Allen wrote:

[snip]

 The killer in the bottom right corner: with 8x as many abstractions, it
 takes 100x as long to save an instance, and 200x as long to close the patch.

[snip]

 Any idea why save is so much greater than close + open?

I think Miller had the answer.

 Also, any idea what pd is doing for the bulk of that time when

I haven't profiled yet (I had trouble even getting debug symbols into an
installed Pd with the autoconf system, no success yet..), so the
following are just guesses:

 saving

searching for copies of the abstraction to reload, then reloading them
via some select/cut/undo method (which preserves connections).  also
unbinding symbols...

 closing 

calling all the destructors. also unbinding symbols...

 opening

refinding/reloading/reparsing/reinstantiating all the abstractions (I
need to relocate my abstraction cache patches and update them to current Pd)

 dsp'ing?

traversing each canvas to topologically sort its dsp objects and build
the dsp chain - which gets resizebytes() each time something is added,
could make it O(log(N)) count of resizes (doubling the size each time)
but I tried it and it saved about 9 microseconds, not worth the extra
complexity...


Claude
-- 
http://mathr.co.uk

From 16fd46b3abe83dba956b78385d01ad19737b6c76 Mon Sep 17 00:00:00 2001
From: Claude Heiland-Allen cla...@mathr.co.uk
Date: Fri, 9 Aug 2013 14:57:14 +0100
Subject: [PATCH] don't bind abstraction instances to pd-filename

---
 src/g_canvas.c |   39 +--
 1 file changed, 29 insertions(+), 10 deletions(-)

diff --git a/src/g_canvas.c b/src/g_canvas.c
index 804ac57..c7a22d6 100644
--- a/src/g_canvas.c
+++ b/src/g_canvas.c
@@ -55,6 +55,9 @@ void canvas_reflecttitle(t_canvas *x);
 static void canvas_addtolist(t_canvas *x);
 static void canvas_takeofflist(t_canvas *x);
 static void canvas_pop(t_canvas *x, t_floatarg fvis);
+static int canvas_should_bind(t_canvas *x);
+static void canvas_bind(t_canvas *x);
+static void canvas_unbind(t_canvas *x);
 
 /* - functions to handle the canvas environment --- */
 
@@ -205,11 +208,9 @@ void canvas_makefilename(t_canvas *x, char *file, char *result, int resultsize)
 
 void canvas_rename(t_canvas *x, t_symbol *s, t_symbol *dir)
 {
-if (strcmp(x-gl_name-s_name, Pd))
-pd_unbind(x-gl_pd, canvas_makebindsym(x-gl_name));
+canvas_unbind(x);
 x-gl_name = s;
-if (strcmp(x-gl_name-s_name, Pd))
-pd_bind(x-gl_pd, canvas_makebindsym(x-gl_name));
+canvas_bind(x);
 if (x-gl_havewindow)
 canvas_reflecttitle(x);
 if (dir  dir != s_)
@@ -379,8 +380,7 @@ t_canvas *canvas_new(void *dummy, t_symbol *sel, int argc, t_atom *argv)
 x-gl_owner = owner;
 x-gl_name = (*s-s_name ? s : 
 (canvas_newfilename ? canvas_newfilename : gensym(Pd)));
-if (strcmp(x-gl_name-s_name, Pd))
-pd_bind(x-gl_pd, canvas_makebindsym(x-gl_name));
+canvas_bind(x);
 x-gl_loading = 1;
 x-gl_goprect = 0;  /* no GOP rectangle unless it's turned on later */
 /* cancel vis flag if we're a subpatch of an
@@ -479,9 +479,8 @@ t_glist *glist_addglist(t_glist *g, t_symbol *sym,
 x-gl_screeny1 = GLIST_DEFCANVASYLOC;
 x-gl_screenx2 = 450;
 x-gl_screeny2 = 300;
-if (strcmp(x-gl_name-s_name, Pd))
-pd_bind(x-gl_pd, canvas_makebindsym(x-gl_name));
 x-gl_owner = g;
+canvas_bind(x);
 x-gl_isgraph = 1;
 x-gl_goprect = 0;
 x-gl_obj.te_binbuf = binbuf_new();
@@ -723,8 +722,7 @@ void canvas_free(t_canvas

Re: [PD] abstraction penalty benchmarks

2013-08-09 Thread Claude Heiland-Allen
On 09/08/13 19:42, Miller Puckette wrote:
 There still could be situations where an abstraction has a sub-patch (pd foo
 for instance) - I'm not clear as to whether those namings should be supressed
 as well.  It seems like a tricky problem - lots of people seem to use
 abstractions with only one instance and might be depending on the bindings.

Maybe the best fix would be to make pd_unbind() constant time (perhaps
by storing bindings in a doubly-linked list instead of a singly-linked
list) and be done with it, instead of hacking workarounds..


Claude
-- 
http://mathr.co.uk


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] abstraction penalty benchmarks

2013-08-09 Thread Claude Heiland-Allen
Hi,

I looked at accelerating* pd_unbind(), but it seems impossible without
breaking binary compatibility somewhere along the line.  There's simply
no space to store any implementation-private data in objects, as an
object is just a pointer to a class.

*by making a parallel bindlist per object that points to nodes in a
doubly linked bindlist per symbol, so pd_unbind(object, symbol) takes
O(symbols per object) instead of O(objects per symbol), with the former
number generally much smaller than the latter number (at least in my
experience - are there any externals that bind to a large number of
symbols?  I did write one in Lua, but iirc pdlua uses one proxy object
for each binding, so that it can tell which symbol was the target of the
message).


Claude

On 10/08/13 01:06, Ivica Bukvic wrote:
 When and if such patch is implemented please do let us know as I would like
 to implement it in pd-l2ork as well.
 
 Best wishes,
 
 Ico
 On Aug 9, 2013 8:03 PM, Miller Puckette m...@ucsd.edu wrote:
 
 Well, if ia user really wants 32K receives of the same name, (s)he can have
 them - but most people won't want to do that.  In contrast, you can't have
 32K copies of an abstraction without hitting this problem - and the
 business
 of binding patches to names is only rarely actually used.  So (I'm now
 thinking)
 Pd should make it easy to defeat that useless behavior.

 cheers
 M
 On Fri, Aug 09, 2013 at 07:11:02PM -0400, Jonathan Wilkes wrote:
 On 08/09/2013 04:31 PM, Miller Puckette wrote:
 Or... just limit the number of canvases that can bind themselves to a
 single
 symbol to a reasonable number (5 or so, settable by flag for
 back-compatibility
 if anyone cares).

 What happens to Claude's test if you a) patch Pd to stop binding
 pd-abstractionName.pd, and b) put a [receive pd-abstractionName.pd]
 inside the abstraction that's getting massively replicated?

 I'd hypothesize that you end up with the same or closely similar problem,
 no?

 If so then messing with the abstraction name binding risks introducing
 bugs or breaking some strange but interesting patches, and doesn't
 solve the larger problem which becomes anxiety about [s]/[r] pairs or
 any other nonlocal connection objects inside abstractions.

 -Jonathan


 cheers
 M

 On Fri, Aug 09, 2013 at 07:51:30PM +0100, Claude Heiland-Allen wrote:
 On 09/08/13 19:42, Miller Puckette wrote:
 There still could be situations where an abstraction has a sub-patch
 (pd foo
 for instance) - I'm not clear as to whether those namings should be
 supressed
 as well.  It seems like a tricky problem - lots of people seem to use
 abstractions with only one instance and might be depending on the
 bindings.
 Maybe the best fix would be to make pd_unbind() constant time (perhaps
 by storing bindings in a doubly-linked list instead of a singly-linked
 list) and be done with it, instead of hacking workarounds..


 Claude

-- 
http://mathr.co.uk


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


[PD] abstraction penalty benchmarks

2013-08-08 Thread Claude Heiland-Allen
Hi,

Today I remembered one performance where I saved an abstraction with
many instances, bringing things to a halt.  So I benchmarked this
scenario and some similar ones - some seem to scale very badly.

pure-data.git gcc-4.8.1 GNU/Linux/Debian/Wheezy amd64 64bit
Pd-0.45.0 (test) compiled 17:10:02 Aug  8 2013

m  n  open  dsp   save   close
351238.503   1.33879 44.26   3.985
4   4096   324.507  10.7379 786.227150.602
5  32768  2611.92   85.40579234.235853

keydescription
m  number of levels of nested abstractions
n  total number of instances at deepest level
open   time to load patch
dsptime to toggle dsp on then off (1000 runs averaged)
save   time to save one instance at deepest level
close  time to close patch

all times are in ms, measured with [realtime]
rows run sequentially in their own pd instance
dsp was off at the start of each test
the whole run is in zero logical time
cpu frequency scaling was disabled (for real)
pd was run with -nogui -nosound -nrt

The killer in the bottom right corner: with 8x as many abstractions, it
takes 100x as long to save an instance, and 200x as long to close the patch.

See attached tarball if you want to try it yourself.


Claude
-- 
http://mathr.co.uk


benchmark.tar.bz2
Description: Binary data
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Read from and write to an array at once (?!?)

2013-08-03 Thread Claude Heiland-Allen
On 03/08/13 17:11, Pierre Massat wrote:
 Well, I just discovered that it was actually possible to read from and
 write to the same array at the same time. I thought it was impossible (i'd
 never even tried, to be honest). So here's my (probably stupid) question :
 is this a feature ?

Yes, it works fine due to the topological sort of the DSP graph into a
DSP chain - but DSP is block-based, so be aware that each block is read
as a whole before it is written - this probably only matters if you
wanted to write to a different location for non-block-sized feedback
effects.  Also you might have little glitchy issues when table length
isn't an exact multiple of the block size.

There are some examples of [tabreceive~]--stuff--[tabsend~] in the docs,
probably in the FFT section of the manual.

A simple looper might be a [tabplay~]--stuff--[tabwrite~] thing with the
tabplay~ and tabwrite~ both triggered from the same source, and
retriggerd by the tabplay~ done bang...

 If it is that could probably explain why I didn't find much about loopers
 in Pd, since it is very straightforward.


Claude
-- 
http://mathr.co.uk


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] tabread4 interpolation

2013-07-22 Thread Claude Heiland-Allen
On 22/07/13 10:47, J Oliver wrote:
 Where can I find the code for tabread4?
 Does someone have any lights on how this interpolation is implemented?

See also this (quite long) thread:

http://lists.puredata.info/pipermail/pd-list/2010-03/077278.html


Claude
-- 
http://mathr.co.uk


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] offline rendering?

2013-06-15 Thread Claude Heiland-Allen
On 15/06/13 09:53, Jeppi Jeppi wrote:
 would you think it could be a way for pd to generate audio to file faster 
 than realtime?

pd -batch

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] GEM: texture on transparent sphere visible from opposite side

2013-06-08 Thread Claude Heiland-Allen
Hi,

On 08/06/13 14:48, Matthias Kronlachner wrote:
 i have a texture on a sphere and slightly add transparency to the sphere.
 i can now see objects behind the sphere, but is it possible to make the
 texture of the opposite side of the sphere visible? (through the
 (semitransparent) front side of the sphere)

Short answer: no.

Long answer: no, because transparency and OpenGL don't quite get along
as nicely as you might expect.  Rendering order (of every triangle that
makes up every object) matters a great deal.  Transparency involves
blending the current triangle with whatever is behind it. OpenGL uses
its depth buffer to keep track of what's been drawn and how far away it
is at each pixel - keeping only the nearest value - whether it was
rasterized before or after the previous triangle.  You need to draw
non-transparent stuff first, then sort every transparent triangle into
depth order, possiby splitting up any transparent triangles that
intersect each other into smaller triangles, then render them in order
urthest from camera first, nearest to camera last.  I'm pretty sure that
Gem doesn't support depth sorting.

You might be able to hack it and get something that looks mostly ok some
of the time by rotating the sphere to change the depth order vs render
order of the triangles making up the sphere, but it will be very fragile...


Claude
-- 
http://mathr.co.uk

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Lowpass to Highpass morph

2013-04-22 Thread Claude Heiland-Allen
 obj 702 476 sin;
#X obj 677 322 t f f;
#X obj 677 343 * 2;
#X obj 677 364 + 12;
#X obj 675 499 tabwrite \$0-cos;
#X obj 707 523 tabwrite \$0-sin;
#X obj 678 148 table \$0-cos 64;
#X obj 678 169 table \$0-sin 64;
#X floatatom 569 468 8 0 0 0 - - -;
#X obj 483 568 tabsend~ \$0-response;
#X msg 530 358 clear \, set 0;
#X msg 697 260 0;
#X obj 484 494 /~;
#X obj 484 541 /~ 100;
#X obj 484 520 rmstodb~;
#X obj 483 347 sqrt~;
#X obj 508 379 fexpr~ max($x \, $y);
#X obj 114 287 clip 0 1;
#X obj 179 288 clip 0 1;
#X text 339 218 angular frequency for plot;
#X text 372 284 accumulated gain^2;
#X text 501 306 calculate peak gain \; plot amplitude response;
#X text 654 126 calculate angular frequency input;
#X floatatom 83 65 5 0 0 0 - - -;
#X text 53 491 z-plane filter adjustable high/low shelving \; Claude
Heiland-Allen 2013-04-22 cla...@mathr.co.uk;
#X text 65 418 calculate pole/zero locations;
#X connect 0 0 37 0;
#X connect 2 0 5 0;
#X connect 2 0 29 0;
#X connect 3 0 7 1;
#X connect 3 0 9 1;
#X connect 4 0 3 0;
#X connect 6 0 23 0;
#X connect 7 0 72 0;
#X connect 8 0 29 0;
#X connect 8 1 29 1;
#X connect 9 0 73 0;
#X connect 10 0 12 0;
#X connect 10 0 13 0;
#X connect 11 0 14 0;
#X connect 11 0 15 0;
#X connect 12 0 16 0;
#X connect 13 0 17 0;
#X connect 14 0 18 0;
#X connect 15 0 19 0;
#X connect 16 0 37 5;
#X connect 17 0 37 6;
#X connect 18 0 36 5;
#X connect 19 0 36 6;
#X connect 20 0 21 0;
#X connect 21 0 22 0;
#X connect 21 0 30 0;
#X connect 23 0 8 0;
#X connect 23 0 78 0;
#X connect 24 0 7 0;
#X connect 25 0 9 0;
#X connect 26 0 24 0;
#X connect 27 0 25 0;
#X connect 29 0 32 0;
#X connect 30 0 29 0;
#X connect 30 1 29 2;
#X connect 31 0 26 0;
#X connect 31 0 27 0;
#X connect 32 1 31 0;
#X connect 32 2 33 0;
#X connect 33 0 19 1;
#X connect 33 0 18 1;
#X connect 33 0 17 1;
#X connect 33 0 16 1;
#X connect 34 0 37 2;
#X connect 35 0 37 3;
#X connect 36 0 38 0;
#X connect 36 4 70 0;
#X connect 37 0 36 0;
#X connect 37 1 36 1;
#X connect 37 2 36 2;
#X connect 37 3 36 3;
#X connect 37 4 36 4;
#X connect 38 0 1 1;
#X connect 38 0 1 0;
#X connect 39 0 37 4;
#X connect 40 0 65 0;
#X connect 40 0 41 0;
#X connect 41 0 42 0;
#X connect 41 0 63 0;
#X connect 42 0 38 1;
#X connect 42 0 67 1;
#X connect 43 0 44 0;
#X connect 44 0 49 0;
#X connect 45 0 46 0;
#X connect 46 0 51 0;
#X connect 46 0 56 0;
#X connect 47 0 50 0;
#X connect 48 0 50 1;
#X connect 49 0 45 0;
#X connect 49 1 48 0;
#X connect 49 1 66 0;
#X connect 50 0 52 0;
#X connect 51 0 46 1;
#X connect 52 0 53 0;
#X connect 53 0 54 0;
#X connect 53 1 55 0;
#X connect 54 0 59 0;
#X connect 55 0 60 0;
#X connect 56 0 57 0;
#X connect 56 1 59 1;
#X connect 56 1 60 1;
#X connect 57 0 58 0;
#X connect 58 0 47 0;
#X connect 65 0 71 0;
#X connect 66 0 46 1;
#X connect 67 0 69 0;
#X connect 68 0 64 0;
#X connect 69 0 68 0;
#X connect 70 0 67 0;
#X connect 70 0 71 0;
#X connect 71 0 41 0;
#X connect 72 0 10 0;
#X connect 73 0 11 0;
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Nikon DSLR Capture with Pd

2013-04-02 Thread Claude Heiland-Allen
Hi,

On 02/04/13 15:38, me.grimm wrote:
 Has anyone been able to capture images from a Nikon DSLR with Pd?

gphoto is a library for interfacing with cameras [0]

Ben Bogart wrote a gphoto external for Pd [1]

gphoto does probably work on OS X [2]

gphoto for Pd's makefile is only for Linux [3]

so at least some build system hacking is required, possibly more in
depth code changes (if gphoto external for Pd has bitrotted out of sync
with current versions of gphoto library)

[0] http://gphoto.sourceforge.net/
[1] http://puredata.info/downloads/gphoto
[2] http://blog.dcclark.net/2009/05/how-to-gphoto-primer.html
[3]
https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/bbogart/gphoto/makefile


Claude


 I have a student who is able to control her dslr with osx image capture
 (space bar takes an image) but we can not seem to figure out how to
capture
 directly with/to pd OR even trigger image capture with pd might work
also
 for now

 BTW this is through the USB cable.

 thinking out loud - can pd send a system wide event like space bar
though
 shell maybe to image capture?

 that is if pd can not control dslr directly

 m

-- 
http://mathr.co.uk

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Pd fonts

2012-10-15 Thread Claude Heiland-Allen

On 15/10/12 08:23, Ed Kelly wrote:

I've tried various -font-face arguments:


$ pd -font-face DejaVu Sans Mono

(note the quotes) works for me (at least it looks different from the 
default) with


$ pd -version
Pd version 0.42-6
compiled 08:43:13 Mar 19 2012

Hope this helps,


Claude
--
http://mathr.co.uk

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [GEM] pix_mano and latest linux kernels

2012-10-14 Thread Claude Heiland-Allen

On 14/10/12 21:23, Jaime Oliver wrote:

OK, so I got it running and the crash is always in line 727:

Program received signal SIGSEGV, Segmentation fault.
0x7fffe18f8418 in pix_mano::processGrayImage (this=optimized
out, image=...) at pix_mano.cpp:727
727   if (base[chGray + xcoord] == 80) { // if we find a point
(gdb) watchdog: signaling pd...
watchdog: signaling pd...

Now, I know where that is, but I just don't understand how there can
be a problem with this. Or what the problem is for that matter.


base could be null or other invalid memory address or (chGray + xcoord) 
could be outside valid memory when offset by base.



I mean, I am merely doing a test that the external does all the time.


You're doing several things in that line: computing (chGray + xcoord) * 
sizeof(array type of base) then reading a number of bytes from that 
memory location, then comparing it to 80, and then testing the result. 
The reading from that memory location part is what generally causes 
SIGSEGV.



Furthermore, it doesn't crash in earlier linux versions...


Assuming identical Gem version (otherwise it could be internal Gem 
changes breaking previously sensible code):


Probably coincidence, unless xcoord is coming from some kernel driver, 
or the memory layout is different in such a way that a previously masked 
bug now causes problems.



Any suggestions?


first, run with -nrt to avoid watchdog spam.

Then in gdb, info locals, print base, print xcoord, help, etc


Claude
--
http://mathr.co.uk

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Parsing .pd file to get dependency graph

2012-10-12 Thread Claude Heiland-Allen

On 12/10/12 14:10, Jamie Bullock wrote:

Has anyone written a script to parse a .pd files and get its full tree of 
dependencies (externals and abstractions)?


Vaguely started something like this in 2008, attached are some 
almost-trivial bash scripts etc.  Not very robust, but it's a start. 
Doesn't work recursively yet (so no dependency tree).  Feel free to 
modify/extend/etc, consider it under the same license as Pd itself.



Claude
--
http://mathr.co.uk


abstractions.sh
Description: application/shellscript


externals.sh
Description: application/shellscript
accumrotate
alpha
ambient
ambientRGB
camera
circle
color
colorRGB
colorSquare
colour
colourRGB
cone
cube
cuboid
curve
curve3d
cylinder
depth
diffuse
diffuseRGB
disk
emission
emissionRGB
fragment_program
Gem
gemframebuffer
GEMglAccum
GEMglActiveTextureARB
GEMglAlphaFunc
GEMglAreTexturesResident
GEMglArrayElement
GEMglBegin
GEMglBindProgramARB
GEMglBindTexture
GEMglBitmap
GEMglBlendEquation
GEMglBlendFunc
GEMglCallList
GEMglClear
GEMglClearAccum
GEMglClearColor
GEMglClearDepth
GEMglClearIndex
GEMglClearStencil
GEMglClipPlane
GEMglColor3b
GEMglColor3bv
GEMglColor3d
GEMglColor3dv
GEMglColor3f
GEMglColor3fv
GEMglColor3i
GEMglColor3iv
GEMglColor3s
GEMglColor3sv
GEMglColor3ub
GEMglColor3ubv
GEMglColor3ui
GEMglColor3uiv
GEMglColor3us
GEMglColor3usv
GEMglColor4b
GEMglColor4bv
GEMglColor4d
GEMglColor4dv
GEMglColor4f
GEMglColor4fv
GEMglColor4i
GEMglColor4iv
GEMglColor4s
GEMglColor4sv
GEMglColor4ub
GEMglColor4ubv
GEMglColor4ui
GEMglColor4uiv
GEMglColor4us
GEMglColor4usv
GEMglColorMask
GEMglColorMaterial
GEMglCopyPixels
GEMglCopyTexImage1D
GEMglCopyTexImage2D
GEMglCopyTexSubImage1D
GEMglCopyTexSubImage2D
GEMglCullFace
GEMglDeleteTextures
GEMglDepthFunc
GEMglDepthMask
GEMglDepthRange
GEMglDisable
GEMglDisableClientState
GEMglDrawArrays
GEMglDrawBuffer
GEMglDrawElements
GEMglEdgeFlag
GEMglEnable
GEMglEnableClientState
GEMglEnd
GEMglEndList
GEMglEvalCoord1d
GEMglEvalCoord1dv
GEMglEvalCoord1f
GEMglEvalCoord1fv
GEMglEvalCoord2d
GEMglEvalCoord2dv
GEMglEvalCoord2f
GEMglEvalCoord2fv
GEMglEvalMesh1
GEMglEvalMesh2
GEMglEvalPoint1
GEMglEvalPoint2
GEMglFeedbackBuffer
GEMglFinish
GEMglFlush
GEMglFogf
GEMglFogfv
GEMglFogi
GEMglFogiv
GEMglFrontFace
GEMglFrustum
GEMglGenLists
GEMglGenProgramsARB
GEMglGenTextures
GEMglGetError
GEMglGetFloatv
GEMglGetMapdv
GEMglGetMapfv
GEMglGetMapiv
GEMglGetPointerv
GEMglGetString
GEMglHint
GEMglIndexd
GEMglIndexdv
GEMglIndexf
GEMglIndexfv
GEMglIndexi
GEMglIndexiv
GEMglIndexMask
GEMglIndexs
GEMglIndexsv
GEMglIndexub
GEMglIndexubv
GEMglInitNames
GEMglIsEnabled
GEMglIsList
GEMglIsTexture
GEMglLightf
GEMglLighti
GEMglLightModelf
GEMglLightModeli
GEMglLineStipple
GEMglLineWidth
GEMglLoadIdentity
GEMglLoadMatrixd
GEMglLoadMatrixf
GEMglLoadName
GEMglLoadTransposeMatrixd
GEMglLoadTransposeMatrixf
GEMglLogicOp
GEMglMap1d
GEMglMap1f
GEMglMap2d
GEMglMap2f
GEMglMapGrid1d
GEMglMapGrid1f
GEMglMapGrid2d
GEMglMapGrid2f
GEMglMaterialf
GEMglMateriali
GEMglMatrixMode
GEMglMultiTexCoord2fARB
GEMglMultMatrixd
GEMglMultMatrixf
GEMglMultTransposeMatrixd
GEMglMultTransposeMatrixf
GEMglNewList
GEMglNormal3b
GEMglNormal3bv
GEMglNormal3d
GEMglNormal3dv
GEMglNormal3f
GEMglNormal3fv
GEMglNormal3i
GEMglNormal3iv
GEMglNormal3s
GEMglNormal3sv
GEMglOrtho
GEMglPassThrough
GEMglPixelStoref
GEMglPixelStorei
GEMglPixelTransferf
GEMglPixelTransferi
GEMglPixelZoom
GEMglPointSize
GEMglPolygonMode
GEMglPolygonOffset
GEMglPopAttrib
GEMglPopClientAttrib
GEMglPopMatrix
GEMglPopName
GEMglPrioritizeTextures
GEMglProgramEnvParameter4dARB
GEMglProgramEnvParameter4fvARB
GEMglProgramLocalParameter4fvARB
GEMglProgramStringARB
GEMglPushAttrib
GEMglPushClientAttrib
GEMglPushMatrix
GEMglPushName
GEMglRasterPos2d
GEMglRasterPos2dv
GEMglRasterPos2f
GEMglRasterPos2fv
GEMglRasterPos2i
GEMglRasterPos2iv
GEMglRasterPos2s
GEMglRasterPos2sv
GEMglRasterPos3d
GEMglRasterPos3dv
GEMglRasterPos3f
GEMglRasterPos3fv
GEMglRasterPos3i
GEMglRasterPos3iv
GEMglRasterPos3s
GEMglRasterPos3sv
GEMglRasterPos4d
GEMglRasterPos4dv
GEMglRasterPos4f
GEMglRasterPos4fv
GEMglRasterPos4i
GEMglRasterPos4iv
GEMglRasterPos4s
GEMglRasterPos4sv
GEMglRectd
GEMglRectf
GEMglRecti
GEMglRects
GEMglRenderMode
GEMglRotated
GEMglRotatef
GEMglScaled
GEMglScalef
GEMglScissor
GEMglSelectBuffer
GEMglShadeModel
GEMglStencilFunc
GEMglStencilMask
GEMglStencilOp
GEMglTexCoord1d
GEMglTexCoord1dv
GEMglTexCoord1f
GEMglTexCoord1fv
GEMglTexCoord1i
GEMglTexCoord1iv
GEMglTexCoord1s
GEMglTexCoord1sv
GEMglTexCoord2d
GEMglTexCoord2dv
GEMglTexCoord2f
GEMglTexCoord2fv
GEMglTexCoord2i
GEMglTexCoord2iv
GEMglTexCoord2s
GEMglTexCoord2sv
GEMglTexCoord3d
GEMglTexCoord3dv
GEMglTexCoord3f
GEMglTexCoord3fv
GEMglTexCoord3i
GEMglTexCoord3iv
GEMglTexCoord3s
GEMglTexCoord3sv
GEMglTexCoord4d
GEMglTexCoord4dv
GEMglTexCoord4f
GEMglTexCoord4fv
GEMglTexCoord4i
GEMglTexCoord4iv
GEMglTexCoord4s
GEMglTexCoord4sv
GEMglTexEnvf
GEMglTexEnvi
GEMglTexGend
GEMglTexGenf
GEMglTexGenfv
GEMglTexGeni
GEMglTexParameterf
GEMglTexParameteri
GEMglTexSubImage1D
GEMglTexSubImage2D

Re: [PD] Shifting arrays (permutation)

2012-10-10 Thread Claude Heiland-Allen

On 10/10/12 12:51, Rick T wrote:

Greets All

I was looking for a way to shift arrays (permutation) by samples


(permutation generally refers to something more general than shifting or 
rotating, more like shuffling a deck of cards than cutting it)


Personally I keep all my vline~ in [0..1] and use maths to manipulate.

Especially because (vanilla's, zexy has a better one)b [wrap~] wraps to 
[0..1], and could be help do what you need:


[0, 1 1000(
 |
[vline~]
 |
[+~ 0.25]  -- this value in [0..1] too, modulatable at signal rate
 |
[wrap~]
 |
[*~ table size here]
 |
[tabread4~ your table hear]

will play the table wrapped around
starting with the last 3/4 then first 1/4

To convert between samples and [0..1], elementary arithmetic helps.


Claude
--
http://mathr.co.uk

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] counting how many times an audio file is looped

2012-10-06 Thread Claude Heiland-Allen

On 06/10/12 06:24, IOhannes m zmölnig wrote:

On 10/05/2012 11:25 PM, Rick T wrote:


Is there another way I should be doing this



trust Pd's timing.


that's the foundation.


count the bangs that [tabplay~] will output via it's 2nd inlet.


For long files, yes.

(Is [tabplay] clock-aware? it perhaps could be?)


For microloops, I'd prefer [wrap~]:

[6(
 |
[0, $1 123(   plays $1 times in 123ms total
  |
[vline~]
  |
[wrap~]desired length in samples
  |   /
[*~   ]
  |desired offset into array in samples
  |   /
[+~   ]
  |
[tabread4~ array]


Claude
--
http://mathr.co.uk

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


[PD] nearest neighbour matching?

2012-10-05 Thread Claude Heiland-Allen

Hi list,

I have a -batch patch that randomly samples the parameter space of 
control signals to (some black box)* and uses [sigmund~] to detect 
pitched-ness vs unpitchedness, keeping the pitch info and then a notch 
filter to detect distortion:


http://mathr.co.uk/softrockiii/2012-10-05_probe-puredata.png

So I end up with gnuplots that look something like this:

http://mathr.co.uk/softrockiii/2012-10-05_pitching-distortion.png

Now I want to find the best match for a given pitch and distortion and 
get back the corresponding parameters that approximately reconstruct the 
desired sound.


What's the best way to go about this?

I might end up just hand-rolling some Lua for this kind of matching if 
no one has any better ideas.


* currently mutually modulating FM oscillators like
http://archive.org/details/ClaudiusMaximus_-_Soft_Rock_EP
concept to be resurrected and reworked/combined with concepts from
NoIn EP http://gosub10.org/GOSUB10-002.html


Claude
--
http://mathr.co.uk

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


[PD] hip~ nyquist gain bug test patch [Was: arraysize]

2012-10-05 Thread Claude Heiland-Allen

On 03/10/12 15:22, Claude Heiland-Allen wrote:

On 02/10/12 16:15, Miller Puckette wrote:

1. there's a bug in hip~ - its DC gain is slightly (and possibly
considerably)
greater than 1.


Did you mean nyquist-frequency rather than DC here?


See attached test patch that waits 10 seconds for settling to steady 
state (extreme overkill no doubt), at 48k sample rate the nyquist gain 
for hip~ goes up dramatically as you increase the cutoff...



IIRC DC gain for hip~ should be 0 or very close to it


verified.


and nyquist-frequency gain 1.


here is the bug, these get much louder than the -1 1 -1 1 input

hip10:
-1.0007 1.0007  -1.0007 1.0007  -1.0007 1.0007  -1.0007 1.0007
hip100:
-1.0066 1.0066  -1.0066 1.0066  -1.0066 1.0066  -1.0066 1.0066
hip1000:
-1.07   1.07-1.07   1.07-1.07   1.07-1.07   1.07
hip1:
-2  2   -2  2   -2  2   -2  2


Claude
--
http://mathr.co.uk
#N canvas 16 47 662 391 10;
#X obj 52 65 loadbang;
#X obj 54 152 delay 1;
#X obj 95 224 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 302 236 hip~ 1000;
#X msg 70 88 \; pd dsp 1;
#X obj 137 78 tabplay~ \$0-fizz;
#X obj 139 56 bang~;
#X obj 228 199 table \$0-fizz 64;
#X obj 165 194 s \$0-fizz;
#X msg 164 126 0 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1
-1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1
1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1
-1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1;
#X obj 302 257 print~ hip1000;
#X obj 397 236 hip~ 100;
#X obj 399 257 print~ hip100;
#X obj 495 239 hip~ 10;
#X obj 497 260 print~ hip10;
#X obj 149 237 hip~ 1;
#X obj 149 258 print~ hip1;
#X connect 0 0 4 0;
#X connect 0 0 1 0;
#X connect 0 0 9 0;
#X connect 1 0 10 0;
#X connect 1 0 12 0;
#X connect 1 0 14 0;
#X connect 1 0 16 0;
#X connect 2 0 10 0;
#X connect 2 0 12 0;
#X connect 2 0 14 0;
#X connect 2 0 16 0;
#X connect 3 0 10 0;
#X connect 5 0 3 0;
#X connect 5 0 11 0;
#X connect 5 0 13 0;
#X connect 5 0 15 0;
#X connect 6 0 5 0;
#X connect 9 0 8 0;
#X connect 11 0 12 0;
#X connect 13 0 14 0;
#X connect 15 0 16 0;
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Recording audio to mp3 using LAME or ffmpeg ?

2012-10-05 Thread Claude Heiland-Allen

On 05/10/12 11:55, Pierre Massat wrote:

Dear List,

How would you go about recording the audio output of a Pd patch directly to
mp3 (or any other compressed format actually), without using the object
from the Unauthorized library ?
Would it be feasible to use the [shell] object with a script using ffmpeg
or LAME ? I don't really know whether there would be serious timing uses,
who to use those for recording a stream instead of a file, how to send Pd's
audio out...


use jack and ecasound?

gstreamer objects for pd?

hacky way might work:
writesf~ in raw (headerless mode)
mkfifo foo.raw (read mkfifo manual)
lame foo.raw (if it accepts raw input)
careful with deadlocks/SIGPIPE


I could always record to wav and run a script afterwards to compress and
delete the original file, but i'd rather have something more direct.


i tend to record in 32bit wav (-bytes 4) to avoid any clipping, then 
remove dc/normalize/convert later.  i tend to hoard things, though...



Claude



Cheers,

Pierre.




___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management -  
http://lists.puredata.info/listinfo/pd-list



___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Can't create Gem window

2012-10-05 Thread Claude Heiland-Allen

Hey,

On 05/10/12 12:09, Ed Kelly wrote:

Intel Core i5
Radeon HD7700 graphics card.
Ubuntu 10.04


64bit OS?  This is probably irrelevant as Wheezy is newer than Lucid, but...

In Debian Wheezy I have no end of trouble with proprietary NVIDIA driver 
due to multiarch transition, in the end my workaround is to remember to 
sudo rm mesa software rasterizer (super slow) 
/usr/lib/x86_64-linux-gnu/libGL.so and symlink it to the proprietary one 
installed in /usr/lib/libGL.so - painful


claude@cappuccino:~$ ls -l /usr/lib/x86_64-linux-gnu/libGL.so
lrwxrwxrwx 1 root root 11 Oct  1 16:35 
/usr/lib/x86_64-linux-gnu/libGL.so - ../libGL.so



I am wondering if the ati proprietary driver might be to blame, but I am not 
sure how to check this...


Dunno - is there some dual graphics laptop card thing that needs optirun 
or what have you to get good performance?



check the output of glxinfo, whether your config supports such a setting.


$ LIBGL_DEBUG=verbose glxinfo | head
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_swap_control, GLX_EXT_swap_control_tear,
GLX_EXT_texture_from_pixmap, GLX_ARB_create_context,
---
you definitely don't want to see swrast stuff in the debug output (if 
there is any)



Claude
--
http://mathr.co.uk

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Pd-extended 0.43 and Openbox

2012-10-04 Thread Claude Heiland-Allen

On 04/10/12 01:08, Simon Wise wrote:

wouldn't that make it difficult to put the window outside the screen
deliberately ... for example to hide the window decorations off-screen?

I have needed to use this a few times (when making the window properly
fullscreen was not possible or appropriate), and it is sometimes a lot
easier than trying to work out how to tell a particular window manager
not to put decorations on a particular window.


'devilspie' is what I use for generic window-manager-override tweaking, 
though I tested it myself with only xfce4 desktop.


http://burtonini.com/blog/computers/devilspie
https://live.gnome.org/DevilsPie
http://www.foosel.org/linux/devilspie


Claude
--
http://mathr.co.uk

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] array size (was Re: arraysize)

2012-10-03 Thread Claude Heiland-Allen

On 02/10/12 16:15, Miller Puckette wrote:

1. there's a bug in hip~ - its DC gain is slightly (and possibly considerably)
greater than 1.


Did you mean nyquist-frequency rather than DC here?

IIRC DC gain for hip~ should be 0 or very close to it
and nyquist-frequency gain 1.

I did notice that delay loops with [hip~ 5] to leak DC do tend to 
explode without some [*~ 0.9] or [lop~ 1] or whatever...



Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] How to control sliders inside gop abstractions

2012-09-30 Thread Claude Heiland-Allen

On 30/09/12 20:08, umberto torrez wrote:

Hi, how can i control the sliders of a group of gop abstractions?

I need to control the sliders of a group of gop abstractions(the same). Im
trying to do in this way:

Each slider has  $0_hi   in its receive symbol property.

Im creating each  abstracion with a different value , for example:

abstraction 1
abstraction 2  ... and so on.

As far as i understand the number argument of my abstracion should replace
$0 inside my slider. Am i right? or maybe im missing something?


$0 is unique to each abstraction instance
$1,$2,$3 is where the arguments start


because it doesnt work and  sending values to 1_hi doesnt control my
abstraction.


any idea?


U.




___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management -  
http://lists.puredata.info/listinfo/pd-list



___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] array size (was Re: arraysize)

2012-09-28 Thread Claude Heiland-Allen

On 28/09/12 16:23, Miller Puckette wrote:

Well, I'm persuadable on this front.  I'm concerned with unduly hogging
the object namespace - in general, every time I add an object name I
potentially introduce incompatiblities with someone's abstraction that
might have the same name.  And there are 50 or so new classes (!) to provide.
I don't even have a list yet (no pun intended)


Perhaps it would be better to refactor the object / abstraction / binary 
/ loading / namespace mechanism first, something along the lines of an 
old discussion I had with HCS:


http://claudiusmaximus.goto10.org/cm/2010-07-16_pure-data_libraries_conversation.html

Once that is fixed to something less baroque/crufty then it should be 
easier for everyone to go nuts and have their own namespaces without 
clobbering or hogging anything, and make patches more portable between 
Pd variants.


I have no time to work on this for the forseeable future, but it's 
something that needs doing sooner rather than later...



cheers
M


Thanks,


Claude
--
http://mathr.co.uk

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] pitched reverb?

2012-09-27 Thread Claude Heiland-Allen

Hi,

On 27/09/12 08:58, umberto torrez wrote:

hi, Does anybody know if  exists a reveb that allows to tune  to specific
notes? I know that different room dimensions offer different resonating
frequencies, but can this effect be manipulated electronically?


I tried some 4D room simulation once, releveant files attached, may be 
missing some parts and/or bitrotted - it's from 2008).  Maybe it 
provides some ideas / inspiration / herrings...



Does anybody know of techniques to achieve it pd?   any idea?


http://archive.org/download/ClaudiusMaximus_-_Feed_Me_dia/ClaudiusMaximus_-_The_Seventh_Chamber.ogg
is one sketch I made by changing a reverberating room's shape according 
to a bell-ringing sequence.



Claude
--
http://mathr.co.uk
#N canvas 0 0 558 543 10;
#X obj 20 21 inlet~;
#X obj 237 23 inlet;
#X obj 20 41 delwrite~ \$0-d 1000;
#X obj 18 435 outlet~;
#X obj 237 45 unpack f f f f f f f f f;
#X obj 18 80 delread~ \$0-d;
#X obj 154 131 delread~ \$0-d;
#X obj 164 151 delread~ \$0-d;
#X obj 174 171 delread~ \$0-d;
#X obj 184 191 delread~ \$0-d;
#X obj 194 211 delread~ \$0-d;
#X obj 204 231 delread~ \$0-d;
#X obj 214 251 delread~ \$0-d;
#X obj 224 271 delread~ \$0-d;
#X obj 19 178 *~ 0;
#X obj 129 171 *~ 0;
#X obj 139 191 *~ 0;
#X obj 149 211 *~ 0;
#X obj 159 231 *~ 0;
#X obj 169 251 *~ 0;
#X obj 179 271 *~ 0;
#X obj 189 291 *~ 0;
#X obj 199 311 *~ 0;
#X obj 322 271 expr pow(10 \, -340*$f1/1);
#X obj 252 131 expr pow(10 \, -340*$f1/1);
#X obj 262 151 expr pow(10 \, -340*$f1/1);
#X obj 272 171 expr pow(10 \, -340*$f1/1);
#X obj 282 191 expr pow(10 \, -340*$f1/1);
#X obj 292 211 expr pow(10 \, -340*$f1/1);
#X obj 302 231 expr pow(10 \, -340*$f1/1);
#X obj 312 251 expr pow(10 \, -340*$f1/1);
#X obj 44 103 expr pow(10 \, -340*$f1/1);
#X text 354 294 distance loss (1/r);
#X text 140 381 reflection loss (one reflection);
#X obj 450 25 inlet;
#X obj 128 358 *~ 0;
#X obj 78 435 outlet~;
#X connect 0 0 2 0;
#X connect 1 0 4 0;
#X connect 4 0 5 0;
#X connect 4 0 31 0;
#X connect 4 1 6 0;
#X connect 4 1 24 0;
#X connect 4 2 7 0;
#X connect 4 2 25 0;
#X connect 4 3 8 0;
#X connect 4 3 26 0;
#X connect 4 4 9 0;
#X connect 4 4 27 0;
#X connect 4 5 10 0;
#X connect 4 5 28 0;
#X connect 4 6 11 0;
#X connect 4 6 29 0;
#X connect 4 7 12 0;
#X connect 4 7 30 0;
#X connect 4 8 13 0;
#X connect 4 8 23 0;
#X connect 5 0 14 0;
#X connect 5 0 36 0;
#X connect 6 0 15 0;
#X connect 7 0 16 0;
#X connect 8 0 17 0;
#X connect 9 0 18 0;
#X connect 10 0 19 0;
#X connect 11 0 20 0;
#X connect 12 0 21 0;
#X connect 13 0 22 0;
#X connect 14 0 3 0;
#X connect 15 0 35 0;
#X connect 16 0 35 0;
#X connect 17 0 35 0;
#X connect 18 0 35 0;
#X connect 19 0 35 0;
#X connect 20 0 35 0;
#X connect 21 0 35 0;
#X connect 22 0 35 0;
#X connect 23 0 22 1;
#X connect 24 0 15 1;
#X connect 25 0 16 1;
#X connect 26 0 17 1;
#X connect 27 0 18 1;
#X connect 28 0 19 1;
#X connect 29 0 20 1;
#X connect 30 0 21 1;
#X connect 31 0 14 1;
#X connect 34 0 35 1;
#X connect 35 0 3 0;
--[[

4D early reflection calculation for heref~

--]]

-- utility 4D maths

local v4sub = function(u,v)
  local s = { }
  for i = 1,4 do s[i] = u[i]-v[i] end
  return s
end

local v4mul = function(u,k)
  local s = { }
  for i = 1,4 do s[i] = u[i]*k end
  return s
end

local v4dot = function(u,v)
  local d = 0
  for i = 1,4 do d = d + u[i]*v[i] end
  return d
end

local v4ref = function(x,p)
  local n = p.normal
  local d = p.distance
  return v4sub(x, v4mul(n, 2 * (v4dot(x,n) - d) / v4dot(n,n)))
end

local c = 340 / 1000

local v4time = function(x,y)
  local v = v4sub(x,y)
  local d = v4dot(v,v)
  return math.sqrt(d) / c
end

-- main class

local R = pd.Class:new():register(heref-calc)

function R:initialize(sel, atoms)
  self.inlets = 3
  self.outlets = 1
  return true
end

-- room size
function R:in_3_list(atoms)
  self.wall = {
{ normal = {  1, 0, 0, 0 }, distance = atoms[1] },
{ normal = { -1, 0, 0, 0 }, distance = 0 },
{ normal = { 0,  1, 0, 0 }, distance = atoms[2] },
{ normal = { 0, -1, 0, 0 }, distance = 0 },
{ normal = { 0, 0,  1, 0 }, distance = atoms[3] },
{ normal = { 0, 0, -1, 0 }, distance = 0 },
{ normal = { 0, 0, 0,  1 }, distance = atoms[4] },
{ normal = { 0, 0, 0, -1 }, distance = 0 }
  }
end

-- source position
function R:in_2_list(atoms)
  self.vsource = { atoms }
  for i = 1,8 do table.insert(self.vsource, v4ref(atoms, self.wall[i])) end
end

-- listener position
function R:in_1_list(atoms)
  local herefs = { }
  for i = 1,9 do table.insert(herefs, v4time(atoms, self.vsource[i])) end
  self:outlet(1, list, herefs)
end
#N canvas 0 0 967 676 10;
#X obj 152 273 mtx_*~ 16 16 0 ...;
#X obj 198 80 delread~ \$0-0;
#X obj 208 100 delread~ \$0-1;
#X obj 218 120 delread~ \$0-2;
#X obj 228 140 delread~ \$0-3;
#X obj 238 160 delread~ \$0-4;
#X obj 248 180 delread~ \$0-5;
#X obj 258 200 delread~ \$0-6;
#X obj 268 220 delread~ \$0-7;
#X obj 298 80 delread~ \$0-8;
#X obj 308 100 delread~ \$0-9;
#X 

Re: [PD] phase modulation feedback

2012-09-24 Thread Claude Heiland-Allen

On 24/09/12 14:00, flad chester wrote:

Hi list,  i was wondering if somebody have implemented phase modulation
feedback synthesis in pd?

The idea is that the phase can self modulate using the output of the same
signal.


I did some stuff with mutually modulating FM oscillators, using s~/r~ 
for one-block delay (64 samples).  Phase modulation is slightly 
different though...



Do anybody have implemented an example of this in pd?  any idea?


http://archive.org/details/ClaudiusMaximus_-_Soft_Rock_EP (2005)
http://archive.org/details/ClaudiusMaximus_-_Soft_Rock_DVD (2006)

one simple patch attached showing the general idea

I'm actually planning to revisit this project soon, combining with the 
machine listening/learning/sequencing ideas of NoIn EP:


http://archive.org/details/GOSUB10-002 (2009)

Making a parameter map of oscillator parameters for different tones and 
degrees of chaos:


http://identi.ca/notice/95484731

Should have time to work on this project next in November, busy times 
ahead...



Claude
--
http://mathr.co.uk
#N canvas 0 0 450 300 10;
#X obj 54 130 osc~;
#X obj 55 157 s~ \$0-osc1;
#X obj 54 77 +~ 60;
#X obj 53 101 mtof~;
#X obj 253 129 osc~;
#X obj 253 76 +~ 60;
#X obj 252 100 mtof~;
#X obj 255 32 r~ \$0-osc1;
#X obj 54 29 r~ \$0-osc2;
#X obj 254 156 s~ \$0-osc2;
#X obj 101 210 dac~;
#X floatatom 143 104 5 0 0 0 - - -;
#X obj 150 58 line~;
#X obj 55 54 *~;
#X obj 253 53 *~;
#X msg 142 26 0 \, 72 30;
#X obj 92 267 writesf~ 2;
#X msg 180 235 stop;
#X msg 163 212 open -bytes 4 Magma-1CMix.wav \, start;
#X connect 0 0 1 0;
#X connect 0 0 10 0;
#X connect 0 0 16 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X connect 4 0 9 0;
#X connect 4 0 10 1;
#X connect 4 0 16 1;
#X connect 5 0 6 0;
#X connect 6 0 4 0;
#X connect 7 0 14 0;
#X connect 8 0 13 0;
#X connect 11 0 2 1;
#X connect 11 0 5 1;
#X connect 12 0 13 1;
#X connect 12 0 14 1;
#X connect 13 0 2 0;
#X connect 14 0 5 0;
#X connect 15 0 12 0;
#X connect 17 0 16 0;
#X connect 18 0 16 0;
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Change pitch without changing length of a audio stream ?

2012-09-21 Thread Claude Heiland-Allen

On 21/09/12 08:05, Charles Goyard wrote:

Hi list,

In a installation I'm building, I use veejay (veejayhq.net) for video
display, and route the audio of the video for further mixing in pd. This
works very well.

Under some circumstances, I change the video playback speed. Veejay has
a feature called trickplay that adjusts the audio to the video length
by changing the pitch much like a 33rpm vynil record played at 45rpm.

What I want is keep the original pitch of the sound. So I figured out
timestretching is what to do. I can send the speed factor of the video
to pd. So I tried the timestretch~ external, the vocoder example (got
this advice from list archive). They both sound terrible, even with the
audio files from the examples (bell.aiff).

So is it something doable in real-time or do I have to look for a
workaround ? Any advice is welcome.


Real-time timestretch is a hard problem.  (Timestretch itself is hard).

I'd see how mixxx does it (possible wrong number of x there, but it's a 
free DJ-style software with sources available last time I checked). 
Then see if it's time stretch suits your needs and rip it out into a Pd 
external - possibly with luck mixxx just uses a library to do the dirty 
work so it might be a quick job.



Claude
--
http://mathr.co.uk

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] +=~ object for pd

2012-07-16 Thread Claude Heiland-Allen

On 16/07/12 22:26, Simon Iten wrote:

  [+=~] the object adds all the values it receives and can be reset with a 
signal (in my case a pulse)
is there an equivalent in pd? i can't seem to find one.


[rpole~]

right inlet 0 to reset
right inlet 1 to accumulate

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] bigger symbols

2012-05-23 Thread Claude Heiland-Allen

On 23/05/12 16:34, Jeppi Jeppi wrote:


Hi all,any easy (and hopefully standard) way to display a bigger and better 
looking symbol than the default [symbol] object (Ctrl-4)?Thanks!


If you only need display (no editing/input), set the label of a canvas, 
and adjust the properties to set font/size.  Beware characters like 
$#%{}[]' which might cause weird issues (though, I haven't tested 
recently, so any issues there might have been may be fixed - and I can't 
remember exactly which ones I had problems with in the past...).




Josep M 



___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management -  
http://lists.puredata.info/listinfo/pd-list



___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] mapping variable-length lists to a fixed length one

2012-05-21 Thread Claude Heiland-Allen

On 22/05/12 02:13, tim vets wrote:

I have lists of floats from measurements which vary in length
(they grow with the duration of the measurements)
What would be a good way to map those to a list of, say, 150 items?
In concreto:
-When variable list A has 15 elements and fixed list B is 150 long,
I can simply repeat each value of A 10 times to get a 150 elements list.
-When list A has 1500 elements, and B 150, I could take list A 10 elements
at a time,
and write the averages thereof to list B.
but how do I generalize this for _any_ length of list A?


look into resampling, eg libsamplerate[1]

when #A  #B you want to low pass filter to antialias when downsampling
when #A  #B you want to interpolate to antialias when   upsampling


and how do I patch this up in pd? :)


very temperamental/buggy version attached, especially the filtering is a 
bit rubbish in this one - it just uses a couple of simple causal lop[2] 
instead of doing it properly


for upsampling, tabread4 does one kind of interpolation (but you might 
want to use a different interpolation function, refer to the list 
archives about tabread4c etc)


for downsampling, you might want an acausal filter (like an image blur 
that works in all directions without shifting the image sideways) - most 
audio filters are causal (one direction only - the direction in this 
case is time, and the future can't influence the past, so there's some 
delay)


you might want to store statistics too, depending on the type of data 
(eg: in an audio scope like audacity you can see long-scale 
peaks/troughs even though the average antialiased visible signal would 
be a line at 0 assuming no DC offset) - you might pick up some ideas 
from the description of zoom-cache[3]


[1] http://www.mega-nerd.com/SRC/
[2] http://en.wikipedia.org/wiki/Low_pass_filter#Discrete-time_realization
[3] http://hackage.haskell.org/package/zoom-cache


Claude
#N canvas 0 0 485 714 10;
#X text 15 12 list_resample.pd by Claude Heiland-Allen 2012-05-22T02:48:37+0100
;
#X obj 15 61 inlet;
#X obj 76 109 list length;
#X obj 76 130 t a a;
#X msg 125 130 resize \$1;
#X obj 15 82 t a a;
#X obj 15 150 t b a;
#X obj 65 189 list prepend 0;
#X obj 64 209 s \$0-input;
#X obj 125 151 s \$0-input;
#X obj 56 62 table \$0-input;
#X obj 238 62 inlet;
#X obj 308 359 f;
#X obj 360 360 + 1;
#X msg 341 283 0;
#X obj 42 335 f;
#X obj 76 336 + 1;
#X obj 41 369 moses;
#X obj 41 308 t b b;
#X obj 121 337 f;
#X obj 156 338 +;
#X obj 213 251 /;
#X obj 41 437 f;
#X obj 308 380 tabread \$0-input;
#X obj 306 440 +;
#X obj 345 439 * 0.5;
#X obj 307 403 * 0.5;
#X obj 350 402 tabread \$0-input;
#X obj 19 240 t b b b;
#X obj 38 262 f;
#X obj 38 283 until;
#X msg 36 520 add2 \$1;
#X obj 16 575 outlet;
#X obj 104 366 b;
#X msg 106 517 set;
#X obj 236 164 max 1;
#X text 307 340 step through input;
#X obj 268 359 until;
#X obj 269 336 max 1;
#X text 66 265 step through output;
#X text 91 381 done;
#X obj 44 392 b;
#X text 46 421 current interpolated value;
#X text 315 421 interpolating lop filter;
#X text 339 265 rewind;
#X text 199 289 input/output rate;
#X obj 397 215 inlet;
#X msg 389 439 1 \$1;
#X obj 389 460 -;
#X obj 56 490 +;
#X obj 95 489 * 0.5;
#X obj 57 457 * 0.5;
#X msg 139 493 1 \$1;
#X obj 139 514 -;
#X text 68 473 reconstructing lop filter;
#X obj 323 216 inlet;
#X msg 18 547;
#X obj 156 359 moses 1;
#X obj 152 386 expr $f1 - floor($f1 \, 0) \; floor($f1 \, 0);
#X msg 134 310 1;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 21 0;
#X connect 3 1 4 0;
#X connect 4 0 9 0;
#X connect 5 0 6 0;
#X connect 5 1 2 0;
#X connect 6 0 28 0;
#X connect 6 1 7 0;
#X connect 7 0 8 0;
#X connect 11 0 35 0;
#X connect 12 0 13 0;
#X connect 12 0 23 0;
#X connect 13 0 12 1;
#X connect 14 0 12 1;
#X connect 14 0 15 1;
#X connect 14 0 27 0;
#X connect 15 0 16 0;
#X connect 15 0 17 0;
#X connect 16 0 15 1;
#X connect 17 0 41 0;
#X connect 17 1 33 0;
#X connect 18 0 15 0;
#X connect 18 1 19 0;
#X connect 19 0 20 0;
#X connect 20 0 57 0;
#X connect 21 0 20 1;
#X connect 22 0 51 0;
#X connect 23 0 26 0;
#X connect 24 0 25 0;
#X connect 24 0 22 1;
#X connect 25 0 24 1;
#X connect 26 0 24 0;
#X connect 27 0 25 0;
#X connect 27 0 50 0;
#X connect 27 0 22 1;
#X connect 28 0 56 0;
#X connect 28 1 29 0;
#X connect 28 2 14 0;
#X connect 28 2 34 0;
#X connect 28 2 59 0;
#X connect 29 0 30 0;
#X connect 30 0 18 0;
#X connect 31 0 56 0;
#X connect 33 0 30 1;
#X connect 34 0 56 0;
#X connect 35 0 17 1;
#X connect 35 0 29 1;
#X connect 35 0 21 1;
#X connect 37 0 12 0;
#X connect 38 0 37 0;
#X connect 41 0 22 0;
#X connect 46 0 26 1;
#X connect 46 0 47 0;
#X connect 47 0 48 0;
#X connect 48 0 25 1;
#X connect 49 0 50 0;
#X connect 49 0 31 0;
#X connect 50 0 49 1;
#X connect 51 0 49 0;
#X connect 52 0 53 0;
#X connect 53 0 50 1;
#X connect 55 0 52 0;
#X connect 55 0 51 1;
#X connect 56 0 32 0;
#X connect 57 0 19 1;
#X connect 57 1 58 0;
#X connect 58 0 19 1;
#X connect 58 1 38 0;
#X connect 59 0 19 1;
#N canvas 0 0 450 300 10;
#X text 14 12

Re: [PD] variable receive objects?

2012-05-18 Thread Claude Heiland-Allen

On 14/05/12 19:43, Jonathan Wilkes wrote:

From: IOhannes m zmoelnigzmoel...@iem.at
On 2012-05-14 05:02, John Harrison wrote:

  I've used those 2 objects a lot and thought they seemed pretty
  stable...


that's because the trivial case (where receiving data and
changing
the receive label are completely independent of each other
(stackwise)) won't create much of a problem.


How do I manifest the bug?


See attached.  Uses iem_r, though it should make no difference which 
settable-receive you use.


WARNING: clicking the boom message makes Pd segfault :WARNING

To understand this you need to know that pd stores a receiver in the 
symbol table.  When there is only one receiver, it's just a pointer to 
the object, but when there's more than one there's a proxy object that 
contains a list.  When you change a receiver it can end up deleting the 
proxy object if the receiver count for a symbol drops from 2 to 1. 
Deleting an object while code is executing in its context - boom.



Claude
#N canvas 0 0 450 300 10;
#X obj 30 64 iem_r foo;
#X obj 164 62 iem_r foo;
#X msg 75 89 set bar;
#X msg 208 89 set bar;
#X msg 87 133 boom;
#X obj 87 154 s foo;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 2 0 0 0;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] variable receive objects?

2012-05-12 Thread Claude Heiland-Allen

On 12/05/12 12:20, Jörn Nettingsmeier wrote:
[snip]

is there a way to generate a variable receive object similar to a send
via message box, whose source is defined at load time?

[snip]

or maybe i'm totally up the wrong alley, and someone can suggest a more
idiomatic way to deal with this issue?


I think more idiomatic is identifier flow from outside in (rather than 
trying to get the insides out).


Use $1 in the player and the controller, instead of their own local $0.

Pass the same value in as the player and controller(s) arguments.

Possibly passing in something based on the local $0 of their common 
parent patch if they have one, otherwise pick a magic name that is 
hopefully unique enough.


I find it quite common to add layers of $ when nesting abstractions, 
perhaps with a pattern similar to:


patch:[nbx]--[s $0-r] [foo $0] [r $0-s]--[print]
foo:   [r $1-r]--[s $0-$1-r]  [bar $0-$1]  [r $0-$1-s]--[s $1-s]
bar:   [r $1-r]--[s $0-$1-r]  [baz $0-$1]  [r $0-$1-s]--[s $1-s]
baz:   [r $1-r]--[+ 1]--[s $1-s]


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] pure data midi autoconnect

2012-05-11 Thread Claude Heiland-Allen

On 11/05/12 16:07, James Mckernon wrote:

'alsa midi' in pd to initialize its

it connects its output to all other midi inputs, and its input to all other
midi outputs (including through-midi on both sides, meaning it is
essentially sending midi to itself, as well as everything else.)



Can anyone suggest a way to supress this behaviour? Thanks.


I don't know if this still works in recent Pd, but it used to work to 
tell Pd to have two (2) alsamidi ports, then none are autoconnected.


$ pd -alsamidi -mididev 1 # this autoconnects pd everywhere
$ pd -alsamidi -mididev 1,1   # 2 ports, and no autoconnections
$ pd -version
Pd version 0.42-6
compiled 08:43:13 Mar 19 2012


n.b. Cross-posted this because I believe the subject concerns both lists.



Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] GEM camera angle-of-view 180deg

2012-04-14 Thread Claude Heiland-Allen

Hi Marian,

I've not tried this, but:

On 14/04/12 17:47, Marian Weger wrote:

Is it somehow possible to get a 360 degree angle-of-view with the GEM
camera inside a framebuffer?


Isn't there some easy way to do the same thing?


I don't think so.

You could use a vertex shader to implement your own projection 
algorithm[0] to reduce any strange effects from stitching together 
multiple perspective projections.  Perhaps angular fish eye[1] for the 
wide direction only (modelling a cylinder instead of a sphere).


Almost surely[2] it will still be necessary to render a few wedges of 
the cylinder to get a full 360 without bad problems at the edge cut[3].


An example of a bad problem with full 360 wide angle camera: something 
directly opposite the direction of the center of the view gets drawn as 
a huge wide thing that crosses from near far left to near far right 
instead of two small things one that goes from near far left to the far 
left edge and the other that goes from near far right to the far right 
edge.  Little ASCII diagram:


|     |  bad problem
|-----|  what it should really be


Claude

[0] http://www.google.co.uk/#q=vertex+shader+360+wide+angle+projection+-xbox
[1] http://paulbourke.net/miscellaneous/domefisheye/fisheye/
[2] http://en.wikipedia.org/wiki/Almost_surely
[3] http://en.wikipedia.org/wiki/Branch_point#Branch_cuts

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] That old -nogui/nosound problem on Linux ...

2012-04-11 Thread Claude Heiland-Allen

On 10/04/12 16:11, Chrissie Caulfield wrote:

I don't know why polygate~ does show the
problem where hip~ and friends don't but I'm hoping it's a clue!

So, does anyone have any (even vague) ideas of where to start before I
start randomly digging?


Vague guess, might be wrong:

I think the bug is that pd -nogui loads (and possibly also loadbangs) 
the patches specified on the commandline before it initialises the 
samplerate~ and block~ settings.


polygate~ (or other broken dsp externals) are probably getting the 
samplerate~ or block~ settings before pd has fully initialised them. 
(eg: object gets samplerate in the object's 'new' method)


hip~ and friends work with various workarounds probably because they 
re-get the samplerate~ or block~ settings when the dsp graph is 
resorted.  (eg: object gets samplerate in the object's 'dsp' method)


polygate~ (or other broken dsp externals) are possibly not re-getting 
the samplerate~ or block~ settings when the dsp graph is resorted.



This suggests a possible other workaround that combines two techniques:

loader.pd:

[loadbang]
 |
[delay 10] delay a bit because Pd has a bug
 | \
 | [; pd dsp 1(turn on dsp to initialize things
 |
[delay 10]
 | \
 | [; pd dsp 0(turn off dsp in case it slows down loading
 |
[delay 10]
 |
[; pd open main.pd .(  load the main patch (syntax not tested...)


main.pd:

your normal patch, feel free to [loadbang]--[; pd dsp 1] as usual, if it 
doesn't work after all that fuss then I'm out of ideas.



Of course, even if the combo workaround works, it's still just a hack 
and pd still has a real bug that needs fixing, and the externals in 
question might have real bugs that need fixing too.  But it'd provide a 
further clue.



Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] pdlua + Gem-any examples/tips?

2012-03-20 Thread Claude Heiland-Allen

Hi,

On 19/03/12 19:25, ALAN BROOKER wrote:

can I ask where did you get the frag shader from?


I wrote it.

Thanks all,


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] pdlua + Gem-any examples/tips?

2012-03-19 Thread Claude Heiland-Allen

On 18/03/12 14:13, ALAN BROOKER wrote:

Does anyone know of any examples of using Lua with Gem in anyway?


Attached example uses a custom particle system in Lua that also keeps 
track of various parameters for a GLSL shader.


Rather undocumented/hacky and might not work on any machine but mine... 
usual NO WARRANTY warning goes here...


If you want to see how it should look after it fails to run on your machine:
http://claudiusmaximus.goto10.org/v/gears/2012-01-14_gear_chain_v1.ogv 
(36MB)



Claude
uniform float cogs;
uniform float spokes;
uniform float dir;
uniform float sweep;
uniform float teeth;
uniform float hole;
uniform float radiusin;
uniform float radiusout;
uniform float threshin;
uniform float threshout;
uniform float spin;

void main(void) {
  vec2 p = gl_TexCoord[0].xy * 2.0 - 1.0;
  float r = length(p);
  if (1.0  r  r  hole) {
float a0 = atan(p.y, p.x);
float a = a0 + spin;
float tr = 1.0 - teeth * (1.0 - cos(cogs * a));
if (tr  r) {
  a *= spokes;
  a += dir * pow(sweep, r);
  float s = cos(a);
  float t = -2.0;
  float h = 10.0;
  float q = cos(8.0 * cogs * r * r);
  if (radiusout  r  r  radiusin) {
t = mix(threshin, threshout, (r - radiusin) / (radiusout - radiusin));
q = cos(5.0 * a);
  }
  if (s  t) {
vec3 u = vec3( cos(a0), sin(a0), 0.5 * q * (1.0 - r * r));
vec3 v = vec3(-sin(a0), cos(a0), 0.0);
vec3 n = normalize(cross(u, v));
vec3 l = normalize(vec3(vec2(960.0, 270.0) - gl_FragCoord.xy, 512.0));
float d = max(dot(l, n), 0.0);
vec3 f = 2.0 * d * n - l;
float c = 0.5 * pow(max(f.z, 0.0), h);
gl_FragColor = vec4(mix(0.5 * d * gl_Color.rgb, vec3(1.0), clamp(c, 
0.0, 1.0)), 1.0);
  } else {
discard;
  }
} else {
  discard;
}
  } else {
discard;
  }
}
#N canvas 2033 240 847 674 10;
#X obj 38 218 glsl_fragment gear.frag;
#X msg 189 219 link \$1;
#X obj 226 245 glsl_program;
#X obj 228 375 square;
#X obj 40 10 gemhead 10;
#X obj 228 346 color;
#X obj 245 149 route gear;
#X obj 39 112 gearbox;
#X obj 228 287 translateXYZ;
#X obj 335 253 unpack f f;
#X obj 39 153 gemlist;
#X obj 426 83 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 227 414 translateXYZ;
#X obj 320 337 * -1;
#X obj 364 339 * -1;
#X obj 408 41 loadbang;
#X obj 409 110 gemwin 25;
#X msg 245 174 cogs \$1 \, spokes \$2 \, dir \$3 \, sweep \$4 \, teeth
\$5 \, hole \$6 \, radiusin \$7 \, radiusout \$8 \, threshin \$9 \,
threshout \$10 \, color \$11 \$12 \$13 \, scale \$14 \, translate \$15
\$16 \, spin \$17;
#X obj 245 219 route color scale translate;
#X obj 40 64 t b a;
#X msg 409 62 dimen 1920 540 \, create \, 1;
#X obj 17 402 pix_write 0 0 1920 540;
#X obj 21 32 t b a a;
#X msg 49 330 file /data/cm/gc/1/i 0;
#X msg 42 298 auto 1;
#X connect 0 0 2 0;
#X connect 0 1 1 0;
#X connect 1 0 2 0;
#X connect 2 0 8 0;
#X connect 3 0 12 0;
#X connect 4 0 22 0;
#X connect 5 0 3 0;
#X connect 6 0 17 0;
#X connect 7 0 10 0;
#X connect 7 1 6 0;
#X connect 8 0 5 0;
#X connect 9 0 8 1;
#X connect 9 0 13 0;
#X connect 9 1 8 2;
#X connect 9 1 14 0;
#X connect 10 0 0 0;
#X connect 11 0 16 0;
#X connect 13 0 12 1;
#X connect 14 0 12 2;
#X connect 15 0 20 0;
#X connect 17 0 18 0;
#X connect 18 0 5 1;
#X connect 18 1 3 1;
#X connect 18 2 9 0;
#X connect 18 3 2 0;
#X connect 19 0 7 0;
#X connect 19 1 10 1;
#X connect 20 0 16 0;
#X connect 22 1 21 0;
#X connect 22 2 19 0;
#X connect 23 0 21 0;
#X connect 24 0 21 0;
local G = pd.Class:new():register(gearbox)

math.randomseed(os.time())

local function distance(p, q)
  local dx = p.x - q.x
  local dy = p.y - q.y
  return math.sqrt(dx * dx + dy * dy)
end

function G:initialize(sel, atoms)
  self.inlets = 1
  self.outlets = 2
  self.spawnhue = 0
  self.spawnparity = true
  self.spawnrate = 10
  self.spawncounter = 0
  self.scrollspeed = 0.01
  self.scrollangle = 0
  self.friction = 0.975
  self.dt = 0.002
  self.gears = { }
  return true
end

function G:spawn()
  self.spawnhue = math.fmod(self.spawnhue + 1 / 32, 1)
  local t = self.spawnhue * 2 * math.pi
  -- rec.709 yuv2rgb
  local r = 0.5 + 0.25 * 1.28033 * math.sin(t)
  local g = 0.5 - 0.25 * 0.21482 * math.cos(t) - 0.25 * 0.38059 * math.sin(t)
  local b = 0.5 + 0.25 * 2.12798 * math.cos(t)
  local p = math.random()  0.5
  local c = math.floor(math.sqrt(math.random() * (144 - 25) + 25))
  local s = 3 * c / 24
  local h = (math.random() - 0.5) * 10
  local da = 0.4 * (math.random() - 0.5)
  local a
  if p then a = 2 * math.pi / c else a = - 2 * math.pi / c end
  local v = -0.5-math.random()
  table.insert(self.gears,
{ parity = p
, cogs = c
, size = s
, mass = s * s
, angle = math.random() * 2 * math.pi
, dangle = 4 * a
, position = { x = 20 * math.cos(self.scrollangle + da), y = 20 * 
math.sin(self.scrollangle + da) }
, dposition = { x = v * math.cos(self.scrollangle + da), y =  v * 
math.sin(self.scrollangle + da) }
, color = { r = r, g 

Re: [PD] precision of vline~ and/or pd messaging

2012-01-24 Thread Claude Heiland-Allen

On 24/01/12 21:50, João Pais wrote:
 maybe the messaging isn't precisely aligned with the audio.

For this patch I'm using E Lyon's samm~ and click2bang~


I'm not familiar with those externals, nor in inspecting the output of a 
patch (which is on the large size) instead of the patch.  But some 
general points:


Timing of message-signal is 100% accurate with vline~ or other 
clock-aware objects, because all the message processing for a given dsp 
block happens before the dsp block is calculated.  vline~ and other 
objects can use the timestamp of the messages (which is in the future 
compared to the dsp processing) and schedule their dsp computations 
appropriately.  If you use metro, delay, vline~ all your timing will be 
in sync.


Timing of signal-message is problematic, for the same reason: the 
earliest a message can be sent is after the whole dsp block is 
calculated, so if you need to send a message mid-way through a dsp block 
you'd need a time machine to go back in time(*) before the dsp block was 
started to be computed and then trigger a message with a future (during 
the dsp block) timestamp.


The best you can do is a 1-block delay for signal-message, so perhaps 
click2bang~ should be modified to tell you where in the block the 
click(s) occurred so you can compensate, assuming any delay/latency is 
acceptable.  Or you could implement an abstraction to do something like 
this using [tabsend~] and [bang~].  Or you could run your patch at 
192kHz where 125ms is a multiple of the default block size, or you could 
use a block size of 1.



Claude

(*) If affordable time travel will be invented I'd have not sent this 
email ;)


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] number to fractions external?

2011-12-16 Thread Claude Heiland-Allen

On 16/12/11 06:51, i go bananas wrote:

by the way, here is the method i used:

first, convert the decimal part to a fraction in the form of n/10
next, find the highest common factor of n and 10
(using the 'division method' like this:
http://easycalculation.com/what-is-hcf.php )

then just divide n and 10 by that factor.


I don't think that method will give happy results for most simple 
fractions.  Plus it's useful to get approximations that are simpler or 
more accurate, like 3 or 22/7 or 355/113 for pi..


Your patch doesn't work very well for me:

input: 1/7
fraction: 2857/2
input: 8/9
fraction: 1/12500
input: 7/11
fraction: 15909/25000
input: 11/17
fraction: 4313.67/.67

(input is $1 $2--[/], so as accurate as floating point is...)


actually, that means it's accurate to 6 decimal places, i guess.


There's a way to get a simple fraction like 1/7 instead of 143/1000 or 
whatever, could be possible to implement in Pd?  (I've not tried.)


[0] 
http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/Data-Ratio.html#approxRational


[1] 
http://en.wikipedia.org/wiki/Continued_fraction#Best_rational_approximations



well...whatever :D



Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] fux_kinect

2011-11-12 Thread Claude Heiland-Allen

On 12/11/11 16:53, Mathieu Bouchard wrote:

gl_frame_cond = (pthread_cond_t*) malloc(sizeof(pthread_mutex_t));


A nice idiom for malloc is to use the sizeof of the target of the 
pointer to which you are assigning its result (no explicit cast needed 
when assigning from a void * afaik, at least no warnings/errors here 
with gcc (Debian 4.4.5-8) 4.4.5):


$ gcc -std=c99 -Wall -pedantic -Wextra -Wno-unused-parameter \
  -o malloc malloc.c

#include stdlib.h
struct foo { int bar, baz; double quux; };
int main(int argc, char **argv) {
  struct foo *f = malloc(sizeof(*f));
  free(f);
  return 0;
}


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Interruption of audio / Loading sound into array

2011-10-31 Thread Claude Heiland-Allen

On 31/10/11 17:37, Sebastian Hanusa wrote:

Dear List!

I have a problem, where hope the solution is so easy as it is
complicated for me to find a solution:

When I am loading a soundfile (about one 30 seconds, stereo, .aif,
16bit/44100Hz) to an array and simultaneously I have a quite simple
audio prozess like replaying a second soundfile with [readsf] + for
example a delay and a bandbass I get in the moment of loading to the
array a dropout of the audio stream.

I tryed to switch off the patch within the array for the moment of
loading - but I get the same result.

Is there a way to avoid this dropout?


If you need the sample instantly now, then probably not (you could try 
increasing the pd buffer size which adds latency, but that's no guarantee).


But, if you need it quite soon but I can wait a little see also:

http://lists.puredata.info/pipermail/pd-list/2008-05/062310.html

and similar mailing list archive threads.


I am working with pd_extended 0.42.5 on a MacBook 2 GHz Intel Core 2
Duo, OS X 10.5.8

Thanks a lot for any help and with best regards,

Sebastian



Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] pduino rewrite

2011-09-16 Thread Claude Heiland-Allen

Hi Ingo,

On 16/09/11 13:02, Ingo wrote:

When I started I thought it was very convenient to use wireless
[send/receive] objects to send midi data to the sample-voices (which it is).

[snip]

Sending 3,000 messages to 8,000 [receive] objects adds up to 24 million
times per second that the individual [receive] objects had to check whether
the message was meant to be for them or not.

[snip]

The second fix was
to replace the wireless sends with hard wired patch chords.


Faced with this scenario I would probably have tried dynamic sends, so 
the data determines which receive gets the message.


For example:

...
 |
[pack f f f f f f]
 |
[ ; r-$1-$2-$3 $4 $5 $6 (


[r r-1-4-7]
 |
[unpack f f f]
 |
...

[r r-27-63-49]
 |
[unpack f f f]
 |


And using nested abstractions you could create the receives based on 
$args, and if you need lots of voices you could use dynamic patching to 
instantiate them.



Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] pdtest - pd functional testing external

2011-09-13 Thread Claude Heiland-Allen

Ahoy,

I'm curious why you didn't use(*) pdlua and write your whole external in 
Lua?


Admittedly, there probably are still some bugs relating to require(), 
for which fixes would be welcome - last time I checked setting the paths 
for the Lua interpreter was rather a nightmare with different platforms 
(even different distros) having different locations..


On 13/09/11 14:49, Louis-Philippe wrote:

documentation and source code can be found:
https://github.com/lp/pdtest#readme



Claude

(*) instead of borrowing GPL code and licensing as MIT-style

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] freeverb crashes on new computer

2011-09-07 Thread Claude Heiland-Allen

On 07/09/11 15:23, Mathieu Bouchard wrote:

On Tue, 6 Sep 2011, ronni montoya wrote:

Do anybody have an idea why is this behaivor and how to solve it?


nan is often due to trying to do 0/0 or log(-1) or other out-of-range
things.


Probably inf - inf or 0 * inf are NaN, I haven't checked the specs.


(some other out-of-range operations yield +inf or -inf instead,
it depends)

Actually... is [clip~ -1 1] really able to get rid of nan ?


No, because NaN compares always result in false:

http://pure-data.git.sourceforge.net/git/gitweb.cgi?p=pure-data/pure-data;a=blob;f=src/d_math.c;h=f76bffef18607334a67b147fc498b7513dd6372b;hb=HEAD#l42

Workaround/fix might be:

if (!(f  x-lo)) f = x-lo;
if (!(f  x-hi)) f = x-hi;

But this might all be screwed up depending on how Pd and/or freeverb is 
compiled, I know some inf/nan things can behave even more strangely with 
-ffast-math (for example, Pd .git has no mention of it as far as I can 
tell).



Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [OT] SSE/MMX tips?

2011-09-07 Thread Claude Heiland-Allen

On 07/09/11 12:17, Bill Gribble wrote:

The operation is integration.


Try calling it 'scan' and you might end up with more productive 
searches, at least to my mind integration is more about summing over 
continuous regions than something discrete like this.


Searching for data parallel algorithm scan leads to pages like:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.85.1876rep=rep1type=pdf
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch39.html


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


[PD] workaround for -batch -nogui delwrite~ etc bugs

2011-08-08 Thread Claude Heiland-Allen

Hi all,

The problem:

Using pd -nogui or pd -batch, some stuff seems not set up yet when the 
patch is loaded, making [delwrite~] (among others) not work correctly.


The workaround:

Use dynamic patching to instantiate the real patch with a delay.

Example:

pd -batch -r 48000 -open workaround_loader.pd -send workaround 50 500
pd -batch -r 48000 -open workaround_loader.pd -send workaround 10 1000

Hopefully useful, thanks,


Claude
#N canvas 0 0 450 300 10;
#X obj 15 17 r workaround;
#X obj 15 58 t b a b;
#X obj 15 79 delay 2000;
#X obj 15 100 list;
#X obj 15 121 s workaround;
#X obj 15 38 spigot 1;
#X msg 79 38 0;
#N canvas 0 0 450 300 \$0-workaround 0;
#X restore 15 142 pd \$0-workaround;
#X obj 112 57 t b b b;
#X msg 83 79 \; pd dsp 1;
#X msg 151 77 \; pd dsp 0;
#X msg 225 86 clear;
#X obj 112 35 delay 1000;
#X msg 131 116 obj 10 10 workaround_main \, loadbang;
#X obj 131 141 s pd-\$0-workaround;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 1 1 3 1;
#X connect 1 2 6 0;
#X connect 1 2 9 0;
#X connect 1 2 12 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 5 0 1 0;
#X connect 6 0 5 1;
#X connect 8 0 9 0;
#X connect 8 1 13 0;
#X connect 8 2 10 0;
#X connect 11 0 14 0;
#X connect 12 0 8 0;
#X connect 13 0 14 0;
#N canvas 0 0 451 528 10;
#X obj 17 13 r workaround;
#X obj 17 63 unpack f f;
#X obj 75 105 osc~;
#X obj 17 84 delread~ \$0-delay;
#X obj 17 163 +~;
#X obj 141 128 pack f f;
#X obj 141 107 * 0.1;
#X obj 186 108 * 0.9;
#X obj 75 126 *~;
#X msg 141 149 1 \$1 \, 0 \$2 \$1;
#X obj 141 170 vline~;
#X obj 141 191 *~;
#X obj 141 212 *~;
#X obj 91 212 dac~;
#X obj 17 237 delwrite~ \$0-delay 1;
#X obj 17 105 *~ 0.9;
#X obj 38 261 env~ 16384;
#X obj 37 308 ;
#X obj 39 331 ;
#X obj 38 282 t f f f;
#X obj 77 309 ==;
#X obj 39 352 sel 1;
#X obj 39 373 spigot 1;
#X msg 39 417 \; pd quit;
#X obj 135 329 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 180 310 writesf~;
#X msg 143 292 stop;
#X obj 39 394 delay 1000;
#X obj 141 86 t f f;
#X msg 180 289 open workaround-\$1-\$2.wav \, start;
#X msg 255 35 \; workaround 50 440;
#X msg 255 75 \; workaround 500 44;
#X connect 0 0 1 0;
#X connect 0 0 29 0;
#X connect 1 0 3 0;
#X connect 1 0 28 0;
#X connect 1 1 2 0;
#X connect 2 0 8 0;
#X connect 3 0 15 0;
#X connect 4 0 13 0;
#X connect 4 0 13 1;
#X connect 4 0 14 0;
#X connect 4 0 16 0;
#X connect 4 0 25 0;
#X connect 5 0 9 0;
#X connect 6 0 5 0;
#X connect 7 0 5 1;
#X connect 8 0 4 1;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 10 0 11 1;
#X connect 11 0 12 0;
#X connect 11 0 12 1;
#X connect 12 0 8 1;
#X connect 15 0 4 0;
#X connect 16 0 19 0;
#X connect 17 0 18 0;
#X connect 18 0 21 0;
#X connect 19 0 17 1;
#X connect 19 1 17 0;
#X connect 19 2 20 0;
#X connect 20 0 18 1;
#X connect 21 0 22 0;
#X connect 21 0 26 0;
#X connect 22 0 27 0;
#X connect 24 0 22 1;
#X connect 26 0 25 0;
#X connect 27 0 23 0;
#X connect 28 0 6 0;
#X connect 28 1 7 0;
#X connect 29 0 25 0;
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] workaround for -batch -nogui delwrite~ etc bugs

2011-08-08 Thread Claude Heiland-Allen

On 08/08/11 15:38, Mathieu Bouchard wrote:

On Mon, 8 Aug 2011, Claude Heiland-Allen wrote:


Using pd -nogui or pd -batch, some stuff seems not set up yet when the
patch is loaded, making [delwrite~] (among others) not work correctly.


Did you try extended 42.6 or vanilla 43 ?


Previously I used vanilla 42.

I just now tried vanilla 43:

-nogui works partially
  [delwrite~] sounds ok when importing raw data into audacity
  [writesf~] saves audio data but gives unplayable files
(mplayer Cannot find codec for audio format 0x1.)

-batch has problems
  [delwrite~] sounds ok (when using [soundfiler] to save output)
  [writesf~] gives empty files (just 44 bytes of header)
  pd runs in realtime mode without being asked (watchdog blah)

So, I guess the [delwrite~] issue is fixed (thanks!) but the other 
issues with [writesf~] make the workaround still necessary.



Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Adding Gridflow to the visual arsenal

2011-05-17 Thread Claude Heiland-Allen

On 17/05/11 15:32, Pagano, Patrick wrote:

Does anyone have any how to patches for bridging GEM/Gridflow/pdp/pidip?


gridflow has bridges to PDP and Gem:
#to_pdp #from_pdp
#to_pix #from_pix

gridflow must be loaded after pdp/Gem for the bridge to be loaded:
$ pd -lib pdp:Gem:gridflow

an example patch for the Gem bridge:
gridflow/examples/game_of_life_gem.pd


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] loading patches very slow in linux

2011-05-16 Thread Claude Heiland-Allen

On 16/05/11 15:56, Mathieu Bouchard wrote:

 there seems to be a
problem finding abstractions quickly.


Probably bitrotted by now, and had issues/missing features even then:
http://lists.puredata.info/pipermail/pd-list/2008-10/065307.html

Another thing to possibly check is whether dsp is on or off when you 
load patches, perhaps?  I think Pd tries to turn it off before and 
restore the state after loading, though.



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] dsp external pointer problem

2011-05-12 Thread Claude Heiland-Allen

Hi,

Unrelated to your issue, perhaps, but I thought this work mentioning:

On 12/05/11 09:34, Ahmet Kizilay wrote:

t_int *ak_addthese_tilde_perform(t_int *w) {

[snip]

   t_sample ** ins = getbytes(sizeof(t_sample *) * 2);

[snip]

There's a memory leak here (no corresponding call to freebytes() or 
whatever it is called)!  And technically it's not realtime-safe to 
allocate memory in perform method (but this doesn't matter so much with 
the current Pd implementation, afaik).


I suggest allocating this memory in the constructor (new method) (and 
freeing it in the destructor), because you (probably) already know the 
number of inlets in the constructor (otherwise allocate in the dsp add 
method).



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] multiple OSC messages in one udp packet?

2011-05-10 Thread Claude Heiland-Allen

On 10/05/11 10:38, matteo sisti sette wrote:

Does the OSC standard (or to be more precise, the standard for OSC
over UDP) allow to pack multiple OSC messages into a single UDP
packet?


No time to read it all myself, but:
http://opensoundcontrol.org/spec-1_0


I ask this because I am sending OSC messages from Pd to TouchOSC (on
an iPad) and when I send it multiple messages in 0 logical time (even
just 3 or 4 messages at a time, not dozens),


Have you tried explicitly packing them into OSC bundles?  This should 
make them really occur at the same time, rather than as soon as 
received.  And it might fix the issue as a side effect.



TouchOSC


It seems some recent versions are buggy, don't know if it supports OSC 
bundles...

http://hexler.net/forum/viewthread/31/


almost
systematically loses many of them.



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] msg to abstractions

2011-05-05 Thread Claude Heiland-Allen

On 05/05/11 10:31, Jeppi Jeppi wrote:


Hi again,just another question regarding the pd-msg system. Say I have two 
parametrized abstractions [boo 1] and [boo 2] loaded in my patch. When I send a 
message to them to dynamically create some objects inside, I send it as [obj 20 30 
metro 100(---[s pd-boo.pd] which, of course, goes to both instances.
Would it be a way to send the message only to a single instance, maybe taking 
into account the creation parameters?
Adding prefix to the abstraction names is not elegant, as that would require 
previously creating n abstractions, named [1_boo] ,  [2_boo] and so on...clumsy


I would probably workaround this stuff by doing something like this:

boo.pd
8
[inlet]-- or a global [receive BOO]
 |
[route $1]
 |
 | [loadbang]
 |  |
 | [clear( -- click this before saving too
 | /
[s pd-$0-boo-subpatch]
   -- the $0 is local to each abstraction
[pd $0-boo-subpatch]
8

Then [list prepend 1] etc each message before sending it to all the 
[inlet] or [send BOO] or whatever.



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] msg to abstractions

2011-05-05 Thread Claude Heiland-Allen

On 05/05/11 11:56, Claude Heiland-Allen wrote:

On 05/05/11 10:31, Jeppi Jeppi wrote:

Adding prefix to the abstraction names is not elegant, as that would
require previously creating n abstractions, named [1_boo] , [2_boo]
and so on...clumsy


Just remembered there is a loader plugin out there somewhere that 
creates new abstractions from a template for any unknown names - not 
sure where to find it though IOhannes might know?



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] multiple [udpreceive n] instances

2011-05-04 Thread Claude Heiland-Allen

On 04/05/11 12:32, Jamie Bullock wrote:

What I want to do is instantiate [udpreceive 5000] and then another [udpreceive 
5000] I get the same data to both objects.
Alternatively, can anyone suggest away to achieve the same result with the 
existing objects?


You could (but see caveat below) make an abstraction [myudpreceive]:

8
[udpreceive $1]
 |
[send MYUDPRECEIVE-$1]

[receive MYUDPRECEIVE-$1]
 |
[outlet]
8

The top half will only work in one instance but the bottom half will 
work in all of them.


But: expect problems if you delete the original instance with the 
working/instantiated [udpreceive]... so probably better to have one 
toplevel / master [udpreceive] that sends to a global receive name.



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Midi note handling for monophonic synth

2011-04-21 Thread Claude Heiland-Allen

Hi Joe,

On 21/04/11 12:48, Joe White wrote:

Hi all,

I'm implementing a synth in Pd using midi/notein as an input.

One problem I keep coming up against is handling note off messages. This
guy's blog post describes the issue -
http://kemptonmooney.com/2010/09/pure-data-midi-note-off-solution/

However, I think his solution is not exactly what I'm looking for. The
synths I use in Logic have note priority methods and remember all held down
notes (or at least 10).


If pitch is the only thing determining which notes should sound, you 
could use a [table $0-active 128] (one index for each MIDI note) to 
count how many times each note has been pressed and not released, then 
process it how you like.


If the order of key presses matters, you could keep an ordered list of 
pressed notes (example below using Haskell to prototype the algorithm) 
and sound the most recently pressed note that hasn't been released:


8
$ ghci
...
 let soundingNote = listToMaybe
 let noteOn note vel notes = (note, vel) : notes
 let noteOff note vel notes = deleteBy ((==)`on`fst) (note, vel) notes
 let noNotes = []
 let test = noteOff 62 60 . noteOn 60 60 . noteOn 62 60 $ noNotes
 soundingNote test
Just (60,60)
 soundingNote (noteOff 60 25 test)
Nothing
8


I wondering if anyone has managed to implement something like this in Pd or
might know where I can find out more about it.


Might be something more directly useful in the previous discussions:

http://lists.puredata.info/search/Pd-list?query=monophonicmax=100result=normalsort=score


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Graph a circle arc in an array?

2011-04-10 Thread Claude Heiland-Allen

On 10/04/11 15:12, Tyler Leavitt wrote:

I've not had any real success using the formulas with [sin] and [cos]...
maybe I'm missing something here. The only solution that I've gotten to work
is the midpoint circle algorithm with Peter's patch.


A circle centered at the origin is implicitly[1] described by:

  x^2 + y^2 = r^2

Rearranging this gives:

  y = +/- sqrt(r^2 - x^2)   for -r = x = r

Hopefully this more useful for your purposes than the parametric form:

  (x,y) = (cos(t), sin(t))  for -PI = t = PI

Should be much simpler to implement than an optimized-for-integers 
Bresenham-style implementation.



Relatedly[2] I like this function too:

  f(x,t) = sqrt((t^2)+(x^2)*(2*t+1))-t  for -1 = x = 1 and 0 = t


[1] http://en.wikipedia.org/wiki/Circle#Cartesian_coordinates
[2] http://en.wikipedia.org/wiki/Conic_section


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


[PD] [ot] Re: Making a Realtime Convolution External

2011-04-07 Thread Claude Heiland-Allen

On 07/04/11 16:15, Mathieu Bouchard wrote:

Suppose that you launch a second fred on another cpu.


http://www.archive.org/download/GOSUB10-002/GOSUB10-002-02-ClaudiusMaximus--Drain_Hops_Crawling_On_My_Fred.ogg
http://gosub10.org/GOSUB10-002.html


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] 3 new gui-plugins

2011-04-03 Thread Claude Heiland-Allen

On 03/04/11 22:38, Hans-Christoph Steiner wrote:

traverse the whole search path to see the
objects that could be loaded. Its doable.


I don't think so, consider for example:

EXTERN void orly_setup(void) {
  if (rand() % 666 == 42) {
yarly_setup();
  } else {
exit(7);
  }
}

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [Pdmtl] [PD-announce] four more fractal videos, and reposting the two previous ones

2011-02-17 Thread Claude Heiland-Allen

On 04/02/11 16:45, j...@rybn.org wrote:

(BTW, can you make it so you don't have to copy-paste each time you want a
new level to the fractal ? because in my patch, I just have to change a
number)

Sure it is possible with Lua or something else.


Or even plain Pd...


Claude
--
http://claudiusmaximus.goto10.org
#N canvas 492 24 788 677 10;
#X msg 23 25 create \, 1;
#X obj 23 66 gemwin;
#X msg 33 45 destroy;
#X obj 153 31 gemhead;
#X obj 153 491 gemlist;
#X obj 153 598 polygon 3;
#X obj 170 512 loadbang;
#X msg 170 535 -0.5 -0.28866 0;
#X msg 187 555 0.5 -0.28866 0;
#X msg 204 575 0 0.57735 0;
#X obj 153 241 route T R t r s [ ];
#X obj 184 400 rotateXYZ 0 0 180;
#X obj 184 357 gemlist;
#X obj 232 312 gemlist;
#X obj 184 423 scaleXYZ 0.333 0.333 1;
#X obj 232 334 GEMglPushMatrix;
#X obj 248 269 gemlist;
#X obj 248 291 GEMglPopMatrix;
#X obj 168 447 gemlist;
#X obj 168 470 rotateXYZ 0 0 60;
#X msg 35 514 draw line;
#X obj 184 380 translateXYZ 0.333 0.192 0;
#X msg 35 534 draw fill;
#X obj 153 52 scaleXYZ 6 6 1;
#X msg 153 203 T \, R \, [ \, t \, T \, ] \, R \, [ \, t \, T \, ]
\, R \, [ \, t \, T \, ] \, R \, [ \, t \, T \, ] \, R \, [ \, t \,
T \, ] \, R \, [ \, t \, T \, ];
#X obj 153 72 t b a;
#X text 361 503 Jack/RYBN 2011;
#X text 106 513 -;
#X text 106 533 -;
#X obj 60 177 v \$0-depth;
#X obj 60 151 b;
#X obj 63 261 t b b f;
#X obj 63 282 v \$0-depth;
#X obj 63 303 - 1;
#X obj 63 324 v \$0-depth;
#X obj 102 304 + 1;
#X obj 101 42 vradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 -1
-1 3;
#X obj 60 224 sel 0;
#X text 361 523 recursified by Claude Heiland-Allen 2011;
#X connect 0 0 1 0;
#X connect 2 0 1 0;
#X connect 3 0 23 0;
#X connect 4 0 5 0;
#X connect 6 0 7 0;
#X connect 6 0 8 0;
#X connect 6 0 9 0;
#X connect 7 0 5 1;
#X connect 8 0 5 2;
#X connect 9 0 5 3;
#X connect 10 0 30 0;
#X connect 10 1 18 0;
#X connect 10 2 12 0;
#X connect 10 5 13 0;
#X connect 10 6 16 0;
#X connect 11 0 14 0;
#X connect 12 0 21 0;
#X connect 13 0 15 0;
#X connect 16 0 17 0;
#X connect 18 0 19 0;
#X connect 20 0 5 0;
#X connect 21 0 11 0;
#X connect 22 0 5 0;
#X connect 23 0 25 0;
#X connect 24 0 10 0;
#X connect 25 0 30 0;
#X connect 25 1 4 1;
#X connect 25 1 18 1;
#X connect 25 1 12 1;
#X connect 25 1 13 1;
#X connect 25 1 16 1;
#X connect 29 0 37 0;
#X connect 30 0 29 0;
#X connect 31 0 32 0;
#X connect 31 1 24 0;
#X connect 31 2 35 0;
#X connect 32 0 33 0;
#X connect 33 0 34 0;
#X connect 35 0 34 0;
#X connect 36 0 37 1;
#X connect 37 0 4 0;
#X connect 37 1 31 0;
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Scheduling events, libpd, and sequencing

2011-02-15 Thread Claude Heiland-Allen

On 15/02/11 13:30, Peter Kirn wrote:

But what would be the most efficient way to send events to those objects for
future scheduling?


I have some code that allows you to cache incoming events (eg: from 
[netreceive]) and dispatch them all at once in 0 logical time.  I called 
it [bundle] because of the vague similarity to OSC bundles.


Something like

begin, foo, bar, baz, end  /* with arbitrary time between messages */
 |
[bundle]
 |
foo, bar, baz  /* all in 0 logical time, when 'end' arrives */

There are some issues (like 'list' vs 'notlist' messages, 'begin' and 
'end' won't be stored, negative nesting count (too many 'end'), ...) but 
it might be a useful starting point.



qlist seems to be built for the purpose, but two issues:


3. sends to names instead of outlet, which makes it much less flexible


Claude
#N canvas 0 0 331 368 10;
#X obj 19 20 inlet;
#X obj 19 41 route begin end;
#X obj 19 62 b;
#X obj 92 62 b;
#X obj 92 83 v \$0-depth;
#X obj 92 104 - 1;
#X obj 119 146 v \$0-depth;
#X obj 19 83 v \$0-depth;
#X obj 19 145 v \$0-depth;
#X obj 19 104 + 1;
#X obj 92 166 sel 0;
#X obj 138 118 spigot;
#X obj 190 114 spigot;
#X obj 138 56 t a a b;
#X obj 197 53 v \$0-depth;
#X obj 197 93 == 0;
#X obj 233 94 != 0;
#X obj 197 73 t f f;
#X obj 243 336 outlet;
#X obj 92 280 textfile;
#X obj 190 134 list prepend add;
#X obj 190 155 list trim;
#X msg 131 211 rewind;
#X obj 92 187 t b b b;
#X obj 111 231 until;
#X msg 92 252 clear;
#X obj 92 125 t f f;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 1 2 13 0;
#X connect 2 0 7 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 26 0;
#X connect 7 0 9 0;
#X connect 9 0 8 0;
#X connect 10 0 23 0;
#X connect 11 0 18 0;
#X connect 12 0 20 0;
#X connect 13 0 11 0;
#X connect 13 1 12 0;
#X connect 13 2 14 0;
#X connect 14 0 17 0;
#X connect 15 0 11 1;
#X connect 16 0 12 1;
#X connect 17 0 15 0;
#X connect 17 1 16 0;
#X connect 19 0 18 0;
#X connect 19 1 24 1;
#X connect 20 0 21 0;
#X connect 21 0 19 0;
#X connect 22 0 19 0;
#X connect 23 0 25 0;
#X connect 23 1 24 0;
#X connect 23 2 22 0;
#X connect 24 0 19 0;
#X connect 25 0 19 0;
#X connect 26 0 10 0;
#X connect 26 1 6 0;
#N canvas 0 0 450 300 10;
#X obj 124 153 bundle;
#X msg 31 27 begin;
#X msg 32 116 end;
#X msg 120 77 foo;
#X msg 168 81 bar;
#X msg 212 79 baz;
#X obj 124 174 print bundle;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] algorithms for drawing filter response curves

2011-02-07 Thread Claude Heiland-Allen

On 06/02/11 23:12, Hans-Christoph Steiner wrote:

 now I'm looking for the algorithms for
generating a plot of the frequency response of a given set of biquad
coefficents?


See perhaps:

http://www-users.cs.york.ac.uk/~fisher/mkfilter/

In particular:

http://www-users.cs.york.ac.uk/~fisher/software/mkfilter/current/complex.C
global complex evaluate(complex topco[], int nz, complex botco[], int 
np, complex z)


http://www-users.cs.york.ac.uk/~fisher/software/mkfilter/current/genplot.C
static void computefr(complex fr[], int nsteps)


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Picture to Audio to Array

2011-01-26 Thread Claude Heiland-Allen

On 26/01/11 19:32, Moritz Schell wrote:

Everytime I repeat the whole action (with the same picture - same grey
values) a new wave appears in the array.


1. [tabwrite~] is *not* clock-aware, so it starts on block boundaries
2. [vline~] *is* clock-aware, so it might start sub-sample accurate
3. [osc~] has internal state (its phase) which you are not resetting

a possible solution might involve:

1. use [line~] instead of [vline~]
2. reset [osc~] phase when you start the [tabwrite~]


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


[PD] [cos~] broken for moderately large inputs

2011-01-10 Thread Claude Heiland-Allen

Hi,

Seems [cos~] only gives expected results between -1024 and 1024.

Above  1024 the frequency halves,  halving again at  5120, etc.
Below -1024 the frequency doubles, until chaos   at -3072.

http://claudiusmaximus.goto10.org/g/tech/cos~-test.pd.png
http://claudiusmaximus.goto10.org/g/tech/cos~-test-2.pd.png
http://claudiusmaximus.goto10.org/g/tech/cos~-test-3.pd.png


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Capture video+audio from PD using XvidCap.

2011-01-08 Thread Claude Heiland-Allen

On 08/01/11 10:11, Dima Bak wrote:

Hi! I want to record video of my session in pd. I try to use XvidCap, but
there is no sound. What audio driver i need to use in pd?
Thanks.


I haven't found the perfect solution yet.  Using JACK in Pd, you might 
try recordmydesktop or istanbul.  I found recordmydesktop silently 
dropped frames giving out of sync jittery output, while istanbul crashed 
on exit but I could rescue a file from /tmp/.  Recordmydesktop seems no 
longer developed, while istanbul has recent commits in its repository. 
Both encode to Ogg Theora+Vorbis format.  Istanbul is based on 
gstreamer, so it should be possible to use gstreamer directly if you 
need to configure more options.


http://recordmydesktop.sourceforge.net/about.php
http://live.gnome.org/Istanbul


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Osc phase and number of periods for subsonic touch-music

2010-12-08 Thread Claude Heiland-Allen

On 08/12/10 07:32, Daniel K. wrote:

generating sine waves with
finite numbers of periods that always started with the same phase.


10 periods of 20Hz sine wave, subsample accurate timing without needing 
[block~]:



0, 10 500
 |
[vline~]
 |
[- 0.25]
 |
[cos~]
 |
[dac~]


For N periods of F Hz, something like this should work if my mental 
algebra is up to scratch: 0, N T where T = 1000 * N / F


Have fun!


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] OpenMP and Pd

2010-12-06 Thread Claude Heiland-Allen

Hi Pedro,

Somehow I thought this was a new message, but the date tells me it's 
from quite some time ago.  Replying anyway as it may be interesting to 
you and all:


On Thu, May 20, 2010 at 4:46 PM, Pedro Lopespedro.lo...@ist.utl.pt 
wrote something roughly along the lines of:

 I was trying to include pragma comments of OpenMp in a PD external,
 but it does not seem to work for some reason.
 undefined symbol: GOMP_parallel_start

OpenMP has a run time system that is linked into the executable when you 
compile with -fopenmp - if you compile a shared object (like a Pd 
external) with -fopenmp it hopes that the executable that loads it will 
have the OpenMP run time system inside it.  So the fix is simple: just 
compile Pd itself with -fopenmp, then compile your external with 
-fopenmp too, and it should Just Work (TM).  Attached patch against 
pd-0.42-5 allowed me to load a slightly modified version of gridflow and 
see Pd using more than one core:


http://claudiusmaximus.goto10.org/g/tech/pd-gridflow-openmp.png

(After applying the patch, run autoreconf to regenerate ./configure)

NB: while it does use more than one core, I just compared with the 
single core version of gridflow without openmp and it uses only 25% of 
my cpu (on one core) while the openmp version uses 145% of my cpu 
(spread over two cores).  So, it's no magic bullet...



Claude
--
http://claudiusmaximus.goto10.org
--- pd-0.42-5.orig/src/configure.in	2008-12-10 18:30:53.0 +
+++ pd-0.42-5/src/configure.in	2010-12-06 09:17:50.0 +
@@ -2,11 +2,12 @@
 AC_INIT(d_arithmetic.c)
 
 AC_SUBST(alsa, yes)
-AC_SUBST(jack, no)
+AC_SUBST(jack, yes)
 AC_SUBST(portaudio, no)
 AC_SUBST(portmidi, no)
 AC_SUBST(binarymode, -m755)
 AC_SUBST(fftw, no)
+AC_SUBST(openmp, yes)
 AC_SUBST(tk, yes)
 AC_SUBST(PDLIB)
 AC_SUBST(CPPFLAGS)
@@ -44,6 +45,8 @@
 setuid=$enableval)
 AC_ARG_ENABLE(fftw, [  --enable-fftw   use FFTW package],
 fftw=$enableval)
+AC_ARG_ENABLE(openmp,   [  --enable-openmp use OpenMP package],
+openmp=$enableval)
 AC_ARG_ENABLE(fat,  [  --disable-fat   build fat binary on Mac OS X], 
 fat=$enableval, fat=yes)
 AC_ARG_ENABLE(tk,   [  --disable-tkbuild without tcl/tk-GUI],
@@ -254,6 +257,10 @@
 else
 MORECFLAGS=$MORECFLAGS -O6 -funroll-loops -fomit-frame-pointer
 fi
+if test x$openmp = xyes;
+then
+MORECFLAGS=$MORECFLAGS -fopenmp
+fi
 if test x$jack = xyes;
 then
 LDFLAGS=$LDFLAGS -lrt -ljack
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Simple Subtractive Synth filter envelope

2010-11-22 Thread Claude Heiland-Allen

On 22/11/10 21:48, samuel rowe wrote:

an envelope generator with ADSR


vline~ is your friend here:

1 10, 0.5 100 10, 0 1000 2000
 |
[vline~]
 |
[*~]\[osc~ 666]
 |
[dac~]


the output will not feed into the argument for a filter cutoff value.


right. you can't connect signal outlets to message inlets:
http://www-crca.ucsd.edu/~msp/Pd_documentation/x2.htm#s4.2

and most of pd's filters (lop~, hip~, bp~, ...) expect messages for the 
parameters.  the workaround is to use the raw filter objects to build 
more complex filters from poles and zeros.


I made a resonant low pass filter using that method:
http://lists.puredata.info/pipermail/pd-list/2007-11/056858.html
[PD] pd filter with pole and zero
Sat Nov 24 19:00:13 CET 2007

There are also externals with more filters (iemlib has many) and some 
abstractions out there somewhere.


Good luck!


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] 3d tube with control of the position of the extremities

2010-11-19 Thread Claude Heiland-Allen

Hi Luiz,

On 17/11/10 22:10, Luiz Naveda wrote:

I was trying to build 3d cylinders using GEM. But I the actual
solutions (cylinder and tube) cannot be easily manipulated. I would
like to control the x y z of the extremities of the tube, like a
[polygon 2] but with control of diameter and faces of the cylinder.

Any useful tip? I am really missing the point or there is no easy
solution for that in PD?


I needed this a while ago for my [1] MarkIII project, so I made it. 
There was no really easy solution, a lot of maths/geometry to do.  See 
attached.  Maybe there is a better way?



Claude

[1] http://claudiusmaximus.goto10.org/cm/2010-01-28_markiii_demos.html

--
http://claudiusmaximus.goto10.org
#N canvas 0 0 450 387 10;
#X obj 15 19 inlet;
#X obj 113 19 inlet;
#X obj 211 19 inlet;
#X obj 323 50 inlet;
#X obj 16 40 t a a;
#X obj 16 361 outlet;
#X obj 113 44 unpack f f f;
#X obj 211 44 unpack f f f;
#X obj 173 102 -;
#X obj 203 102 -;
#X obj 43 62 separator;
#X obj 225 262 loadbang;
#X obj 30 318 cylinder;
#X obj 172 150 t f f;
#X obj 173 174 *;
#X obj 44 98 translate 1 0 0 0;
#X obj 46 223 rotate;
#X obj 212 150 t f f;
#X obj 213 174 *;
#X obj 262 150 t f f;
#X obj 263 174 *;
#X obj 218 199 +;
#X obj 174 202 +;
#X obj 174 225 sqrt;
#X obj 174 248 swap;
#X obj 175 272 /;
#X obj 174 299 expr 180.0*acos($f1)/3.1415926;
#X obj 174 329 *;
#X obj 211 317 expr if($f10 \, -1 \, 1);
#X obj 93 196 pack f f;
#X msg 93 221 \$2 \$1 0;
#X obj 138 174 * -1;
#X obj 139 154 *;
#X obj 93 156 *;
#X obj 32 293 translateXYZ 0 0 0;
#X obj 235 104 +;
#X obj 248 66 -;
#X obj 311 101 == 0;
#X obj 313 121 * 1e-05;
#X obj 250 87 t f f;
#X obj 149 228 /;
#X obj 142 252 * 0.5;
#X obj 31 271 scaleXYZ -1 1 1;
#X obj 35 249 separator;
#X msg 224 280 7;
#X connect 0 0 4 0;
#X connect 1 0 6 0;
#X connect 2 0 7 0;
#X connect 2 0 15 2;
#X connect 3 0 12 1;
#X connect 3 0 34 3;
#X connect 3 0 40 1;
#X connect 4 0 5 0;
#X connect 4 1 10 0;
#X connect 6 0 8 0;
#X connect 6 1 9 0;
#X connect 6 2 36 0;
#X connect 7 0 8 1;
#X connect 7 1 9 1;
#X connect 7 2 36 1;
#X connect 8 0 13 0;
#X connect 8 0 33 0;
#X connect 9 0 17 0;
#X connect 9 0 32 0;
#X connect 10 0 15 0;
#X connect 11 0 44 0;
#X connect 13 0 14 0;
#X connect 13 1 14 1;
#X connect 14 0 22 0;
#X connect 15 0 16 0;
#X connect 16 0 43 0;
#X connect 17 0 18 0;
#X connect 17 1 18 1;
#X connect 18 0 21 0;
#X connect 19 0 20 0;
#X connect 19 1 20 1;
#X connect 20 0 21 1;
#X connect 21 0 22 1;
#X connect 22 0 23 0;
#X connect 23 0 24 0;
#X connect 23 0 40 0;
#X connect 24 0 25 0;
#X connect 24 1 25 1;
#X connect 25 0 26 0;
#X connect 26 0 27 0;
#X connect 27 0 16 1;
#X connect 28 0 27 1;
#X connect 29 0 30 0;
#X connect 30 0 16 2;
#X connect 31 0 29 1;
#X connect 32 0 31 0;
#X connect 33 0 29 0;
#X connect 34 0 12 0;
#X connect 35 0 19 0;
#X connect 35 0 24 1;
#X connect 35 0 28 0;
#X connect 35 0 32 1;
#X connect 35 0 33 1;
#X connect 36 0 39 0;
#X connect 37 0 38 0;
#X connect 38 0 35 1;
#X connect 39 0 35 0;
#X connect 39 1 37 0;
#X connect 40 0 41 0;
#X connect 41 0 42 3;
#X connect 42 0 34 0;
#X connect 43 0 42 0;
#X connect 44 0 12 2;
#N canvas 0 0 450 422 10;
#X obj 134 147 gemwin 25;
#X obj 116 173 gemhead;
#X msg 198 300 0.1;
#X obj 117 194 t a a;
#X obj 168 222 world_light;
#X msg 228 198 1 0 1;
#X msg 136 87 create \, 1 \, lighting 0;
#X msg 189 267 1 1 0;
#X floatatom 266 231 5 0 0 0 - - -;
#X obj 296 284 pack f f f;
#X obj 306 259 t b a;
#X floatatom 312 230 5 0 0 0 - - -;
#X obj 346 259 t b a;
#X floatatom 352 230 5 0 0 0 - - -;
#X obj 283 312 t a b;
#X msg 296 334 -2 -2 0;
#X obj 145 365 tube2;
#X connect 1 0 3 0;
#X connect 2 0 16 3;
#X connect 3 0 16 0;
#X connect 3 1 4 0;
#X connect 5 0 4 1;
#X connect 6 0 0 0;
#X connect 7 0 16 2;
#X connect 8 0 9 0;
#X connect 9 0 14 0;
#X connect 10 0 9 0;
#X connect 10 1 9 1;
#X connect 11 0 10 0;
#X connect 12 0 9 0;
#X connect 12 1 9 2;
#X connect 13 0 12 0;
#X connect 14 0 16 1;
#X connect 14 1 15 0;
#X connect 15 0 16 2;
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] ubuntu ppa's

2010-11-05 Thread Claude Heiland-Allen

On 05/11/10 05:22, august wrote:

I'd like to contribute to the puredyne ppa's at launchpad.


Great!


I was wondering if someone could help me  get up to speed on how to make
a ppa, maybe with a simple example I can just copy and paste.


1. create a Launchpad account
2. sign the code of conduct
3. create a Launchpad PPA for your own use/testing/etc
4. package the software Debian-style
5. dput it to your own PPA for Launchpad to build
6. join the Puredyne team
7. copy stable versions from your PPA to the Puredyne PPA

The hard part is step 4 - takes some trial-and-error, especially for 
software that isn't simple to build.  A quick way to get examples is add 
a deb-src line to correspond to the deb line for the Puredyne PPA in 
your sources.list.d, then sudo apt-get update  apt-get source pd-foo 
to unpack the source deb.



-august.


Thanks,


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Pd 20% idle CPU usage on MBP

2010-10-28 Thread Claude Heiland-Allen

Hi,

On 28/10/10 16:41, Jamie Bullock wrote:

Pd's idle CPU usage is 15-20%.
Does anyone know why this is?


probably a bug..  you could try using gdb and interrupting Pd to see 
where it is being busy, or some profiling tool (gprof or strace or shark 
(?) or something else).



Is there anything that can be done to improve the situation?


Try turning DSP on and then off again, maybe.


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] opencv

2010-10-28 Thread Claude Heiland-Allen

On 28/10/10 17:39, Philip Cunningham wrote:

Hello list,

I wonder if there are any tutorials available on how to use OpenCV
with Pd? I'm trying to download necessary components using the
following site:
http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv but
having very little luck. Operating system is Ubuntu 10.4.


You could try the Puredyne PPA for pd-pdp-opencv (available right 
nownow) and pd-pix-opencv packages (available soon..) for Lucid:


https://launchpad.net/~puredyne-team/+archive/ppa


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


[PD] [PD-announce] z→z²+c released on GOSUB10 netlabel

2010-10-26 Thread Claude Heiland-Allen

Hi everyone,

My latest work made with Pure-data is available, including the source 
code so you can make your own generative fractal music:


http://gosub10.org/GOSUB10-003.html

The Mandelbrot set is possibly the world’s most famous fractal. z→z²+c 
is a series of sonifications, focussing on the periodic attractors found 
almost everywhere within the Mandelbrot set. Given just two real numbers 
(forming one point in the complex plane), dynamic patterns can emerge as 
the one simple equation governing the system is repeated over and over: 
z→z²+c


The source code for this release (implemented in Pure-data using 
GridFlow and zexy) is free software distributable under the terms of the 
GNU General Public License (version 3 or greater).


Copyleft: This is a free work, you can copy, distribute, and modify it 
under the terms of the Free Art License.


Released on 17th October 2010.

Track listing:

   1. ClaudiusMaximus – The Military-Industrial Complex
   2. ClaudiusMaximus – After The Despoilment
   3. ClaudiusMaximus – Race Against Time
   4. ClaudiusMaximus – Before Civilisation

Dedicated to innovative music and audio/visuals, the GOSUB10 label will 
feature an eclectic group of musicians drawn together by their shared 
use of Free/Libre/Open Source Software (FLOSS). Freely distributed by 
stream, download and special DVD releases, and made available through an 
open license, GOSUB10 is run by the GOTO10 collective – an international 
group of artists, musicians and programmers, dedicated to FLOSS and 
digital arts. Brought to life in a intensive four day work sprint but 
years in the making, the GOSUB10 netlabel is a natural extension of 
GOTO10’s activities supporting and promoting digital art alongside FLOSS 
tools through workshops, festivals, exhibitions, writing, and more.


http://gosub10.org


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-announce mailing list
pd-annou...@iem.at
http://lists.puredata.info/listinfo/pd-announce
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] OSC messages without /

2010-10-21 Thread Claude Heiland-Allen

On 21/10/10 18:26, Leandro da Mota Damasceno wrote:

So, the question is... Is there any workaround I could try in PD?


 |
[list split 1]
 |  |
/$1   |
 |  |
[list append ]
 |
[list trim]
 |

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] reverb in pd

2010-10-20 Thread Claude Heiland-Allen

On 20/10/10 16:20, Mathieu Bouchard wrote:

On Wed, 20 Oct 2010, ronni montoya wrote:


Hello, i was trying freeverb in pd and i dont like how it sounds. I
was wondering if there are any other reverb objects or externals that
sound better. Any idea?


I'm still pretty much just using [delread~] and [vd~], with multipliers
like [*~ 0.95] and [*~ -0.95] for example... afair, natural echo is
modelled by a negative multiplier. each 30 centimetres span needs 1 ms.
don't forget that if one delay is less than a block size you need a
subpatch and [block~].


A while ago I made a reverb with 16 delay lines using iemmatrix and lua 
(and possibly other externals), the concept was 4D room simulation or 
something along those lines - not sure how accurate my maths was but it 
sounds nice to my ears...:


svn co https://code.goto10.org/svn/maximus/2008/hverb/

http://claudiusmaximus.goto10.org/feed/media/ClaudiusMaximus_-_HyperShoeBoxen.ogg
http://claudiusmaximus.goto10.org/feed/media/ClaudiusMaximus_-_Corridor_Pacing.ogg


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] noob asking : is there a way to script pd?

2010-10-14 Thread Claude Heiland-Allen

On 14/10/10 22:07, Achim Bloch wrote:

Hello listees
I'd like to know if there is a way to act on pd objects via a script language, 
I mean, coding behaviors and feedbacks?
Sorry if this sounds noob, my knowledge about pd is very basic.
Thanks,
C


I'm not sure what you mean - do you want to write new objects, or do you 
want to script patch creation/usage?


You can write objects in scripting languages (python, lua, ...), and 
these objects can send messages, and messages to canvases can create new 
objects and connect them and manipulate them in other ways - see also 
the iemguts library for additional ways of manipulating objects that 
might be what you mean.


You can also interact with scripts running externally, using the 
pdsend/pdreceive executables or direct socket communication with 
[netsend] and [netreceive] in Pd.  OSC is also an option if this 
workflow suits your problem domain.



Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Vline~ subsample accuracy clarification

2010-10-10 Thread Claude Heiland-Allen

On 10/10/10 23:20, Oliver Larkin wrote:

Hi,

Can someone explain to me how vline~ can align the endpoints of the
envelope, accurate to a fraction of a sample


You need to know some background about pd's scheduler for the following 
to make sense, here are some reasonable places to start reading:


http://www.mail-archive.com/pd-list@iem.at/msg06215.html
Re: [PD] accuracy of signal/message-objects
IOhannes m zmoelnig
Tue, 08 May 2007 00:16:54 -0700

http://www.mail-archive.com/pd-list@iem.at/msg06284.html
Re: [PD] accuracy of signal/message-objects
Frank Barknecht
Wed, 09 May 2007 05:40:28 -0700

Essentially, Pd has a 'logical clock', which means messages have a time 
stamp that clock-aware objects can access.  All the messages that would 
happen in 1 DSP block are executed before that DSP block is computed, 
which means that for example [vline~] can collect all its messages with 
time stamps so it knows exactly when each line segment is due to start.


Then, for each sample in the DSP block, [vline~] checks if the current 
segment is over.  If it isn't over, it outputs the next sample and 
carries on.  If it has ended (most likely in-between the previous sample 
and the current sample), it uses the time stamps to start the next 
segment at exactly the right time, and calculates how far along that 
ramp it will be at the timestamp of the current sample.


Of course the source code is more complicated than that, lots of things 
to consider like multiple line segments in between two samples, constant 
hold at the end of a line segment when no other is scheduled yet, etc. 
The main thing to note is that the time stamps are subsample accurate, 
which means clock-aware objects can be schedule messages with subsample 
accuracy.  Of course, how much sense it is to implement this is a bit 
fuzzy - if you have 1 line segments in between 2 adjacent sample 
points, you'll miss out on a lot of detail...



I don't really see how that's possible. my guess is that it's somehow
similar to the way interpolation is used in fractional delay lines,
but I can't quite translate that idea to an envelope.

Thanks

Oli



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Shuffling arrays

2010-10-05 Thread Claude Heiland-Allen

On 04/10/10 16:06, martin.pe...@sympatico.ca wrote:


That's a bad way to shuffle,


The same way that it's a really bad way to sort - maybe it could be 
classed as a bogobubblesort.  I chose to do it that way for aesthetic 
purposes (a jumbled sequence gradually returns to order) rather than 
efficiency...


This might be relevant if you value correctness:
http://okmij.org/ftp/Haskell/perfect-shuffle.txt


as it can swap things back again and generally reduce the randomness, the way 
someone who is good at shufflng cards can put them all back the way they 
started while appearing to mix them up.

A better way is to start at the beginning of the array, swap the first item 
with one of the remaining items, then swap the second item, up to the end.

Martin

Claude wrote:

On 03/10/10 23:21, Andrew Faraday wrote:


Hey Guys
I've recently come across the .shuffle method in Ruby which randomly re-orders 
the content of an array. Does anyone know of a way to do this in Pd, that is, 
either change the order of notes within an array or output them in a random 
order (without repeating any part of it)?
Help would be appreciated
Andrew


You can pick pairs of indices at random and swap them with
tabread/tabwrite; repeat to shuffle more.

I used a similar technique to gradually sort an array (swap random
elements only if they are out of order):

https://code.goto10.org/svn/maximus/2007/clouds-are-made-of-water/
http://www.archive.org/details/ClaudiusMaximus_-_Clouds_Are_Made_Of_Water
(track 5)


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management -  
http://lists.puredata.info/listinfo/pd-list





___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Shuffling arrays

2010-10-04 Thread Claude Heiland-Allen

On 03/10/10 23:21, Andrew Faraday wrote:


Hey Guys
I've recently come across the .shuffle method in Ruby which randomly re-orders 
the content of an array. Does anyone know of a way to do this in Pd, that is, 
either change the order of notes within an array or output them in a random 
order (without repeating any part of it)?
Help would be appreciated
Andrew  


You can pick pairs of indices at random and swap them with 
tabread/tabwrite; repeat to shuffle more.


I used a similar technique to gradually sort an array (swap random 
elements only if they are out of order):


https://code.goto10.org/svn/maximus/2007/clouds-are-made-of-water/
http://www.archive.org/details/ClaudiusMaximus_-_Clouds_Are_Made_Of_Water
(track 5)


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] more dimensions for boids ?

2010-10-01 Thread Claude Heiland-Allen

Hi,

On 01/10/10 09:58, ronni montoya wrote:

Hello everybody , i was reading a paper that describe the software
swarm music(Blackwell and Bentley 2002). This software uses 7
dimensional boids  instead of 2 or 3 .
I was wondering how can i implement this in pd? Is it possible to add
more dimensions to the boids2d or boids3d external? how can i do that?


I'm not familiar with these externals.  If they are implemented 
similarly to 'msd' externals, you might be able to recompile for any 
number of dimensions (fixed at compile time) with a simple flag or so.



how can i implement boids with more dimensions?


With a vector representation of the rules for the boids to follow it 
should be possible to have as many dimensions as you like: for example, 
checking that a boid can see another boid:


   V `dot` P
  ---  -0.5 , where V = view direction, P = boid direction
  ||V|| ||P||

This equation doesn't specify dimension, so should work for any.


If its not possible wouldnt be any difference if i use 2 boids3d
objects to control 6 audio parameters?would it be the same having 2
boids3d objects  controlling 6 parameters and having one boid of 6 six
dimentions?


No - because you don't get transfer of energy/vibes/whatever between the 
two sets of 3 dimensions - they remain disjoint.  It's not just about 
the total number of dimensions, but how they are connected together (at 
every point in the space).



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] markov chains?

2010-09-30 Thread Claude Heiland-Allen

On 30/09/10 19:45, L.J. wrote:

looking for implementations of markov chains i found
http://footils.org/cms/weblog/2009/may/23/markov-chains-pure-data/
but the page seems to be gone?

can anybody point me to some simple markov patches?


There's one in the documentation but that method would become painful 
for larger chains and learning:


doc/2.control.examples/21.markov.chain.pd

GridFlow has an example too: gridflow/examples/markov.pd

I also have a half-finished project using pdlua implementing Markov 
chain stuff, little-to-no documentation on how to use it though:


http://claudiusmaximus.goto10.org/cm/2010-01-28_markiii_demos.html


appreciated



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Fw: Latency

2010-09-18 Thread Claude Heiland-Allen

On 18/09/10 00:44, Dan Wilcox wrote:


On Sep 17, 2010, at 5:39 PM, Ed Kelly wrote:


I will sell my FA-101 and get a UA!


... the UA-25 only has 2 ins and outs at 16bit, you can do 2 in at 24bit or 2 
out at 24 bit, but not full duplex.


I think it's slightly more complicated than that!

With my UA-25 I get full duplex at 24bit with the sample rate switch set 
to 44.1kHz and 48kHz (and the advance mode switch set to 'on', in case 
that matters).  At 96kHz it is probably different, but I never tried 
that yet.  (This is with the original UA-25, which I believe has been 
discontinued - the later versions may have different behaviour.)


From my qjackctl messages pane:
--88--
apparent rate = 44100
creating alsa driver ... hw:1|hw:1|256|3|44100|2|2|nomon|swmeter|-|32bit
control device hw:1
configuring for 44100Hz, period = 256 frames (5.8 ms), buffer = 3 periods
ALSA: final selected sample format for capture: 24bit little-endian
ALSA: use 3 periods for capture
ALSA: final selected sample format for playback: 24bit little-endian
ALSA: use 3 periods for playback
--88--


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Any Live Coders?

2010-09-13 Thread Claude Heiland-Allen

On 12/09/10 23:35, Andrew Faraday wrote:

Either way, I was wondering if anyone feels like sharing some of their mental 
templates for a live code approach.
Just to get the ball rolling, here's one of my favorites:


[mostly-incomprehensible ascii art snipped]

Thanks for the tip/reminder that [s~]/[r~]/[throw~]/[catch~] might be 
useful in a livecoding session - I've always been frustrated by having 
to connect things together, especially when needing to insert something 
in the middle of a chain.  Another good practice/hacky workaround 
for Pd livecoding is inserting extra [*~ 1] all over the place so you 
can break a stereo chain atomically later on.


Otherwise, I usually prepare some small abstractions for drums ([kick~] 
[snare~] [clap~] [hihat~] etc), as coding a reasonable sounding drum 
synth is hard (in fact I think I mostly 'borrowed' from Andy Farnell's 
stuff).


And some simple effects that are boring to code too, like delay-based 
[pitchshift~] and audio-rate [compress~] (my own invention that sounds 
too extreme, but stops everything clipping and I don't have to worry 
about levels so much).


One of my tricks when live coding (and more generally) is using 
arithmetic on beat counts, like [*] [+] [div] [mod] in various 
combinations.  Then using the resulting numbers as frequency multipliers 
(for harmonic series/scales).  For a (composed) EP that uses this 
technique, see:


http://www.archive.org/details/ClaudiusMaximus_-_Clouds_Are_Made_Of_Water

in particular the third track.

The same kind of thing works for slower oscillators, to get rhythms from 
waveshaping a [phasor~] (I think this might be what you were trying in 
the ascii diagram, perhaps?).


Another trick is to use delay effects to amplify your mistakes and make 
them seem intentional by repetition.  Pitchshifts in a feedback delay 
lines are fun too.


Anyway, I uploaded some older recordings this morning, four Pd 
livecoding sessions:


http://www.archive.org/details/ClaudiusMaximus_-_Livecoding_2008

Listening back to them with a critical ear, I think in places I forgot 
the value of (self-)sabotage for making more interesting improvised 
music - getting locked into a groove (even if it's funky) isn't good if 
it goes on for too long.



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Guitar distortion (Chebyshev?)

2010-09-12 Thread Claude Heiland-Allen

On 12/09/10 15:31, Pierre Massat wrote:

I m not sure whether this is the right way of dealing with guitar
distortion.


I don't think there's a right way - judge by your ears, if you like it 
then that way is good for you at that particular moment in time. 
Personally when I want distortion I use various (frequency-) filters and 
expr~ to waveshape, but my input is generally synthetic.


Miller's patch for guitar has an interesting waveshaping technique you 
could borrow: essentially it involves separating a sinusoid into 
separate phase/amplitude information, and waveshaping from the phase 
before recombining with the amplitude.  Tihs could probably be extended 
to a 2D wavetable with a [tabread16~] or something similar.  Results 
without a separate pickup for each string (necessary to get close to a 
single-frequency sinusoid) will probably be very strange.


http://www-crca.ucsd.edu/~msp/smeck/latest/doc/index.htm

Another thing to consider is aliasing: I read somewhere (and I hope I'm 
not repeating untruths) that you need to oversample by a factor of N if 
you waveshape by a polynomial of degree N (eg a cubic would need 3x 
oversampling to avoid aliasing).



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] prime numbers

2010-09-11 Thread Claude Heiland-Allen

On 11/09/10 21:33, Kim Cascone wrote:

is there a Pd object for generating prime numbers?


A prime number has exactly two factors (1 and itself).  I attached an 
abstraction to generate a list of all factors of a number, which could 
be used to see if a number is prime (inefficiently).



Claude
--
http://claudiusmaximus.goto10.org
#N canvas 0 0 341 412 10;
#X obj 24 22 inlet;
#X obj 24 61 t b f f b;
#X obj 24 42 max 1;
#X obj 36 238 list prepend;
#X obj 37 260 t a a;
#X obj 25 286 list append;
#X obj 25 313 outlet;
#X obj 36 85 until;
#X obj 36 106 f;
#X obj 64 106 + 1;
#X obj 36 134 t f f;
#X obj 59 155 swap;
#X obj 59 176 mod;
#X obj 59 196 ==;
#X obj 36 217 spigot;
#X msg 75 84 1;
#X connect 0 0 2 0;
#X connect 1 0 5 0;
#X connect 1 1 7 0;
#X connect 1 2 11 1;
#X connect 1 3 3 1;
#X connect 1 3 15 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 5 1;
#X connect 4 1 3 1;
#X connect 5 0 6 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 8 1;
#X connect 10 0 14 0;
#X connect 10 1 11 0;
#X connect 11 0 12 0;
#X connect 11 1 12 1;
#X connect 12 0 13 0;
#X connect 13 0 14 1;
#X connect 14 0 3 0;
#X connect 15 0 8 1;
#N canvas 1 3 449 297 10;
#X obj 98 111 factors;
#X floatatom 98 33 5 0 0 0 - - -;
#X msg 128 53 360;
#X obj 112 137 print factors;
#X msg 139 76 127;
#X obj 98 174 list length;
#X obj 98 195 sel 2;
#X obj 98 216 print isprime;
#X connect 0 0 3 0;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] prime numbers

2010-09-11 Thread Claude Heiland-Allen

Hi,

On 12/09/10 04:33, ydego...@gmail.com wrote:

Mathieu Bouchard wrote:

On Sat, 11 Sep 2010, Kim Cascone wrote:


is there a Pd object for generating prime numbers?
currently I'm:
[1 2 3 5 7 9...97]


1 is not a prime number. (9 is not a prime number either)


i just read '1 is not a prime number' of course 9 is not,
ut a prime number can only be divided by 1 and itself,
so why 1 can't be?


1 is special and unique, it has only 1 factor (itself).  I'd guess that 
0 has an infinite number of factors, but I'm not sure on this.  In any 
case it's probably special too.


Mathematicians almost all agree that 1 should not be classified as 
prime, because it does not have exactly 2 distinct factors.  The main 
reason is that if you leave out the number 1 from the set of prime 
numbers, you can prove nice uniqueness theorems about prime factorization:


http://en.wikipedia.org/wiki/Fundamental_theorem_of_arithmetic

The name shows just how important that property is considered to be. 
The uniqueness of prime factorization can be used to show some quite 
impressive things, see for example:


http://en.wikipedia.org/wiki/Goedel_numbering

used to prove that you can't prove everything (or something along 
those lines, I've not studied this maths in enough depth).



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Introduction to elementary filter components in Pd

2010-09-11 Thread Claude Heiland-Allen

On 11/09/10 21:03, brandon zeeb wrote:

So, for an intermediate to advanced Pd user who would like know more about
this real, what would you recommend?


https://ccrma.stanford.edu/~jos/filters/Graphical_Amplitude_Response.html
http://www-users.cs.york.ac.uk/~fisher/mkfilter/


Claude

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] return a list of externals

2010-09-10 Thread Claude Heiland-Allen

On 10/09/10 18:55, Kim Cascone wrote:

is there a way to get a list of all the externals used in a patch?


Yes, probably in several ways.  One I used is to patch Pd to print out 
the list of all classes registered when they get registered (and the 
library names when they are loaded), so the first lot are internal, and 
the rest external.  Using this you can get some plain lists of objects 
from different libraries.


Then you can use some shell scripts (and the lists you generated from 
the patched Pd) to filter out all the internal objects from the patch 
files, and get a list of all the externals used.  For example code:


https://code.goto10.org/svn/maximus/2008/pdpatchinfo/

(may have slightly bitrotted, and probably the object lists are out of 
date by now).



other than by hand of course...
I see nothing in pd --help



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] sonyfing chaotic functions

2010-09-01 Thread Claude Heiland-Allen

On 01/09/10 05:28, ronni montoya wrote:

Hello everybody , i was wondering if somebody have worked sonyfing
chaotic functions in pd.


I've been working lately with the periodic attractors within the chaos 
of z→z²+c , an early audio recording is at


http://claudiusmaximus.goto10.org/feed/media/ClaudiusMaximus%20-%204%203%202%206%205%202%202%20%2B0.3514203503727912903%2B0.5820160284638404846i%20%282010-08-25%29.ogg


But not mapping the values from the functions
into sound parameters, but instead using the resulting values for
generating  waveforms.


See the help patch for [fexpr~] - it has a section for Lorentz equation 
sounds.



Do anybody have tried something like this in
pd? Maybe theres some example patches i could begin studying?

thanks in advance



Thanks,


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] GEM Shear / angle relationship

2010-08-31 Thread Claude Heiland-Allen

Hi Ed,

On 31/08/10 15:31, Ed Kelly wrote:

Can anyone tell me how to calculate the 'shear' value (when using [shearYX] in
Gem) from an angle (degrees or radians, I don't mind)?


This is just a guess, for one direction of shear in 2D space:

shear = tan(angle)  (the angle marked ** in the ascii diagram below)

|   __
|**/ /
| / /
|/_/


(because tan(0) = 0, tan(45deg) = 1, tan(90deg) = inf)

Otherwise try drawing triangles and doing some trigonometry
(in a right-angle triangle:
sin=opposite/diagonal
cos=adjacent/diagonal
tan=opposite/adjacent
)


Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [pix_crop] doesn't work after [pix_set] ??

2010-08-18 Thread Claude Heiland-Allen

On 18/08/10 16:15, Matteo Sisti Sette wrote:

Hi,

I'm trying

[pix_set 8 8]
|
[pix_crop]

and whatever width, height and offset I give pix_crop it doesn't crop at
all.


It works here, see attached (requires gridflow as well as Gem as I 
didn't feel like writing a long list in the patch).



Versions:

cla...@zebimus:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION=Ubuntu 10.04.1 LTS
cla...@zebimus:~$ uname -a
Linux zebimus 2.6.32-24-generic #39-Ubuntu SMP Wed Jul 28 05:14:15 UTC 
2010 x86_64 GNU/Linux

cla...@zebimus:~$ apt-cache policy puredata gem gridflow
puredata:
  Installed: 0.42.5-3
  Candidate: 0.42.5-3
  Version table:
 *** 0.42.5-3 0
500 http://gb.archive.ubuntu.com/ubuntu/ lucid/universe Packages
100 /var/lib/dpkg/status
gem:
  Installed: 1:0.92.2-2
  Candidate: 1:0.92.2-2
  Version table:
 *** 1:0.92.2-2 0
500 http://gb.archive.ubuntu.com/ubuntu/ lucid/universe Packages
100 /var/lib/dpkg/status
gridflow:
  Installed: 9.10-1~ppa1~lucid3
  Candidate: 9.10-1~ppa1~lucid3
  Version table:
 *** 9.10-1~ppa1~lucid3 0
500 http://ppa.launchpad.net/claudiusmaximus/ppa/ubuntu/ 
lucid/main Packages
500 http://ppa.launchpad.net/puredyne-team/ppa/ubuntu/ 
lucid/main Packages

100 /var/lib/dpkg/status



Claude
--
http://claudiusmaximus.goto10.org
#N canvas 0 0 450 454 10;
#X obj 44 274 pix_crop;
#X obj 143 94 #checkers;
#X obj 44 120 pix_set 64 64;
#X msg 64 245 16;
#X obj 144 72 #for (0 0) (64 64) (1 1);
#X obj 144 119 #to_list;
#X msg 106 82 RGB;
#X obj 161 12 loadbang;
#X obj 145 36 t b b;
#X obj 141 10 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 44 147 t a a;
#X obj 44 179 pix_separator;
#X obj 182 176 pix_separator;
#X obj 44 80 gemhead;
#X obj 74 223 loadbang;
#X obj 182 298 pix_texture;
#X obj 44 299 pix_texture;
#X obj 182 197 separator;
#X obj 44 199 separator;
#X obj 182 351 square;
#X obj 44 353 square;
#X obj 11 57 gemwin;
#X msg 35 8 create \, 1;
#X msg 41 32 0 \, destroy;
#X msg 91 243 32;
#X obj 182 324 translateXYZ 1.5 0 0;
#X obj 44 324 translateXYZ -1.5 0 0;
#X connect 0 0 16 0;
#X connect 1 0 5 0;
#X connect 2 0 10 0;
#X connect 3 0 0 1;
#X connect 3 0 0 2;
#X connect 4 0 1 0;
#X connect 5 0 2 1;
#X connect 6 0 2 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 8 1 6 0;
#X connect 9 0 8 0;
#X connect 10 0 11 0;
#X connect 10 1 12 0;
#X connect 11 0 18 0;
#X connect 12 0 17 0;
#X connect 13 0 2 0;
#X connect 14 0 3 0;
#X connect 14 0 24 0;
#X connect 15 0 25 0;
#X connect 16 0 26 0;
#X connect 17 0 15 0;
#X connect 18 0 0 0;
#X connect 22 0 21 0;
#X connect 23 0 21 0;
#X connect 24 0 0 4;
#X connect 24 0 0 3;
#X connect 25 0 19 0;
#X connect 26 0 20 0;
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] [pd~] gem crashing

2010-08-18 Thread Claude Heiland-Allen

On 18/08/10 16:35, João de Brito Vidigal wrote:

I'mtrying to use the [pd~] object to separate audio and video!
However, when I [create( the [gemwin] it just gets stuck!!!


I'm guessing it might be this from the pd~ help patch:

ATTENTION: DSP must be running in this process for the sub-process to 
run. This is because its clock is slaved to audio I/O it gets from us!


What it doesn't say is that the sub-process *also* needs dsp running for 
its clock to run.



here go the files!


I didn't try your patch as it's kind of huge (I send a small test case).


Claude
--
http://claudiusmaximus.goto10.org
#N canvas 40 134 450 300 10;
#X msg 130 94 pd~ stop;
#X obj 25 42 loadbang;
#X msg 25 63 \; pd dsp 1;
#X msg 130 67 pd~ start -nogui -lib Gem subprocess.pd;
#X obj 101 126 pd~ -sr 44100 -ninsig 0 -noutsig 0 -fifo 20;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 3 0 4 0;
#N canvas 0 0 450 300 10;
#X obj 98 16 loadbang;
#X msg 98 46 create \, 1;
#X obj 98 71 gemwin;
#X obj 96 188 square;
#X obj 96 101 gemhead;
#X msg 190 45 \; pd dsp 1;
#X obj 96 128 t a b;
#X obj 136 129 f 0;
#X obj 163 131 + 1;
#X obj 163 152 mod 360;
#X obj 96 163 rotateXYZ;
#X connect 0 0 1 0;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 4 0 6 0;
#X connect 6 0 10 0;
#X connect 6 1 7 0;
#X connect 7 0 8 0;
#X connect 7 0 10 2;
#X connect 7 0 10 1;
#X connect 8 0 9 0;
#X connect 9 0 7 1;
#X connect 10 0 3 0;
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Infinite and NaN float values?

2010-08-16 Thread Claude Heiland-Allen

On 16/08/10 18:59, Matteo Sisti Sette wrote:

Is this expected behaviour?


Yes.  IEEE floating point (used by most common CPUs, though GPUs might 
not support all features) is a bit warty.



If so i guess infinities and NaN have been
recently introduced, haven't they?


No.  But Pd tries to guard against them.


However there seem to be some inconsistency: 5/4 returns 0 (as I was
used to), not +inf. Also, I'm not sure +inf is the value you expect when
adding something to the greatest representable value... or is it?


Pd [/] guards against division by 0 by outputting 0 instead of 
+infinity, -infinity or NotANumber (depending on the sign of the left 
argument).


The reason why NaN and (to a lesser extent?) infinities are discouraged 
by non-scientific software is that it pollutes everything: any 
arithmetic operation you try to do with NaN gives you a NaN (or worse, 
an unexpected result: comparisons always give False so the three-way 
partition x ==x x doesn't hold).  For scientific software NaN can be 
useful, to indicate that the algorithms aren't good enough or that the 
input was bad.



Also I cannot seem to find a way to write inf's or NaN as a literal (in
a message box), and I cannot find an [isNaN] or similar object... that's
why I wonder if this is a feature or a bug.


[expr isnan($f1)], perhaps?  It creates, but I didn't manage to create a 
NaN to test yet (expr guards against division by zero too).



Also, sliders seem not to like them.

If you feed a NaN (or maybe +Inf, I'm not sure) to a slider, it makes


NaN compares 'False' for everything, my guess is that it checks for out 
of bounds (x  top || bottom  x) which gives false for NaN, so it 
assumes it's in the right range and passes a NaN to the graphics engine, 
which then goes beserk - more robust would be !(x  top  bottom  x) 
which should work even for NaN



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] new wrap incompatible object error

2010-08-16 Thread Claude Heiland-Allen

On 17/08/10 01:38, Hans-Christoph Steiner wrote:


On Aug 16, 2010, at 8:30 PM, Mathieu Bouchard wrote:


On Mon, 16 Aug 2010, Hans-Christoph Steiner wrote:


Personally, its much more annoying if you have used [wrap] in your
patch, then your patch mysteriously breaks. Hence the error. I could
be worded better, so I'm updating it.


can you make it a warn() instead, so that people can use Find Last
Error for things that are really Errors ? That's especially because
Find Last Error can really find only the Last one.



a broken wrap or pow~ is really an error in my opinion.


The timeline is important here, because I know that I (and possibly 
others) have a tendency to remember things in a way that justifies my 
own current viewpoint:


0. puredata had [wrap~] but not [wrap]
1. [zexy/wrap] was implemented
2. pd-extended imports -lib zexy unqualified
3. some people using pd-extended use [wrap] (from zexy)
4a. puredata implemented [wrap] that isn't quite the same
4b. puredata implemented externals can override internals (+warnings)
4c. pd-extended removed externals can override internals
5. some people write patches using [wrap] (from puredata)
6. pd-extended changes [wrap] to emit warnings
7a. puredata [wrap] users get upset about the warnings from pd-extended
7b. pd-extended [wrap] users get upset about the warnings from puredata

The point here is that, the puredata users in 5 who want to make patches 
with [wrap] work with both puredata and pd-extended without 
warnings/error message, now have NO options and the suggested solution 
from pd-extended BREAKS puredata:


A. using plain [wrap], puredata works fine and pd-extended complains
B. using -lib zexy [wrap], puredata complains and pd-extended complains
C. using -lib zexy [zexy/wrap], puredata FAILS*, pd-extended works fine

So, given that C is not an option for most puredata users, pd-extended 
should certainly not be recommending this as the way to fix patches, at 
least not unconditionally (afaik in some modes -lib zexy [wrap] behaves 
the same as puredata [wrap], but it can do more?)


Other solutions might be:
I. allow externals to override internals, like puredata
II. extend pd-extended's [wrap] to behave just like -lib zexy [wrap] 
when zexy is loaded/imported
III. extend puredata's [wrap] to behave just like -lib zexy [wrap] and 
then port the changes to pd-extended


--[[-- opinion

The pd-extended users in 3 who want to make patches with [wrap] work 
with both puredata and pd-extended should have known that they were 
using an extension, but sadly pd-extended's decision to load everything 
automatically to make life easier for users caused this mess in the 
first place, in the end making life harder for everybody.


The incompatible suggestion smacks of pd-embrace-and-extend...
http://en.wikipedia.org/wiki/Embrace_and_extend

--]]-- opinion


(*) with puredata and pd-zexy from Ubuntu Lucid 'universe':
$ pd -stderr -verbose -lib zexy
Pd version 0.42-5
compiled 20:01:18 Jan  5 2010
[snip]
tried ./zexy.l_ia64 and failed
tried /usr/lib/pd/extra/zexy.l_ia64 and failed
tried ./zexy.pd_linux and failed
tried /usr/lib/pd/extra/zexy.pd_linux and succeeded
warning: class 'wrap' overwritten; old one renamed 'wrap_aliased'
warning: class 'abs~' overwritten; old one renamed 'abs~_aliased'


©  the zexy external  2.1  ©
© (l)  forum::für::umläute ©
©  compiled:  May 30 2008  ©
© send me a 'help' message ©


tried /home/claude/zexy/wrap.l_ia64 and failed
tried /usr/lib/pd/extra/zexy/wrap.l_ia64 and failed
tried /home/claude/zexy/wrap.pd_linux and failed
tried /usr/lib/pd/extra/zexy/wrap.pd_linux and failed
tried /home/claude/zexy/wrap/wrap.l_ia64 and failed
tried /usr/lib/pd/extra/zexy/wrap/wrap.l_ia64 and failed
tried /home/claude/zexy/wrap/wrap.pd_linux and failed
tried /usr/lib/pd/extra/zexy/wrap/wrap.pd_linux and failed
tried /home/claude/zexy/wrap.pd and failed
tried /usr/lib/pd/extra/zexy/wrap.pd and failed
tried /home/claude/zexy/wrap.pat and failed
tried /usr/lib/pd/extra/zexy/wrap.pat and failed
 zexy/wrap
... couldn't create


I hope this all makes sense, and that a more appropriate solution can be 
reached before the final release version of Pd-extended-0.42.



Claude
--
http://claudiusmaximus.goto10.org

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


  1   2   3   4   >