Re: [PD] Polyphony and granular synthesis, etc.
Hi, On Sat, Mar 12, 2011 at 11:54:59AM +0100, Frank Barknecht wrote: This: [mytable( | | [symbol mytable( |/ [u_dispatch $0 tablename] will send a mytable-message to [r $0-tablename] for both messages (because of the [list trim] symbol mytable gets converted to mytable). Correction: This will not sent anything to $0-tablename, because both incoming messages do not start with tablename! But both tablename mytable and list tablename mytable would send mytable to [r $0-tablename]. Ciao -- Frank BarknechtDo You RjDj.me? _ __footils.org__ ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
Hi, sorry for coming in late to this thread - I'm currently forced to stay away from my desk for some days ... Regarding u_dispatch $0 symbol: Because of the [list trim] that is applied to all incoming parameters, it would never filter any data. [u_dispatch] is like a simplified [route] that doesn't make a difference between list frequency 440 and frequency 440, so you can send it either kind of message and don't have to fiddle with [list] or [list trim] on your own. In my experience, this has been easier for users, who are not so familiar with Pd's message type system and its pitfalls. You can easily work around dispatching symbol-messages by using different selectors. To set a table name for example, I'd use [u_dispatch $0 tablename]. The only issue then is that [u_dispatch] doesn't generate full symbol-messages, instead it generates meta-messages without symbol-selector. This: [mytable( | | [symbol mytable( |/ [u_dispatch $0 tablename] will send a mytable-message to [r $0-tablename] for both messages (because of the [list trim] symbol mytable gets converted to mytable). To get a symbol mytable message again, use [symbol] or [list]. To feed it into a messagebox with $1 or so inside, add a [list] in front. Hint: You can save yourself many headaches if you *always* put a [list] in front of any message box with dollarsigns! Now regarding the poly objects in rj library: [u_makepoly] is geared towards making midi-like instruments polyphonic. For granular approaches, it maybe is better to use the more simple [u_robinpoly]: It schedules the created objects in a round robin fashion and will accept any kind of trigger message, not only midi-like note/velocity pairs. If you need more control and want to access specific instances directly, there is no object for this in the rj library (yet), but Hans did some poly objects that allow this, or use the old nqpoly or so. Ciao -- Frank On Fri, Mar 11, 2011 at 09:08:05AM -0500, Peter Kirn wrote: On Fri, Mar 11, 2011 at 5:18 AM, Joe White white.j...@gmail.com wrote: P.s. We're in the process of creating some online documentation (similar to Max) for all the objects in the library. It'd be great to get some feedback once it's finished. Hi Joe, No, I found the problem -- the issue is that the u_dispatch abstraction doesn't work with symbols. If I'd looked closely at the help file, I would have noticed the prominent comment to that effect. ;) This actually turns out to be a fairly significant issue, because I'd ideally like to pass different arrays into the abstraction. Suggestions? Maybe there's another way to pass in the symbol for the array, like multiplexing as an argument on instantiating those patchers? Or maybe u_dispatch $0 symbol is fixable? (And yes, I'm happy to have a look at the documentation, or even contribute prior to it being completely finished ... editing is kinda one of the things I do, and it's the least I can do to give back to this amazing library!) Peter ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- Frank BarknechtDo You RjDj.me? _ __footils.org__ ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
Hi Peter, It sounds like you're missing an argument for the object. Argument 0: integer - Max Polyphony Argument 1: bool - Voice Stealing (0/1) Argument 2: symbol - Object name Argument 3: symbol - Unique ID For example: [u_makepoly 8 1 s_rhodey $0-inst] Hope that helps. P.s. We're in the process of creating some online documentation (similar to Max) for all the objects in the library. It'd be great to get some feedback once it's finished. Thanks, Joe On Mar 10, 2011, at 8:57 PM, Peter Kirn wrote: Thanks, everyone. So, patko, I gather poly alone should work -- I'd just multiplex messages, so long as there are two arguments? Hans, I gather the Rj version u_makepoly is now the newest. It's looking great, though I ran into one hitch - right now, with the abstraction I built it's giving me this error - Error: Bad arguments for message 'f' to object 'objectmaker' f $1 ... couldn't create Not sure what that means. (I mean, I know literally what it means, but not why.) Looking into it / open to someone pointing out anything obvious. ;) Peter ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
On Fri, Mar 11, 2011 at 5:18 AM, Joe White white.j...@gmail.com wrote: P.s. We're in the process of creating some online documentation (similar to Max) for all the objects in the library. It'd be great to get some feedback once it's finished. Hi Joe, No, I found the problem -- the issue is that the u_dispatch abstraction doesn't work with symbols. If I'd looked closely at the help file, I would have noticed the prominent comment to that effect. ;) This actually turns out to be a fairly significant issue, because I'd ideally like to pass different arrays into the abstraction. Suggestions? Maybe there's another way to pass in the symbol for the array, like multiplexing as an argument on instantiating those patchers? Or maybe u_dispatch $0 symbol is fixable? (And yes, I'm happy to have a look at the documentation, or even contribute prior to it being completely finished ... editing is kinda one of the things I do, and it's the least I can do to give back to this amazing library!) Peter ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
On Thu, 10 Mar 2011, Peter Kirn wrote: Hans, I gather the Rj version u_makepoly is now the newest. It's looking great, though I ran into one hitch - right now, with the abstraction I built it's giving me this error - Error: Bad arguments for message 'f' to object 'objectmaker' f $1 ... couldn't create Not sure what that means. (I mean, I know literally what it means, but not why.) Looking into it / open to someone pointing out anything obvious. ;) Well, how literally ? objectmaker is the collection of all object-creation methods (creators) of all classes. objectbox contents are considered to be messages to be sent to objectmaker. What is $1 substituting to ? is $1 happening to be standing for a symbol, by mistake ? ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
Well, how literally ? objectmaker is the collection of all object-creation methods (creators) of all classes. objectbox contents are considered to be messages to be sent to objectmaker. What is $1 substituting to ? is $1 happening to be standing for a symbol, by mistake ? See my other message - ideally, u_dispatcher, the helper abstraction that distributes arguments to patches after using u_makepoly to make them polyphonic, should be able to dispatch symbols. Right now, it appears limited to only lists and floats. I need to dispatch symbols in order to pass the array name for playback of the sound buffer (in this case for a granular synth, but the same would be potentially true for a sampled instrument). Unless there's a better way I'm missing. Peter ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
On Fri, Mar 11, 2011 at 09:53:18AM -0500, Peter Kirn wrote: See my other message - ideally, u_dispatcher, the helper abstraction that distributes arguments to patches after using u_makepoly to make them polyphonic, should be able to dispatch symbols. Right now, it appears limited to only lists and floats. I need to dispatch symbols in order to pass the array name for playback of the sound buffer (in this case for a granular synth, but the same would be potentially true for a sampled instrument). Unless there's a better way I'm missing. Hi Peter, One thing you could do is convert to a list before you send it (e.g. a message that starts with the word list) and then convert back to a symbol on the other side, I think with [list trim]. Cheers, Chris. --- http://mccormick.cx ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
Hi Peter, On Fri, Mar 11, 2011 at 11:38:01PM +0800, Chris McCormick wrote: On Fri, Mar 11, 2011 at 09:53:18AM -0500, Peter Kirn wrote: See my other message - ideally, u_dispatcher, the helper abstraction that distributes arguments to patches after using u_makepoly to make them polyphonic, should be able to dispatch symbols. Right now, it appears limited to only lists and floats. I need to dispatch symbols in order to pass the array name for playback of the sound buffer (in this case for a granular synth, but the same would be potentially true for a sampled instrument). Unless there's a better way I'm missing. One thing you could do is convert to a list before you send it (e.g. a message that starts with the word list) and then convert back to a symbol on the other side, I think with [list trim]. I think I have figured out the exact magical incantionation you need. You want a dispatcher called source to specify the grain table source. So on the outside you send in to the right inlet a message that looks like: [list source mytablename( On the inside you have a [u_dispatch $0 source] Then you hook the receiver up to the tabread~ with this lovely stack: [r $0-source] | [list trim] | [symbol] | [set $1( | [tabread~] I think that should do what you need it to. Cheers, Pd Potter. --- http://mccormick.cx ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
Hi Joe, Okay, I'm now certain that what's going wrong is entirely in the abstraction being made polyphonic - and it isn't, as I thought, u_dispatch with symbols or lists; that's fine. For instance, if I replace the example for u_makepoly, using s_buzz in place of s_rhodey, I get similar answers. So I must not entirely understand what prerequisite there is for the patch being made polyphonic. I tried to ape s_rhodey before, adding two inlets and one signal outlet (two signal outlets could be used for stereo, of course), and adding: 1. u_dispatch in order to pass additional arguments (beyond the two-float list processed as the note event, etc.) 2. u_loader to instantiate the patch itself But maybe I'm missing another step? Peter ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
Hi Peter, What abstraction are you trying to use? Frank would obviously be best person to answer your question as he made it. Can you attach the patch so I can have a look? Thanks, Joe On 11 March 2011 16:42, Peter Kirn pe...@createdigitalmedia.net wrote: Hi Joe, Okay, I'm now certain that what's going wrong is entirely in the abstraction being made polyphonic - and it isn't, as I thought, u_dispatch with symbols or lists; that's fine. For instance, if I replace the example for u_makepoly, using s_buzz in place of s_rhodey, I get similar answers. So I must not entirely understand what prerequisite there is for the patch being made polyphonic. I tried to ape s_rhodey before, adding two inlets and one signal outlet (two signal outlets could be used for stereo, of course), and adding: 1. u_dispatch in order to pass additional arguments (beyond the two-float list processed as the note event, etc.) 2. u_loader to instantiate the patch itself But maybe I'm missing another step? Peter ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
Hi Joe (and Frank), Here's as far as I got, including the referenced Rj patches. http://dl.dropbox.com/u/961695/graintests2.zip (Note - this uses, by permission, an adaptation of a patch built for Granita by Lorenzo Sutton; I'm hoping to use makepoly to help make this more flexible and polyphonic with him.) See grain.pd as the abstraction I'm trying to use and grain_poly as the file calling it. But you can try the same thing with s_buzz, for instance. Thanks to everyone for the help and advice. Peter On Fri, Mar 11, 2011 at 11:47 AM, Joe White white.j...@gmail.com wrote: Hi Peter, What abstraction are you trying to use? Frank would obviously be best person to answer your question as he made it. Can you attach the patch so I can have a look? Thanks, Joe On 11 March 2011 16:42, Peter Kirn pe...@createdigitalmedia.net wrote: Hi Joe, Okay, I'm now certain that what's going wrong is entirely in the abstraction being made polyphonic - and it isn't, as I thought, u_dispatch with symbols or lists; that's fine. For instance, if I replace the example for u_makepoly, using s_buzz in place of s_rhodey, I get similar answers. So I must not entirely understand what prerequisite there is for the patch being made polyphonic. I tried to ape s_rhodey before, adding two inlets and one signal outlet (two signal outlets could be used for stereo, of course), and adding: 1. u_dispatch in order to pass additional arguments (beyond the two-float list processed as the note event, etc.) 2. u_loader to instantiate the patch itself But maybe I'm missing another step? Peter ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
On Fri, 11 Mar 2011, patko wrote: For example if you need 7 bit words values like in MIDI standard, second value would be multiplied by 128 and then added to the first, the third by 16384 and added to the sum of the first and the second, etc ... for demultiplexing a [mod 128] would get the first value, the second with [mod 16384]-[/ 128]-[int], etc ... You can also do the second using : [mod 16384]-[div 128] or : [div 128]-[mod 128] or : [ 7]-[ 127] ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] Polyphony and granular synthesis, etc.
Hi everyone, I'm revisiting granular patches as I work on some examples for libpd. Any kind of granular synthesis is, of course, heavily dependent on polyphony. That raises the question of how to instantiate multiple copies of the same abstraction. The issue is, many non-external methods of doing this right now depend on poly, which in turn assumes MIDI parameters. I would prefer something that uses arbitrary parameter lists. We actually could now do this two ways: 1. We can instantiate multiple patches when opening them in libpd, maintaining independent references to each patch, as Peter Brinkmann recently described on his blog - http://bit.ly/egBGV2 2. Perhaps there's a way to do this using an abstraction? nqpoly, etc., I believe did this, but it seems it's not supported - and may not be the best approach? Thanks, Peter PETER KIRN | http://createdigitalmusic.com | ny, ny | pe...@createdigitalmedia.net ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
Peter, You are correct that [poly] imposes a MIDI-like structure in that it works with note/velocity pairs. I just wanted to point out that it does not clip those tuplets in a MIDI way; i.e., you can pass floats for both note and velocity to your polyphonic instrument. Your general point is still taken, that a more generalized, perhaps list-passing [poly] would be very useful. BTW, I've made a granular-based polyphonic synthesizer for Pd; it's here: http://www.pkstonemusic.com/polygrainsynth.html , along with it's older sibling a subtractive/fm hybrid polyphonic synthesizer: http://www.pkstonemusic.com/polywavesynth.html . Phil Stone On 3/10/11 9:25 AM, Peter Kirn wrote: Hi everyone, I'm revisiting granular patches as I work on some examples for libpd. Any kind of granular synthesis is, of course, heavily dependent on polyphony. That raises the question of how to instantiate multiple copies of the same abstraction. The issue is, many non-external methods of doing this right now depend on poly, which in turn assumes MIDI parameters. I would prefer something that uses arbitrary parameter lists. We actually could now do this two ways: 1. We can instantiate multiple patches when opening them in libpd, maintaining independent references to each patch, as Peter Brinkmann recently described on his blog - http://bit.ly/egBGV2 2. Perhaps there's a way to do this using an abstraction? nqpoly, etc., I believe did this, but it seems it's not supported - and may not be the best approach? Thanks, Peter PETER KIRN | http://createdigitalmusic.com | ny, ny | pe...@createdigitalmedia.net ___ 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] Polyphony and granular synthesis, etc.
it's still possible to use multiplexing for passing list of integers, like for RGB values of graphical objects or you can store parameter values in arrays and pass indexes through [poly] - Phil Stone pkst...@ucdavis.edu a écrit : Peter, You are correct that [poly] imposes a MIDI-like structure in that it works with note/velocity pairs. I just wanted to point out that it does not clip those tuplets in a MIDI way; i.e., you can pass floats for both note and velocity to your polyphonic instrument. Your general point is still taken, that a more generalized, perhaps list-passing [poly] would be very useful. it's still possible to use multiplexing for passing list of integers, like for RGB value of graphical objects BTW, I've made a granular-based polyphonic synthesizer for Pd; it's here: http://www.pkstonemusic.com/polygrainsynth.html , along with it's older sibling a subtractive/fm hybrid polyphonic synthesizer: http://www.pkstonemusic.com/polywavesynth.html . Phil Stone On 3/10/11 9:25 AM, Peter Kirn wrote: Hi everyone, I'm revisiting granular patches as I work on some examples for libpd. Any kind of granular synthesis is, of course, heavily dependent on polyphony. That raises the question of how to instantiate multiple copies of the same abstraction. The issue is, many non-external methods of doing this right now depend on poly, which in turn assumes MIDI parameters. I would prefer something that uses arbitrary parameter lists. We actually could now do this two ways: 1. We can instantiate multiple patches when opening them in libpd, maintaining independent references to each patch, as Peter Brinkmann recently described on his blog - http://bit.ly/egBGV2 2. Perhaps there's a way to do this using an abstraction? nqpoly, etc., I believe did this, but it seems it's not supported - and may not be the best approach? Thanks, Peter PETER KIRN | http://createdigitalmusic.com | ny, ny | pe...@createdigitalmedia.net ___ 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 -- Patrice Colet ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
If you want to work in the MIDI style, you probably want Frank Barknecht's [polypoly]. Its an abstraction so it should just work on libpd on any platform. And it works quite well. .hc On Mar 10, 2011, at 12:25 PM, Peter Kirn wrote: Hi everyone, I'm revisiting granular patches as I work on some examples for libpd. Any kind of granular synthesis is, of course, heavily dependent on polyphony. That raises the question of how to instantiate multiple copies of the same abstraction. The issue is, many non-external methods of doing this right now depend on poly, which in turn assumes MIDI parameters. I would prefer something that uses arbitrary parameter lists. We actually could now do this two ways: 1. We can instantiate multiple patches when opening them in libpd, maintaining independent references to each patch, as Peter Brinkmann recently described on his blog - http://bit.ly/egBGV2 2. Perhaps there's a way to do this using an abstraction? nqpoly, etc., I believe did this, but it seems it's not supported - and may not be the best approach? Thanks, Peter PETER KIRN | http://createdigitalmusic.com | ny, ny | pe...@createdigitalmedia.net ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list It is convenient to imagine a power beyond us because that means we don't have to examine our own lives., from The Idols of Environmentalism, by Curtis White ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
Thanks, everyone. So, patko, I gather poly alone should work -- I'd just multiplex messages, so long as there are two arguments? Hans, I gather the Rj version u_makepoly is now the newest. It's looking great, though I ran into one hitch - right now, with the abstraction I built it's giving me this error - Error: Bad arguments for message 'f' to object 'objectmaker' f $1 ... couldn't create Not sure what that means. (I mean, I know literally what it means, but not why.) Looking into it / open to someone pointing out anything obvious. ;) Peter ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
I don't use the rjdj libs so I wouldn't be the one to ask about them. Frank is the main author tho, so he probably keeps them up to date. .hc On Mar 10, 2011, at 8:57 PM, Peter Kirn wrote: Thanks, everyone. So, patko, I gather poly alone should work -- I'd just multiplex messages, so long as there are two arguments? Hans, I gather the Rj version u_makepoly is now the newest. It's looking great, though I ran into one hitch - right now, with the abstraction I built it's giving me this error - Error: Bad arguments for message 'f' to object 'objectmaker' f $1 ... couldn't create Not sure what that means. (I mean, I know literally what it means, but not why.) Looking into it / open to someone pointing out anything obvious. ;) Peter The arc of history bends towards justice. - Dr. Martin Luther King, Jr. ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
On 3/10/11 10:17 PM, Hans-Christoph Steiner wrote: I don't use the rjdj libs so I wouldn't be the one to ask about them. Frank is the main author tho, so he probably keeps them up to date. Never mind; this was my fault - found the glitch. I'm not correctly passing through the argument for the array. It's a symbol reference, but make_poly's message dispatching structure expects floats. I'm fixing it now. Anyway, because rjlib does all this dispatching for you, it's definitely the most sophisticated way to go - and it's still wrapping around poly. The question now is how easy it is, and how efficient it is, versus using libpd to handle the same tasks on the side of your code. So, whipping up a granular example is a good way to go, as it pushes the envelope a bit on both fronts. I'll report back if I can find something intelligent to say. ;) Peter ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] Polyphony and granular synthesis, etc.
Thanks, everyone. So, patko, I gather poly alone should work -- I'd just multiplex messages, so long as there are two arguments? Yes it's possible to pass an huge number to poly object, and then polypoly, that would be the result of multiplexed values. For example if you need 7 bit words values like in MIDI standard, second value would be multiplied by 128 and then added to the first, the third by 16384 and added to the sum of the first and the second, etc ... for demultiplexing a [mod 128] would get the first value, the second with [mod 16384]-[/ 128]-[int], etc ... I have attached this example with three values. Hans, I gather the Rj version u_makepoly is now the newest. It's looking great, though I ran into one hitch - right now, with the abstraction I built it's giving me this error - Error: Bad arguments for message 'f' to object 'objectmaker' f $1 ... couldn't create Not sure what that means. (I mean, I know literally what it means, but not why.) Looking into it / open to someone pointing out anything obvious. ;) Peter -- Patrice Colet #N canvas 1044 378 476 437 10; #X obj 274 109 t b f; #X obj 208 167 +; #X obj 208 192 t b f; #X obj 208 223 +; #X obj 131 86 * 16384; #X obj 208 87 * 128; #X floatatom 131 54 5 0 127 0 - - -; #X floatatom 208 54 5 0 127 0 - - -; #X floatatom 274 55 5 0 127 0 - - -; #X floatatom 208 252 10 0 0 0 - - -; #X obj 208 280 t a a a; #X obj 376 320 mod 128; #X floatatom 376 361 5 0 0 0 - - -; #X obj 226 339 / 128; #X obj 226 363 int; #X obj 135 340 int; #X obj 135 316 / 16384; #X floatatom 226 386 5 0 0 0 - - -; #X floatatom 135 363 5 0 0 0 - - -; #X obj 225 314 mod 16384; #X connect 0 0 1 0; #X connect 0 1 1 1; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 2 1 3 1; #X connect 3 0 9 0; #X connect 4 0 3 0; #X connect 5 0 1 0; #X connect 6 0 4 0; #X connect 7 0 5 0; #X connect 8 0 0 0; #X connect 9 0 10 0; #X connect 10 0 16 0; #X connect 10 1 19 0; #X connect 10 2 11 0; #X connect 11 0 12 0; #X connect 13 0 14 0; #X connect 14 0 17 0; #X connect 15 0 18 0; #X connect 16 0 15 0; #X connect 19 0 13 0; ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list