hi list
i'd like to open patches or dynamically create abstractions during a performance without having dropouts. that's why i'm trying to build a system that slowly loads a patch.
instead [; pd open patch-name.pd path( or [; pd-subpatchname obj 10 10 abstraction-name args( it reads the patch with [textfile] and creates the objects slowly line by line.
a problem was to rebuild the exact order of the subpatches. as far as i tested it works now. if a patch doesn't load correctly please let me know and send it to me.
to identify subpatches and place the objects in the right place it adds a number in front of the sub-patch name like this: [pd *id*-subpatchname]. -- just found out there is a msg [; pd-subpatchname rename newname(, after renaming the sub-patch to it's original names the is no visual update, besides that it works fine.
an other problem was with the array from Menu / Put / Array. it loads now even with content.
any comments are welcome.
eni
At 11:56 20.01.2007, Enrique Erne wrote:
hi list
i'd like to open patches or dynamically create abstractions during a performance without having dropouts. that's why i'm trying to build a system that slowly loads a patch.
instead [; pd open patch-name.pd path( or [; pd-subpatchname obj 10 10 abstraction-name args( it reads the patch with [textfile] and creates the objects slowly line by line.
urg. really? that's what i call WORKAROUNDISM. A DANGEROUS IDEOLOGY.
scnr ;-)
i'd like to open patches or dynamically create abstractions during a performance without having dropouts. that's why i'm trying to build a system that slowly loads a patch.
instead [; pd open patch-name.pd path( or [; pd-subpatchname obj 10 10 abstraction-name args( it reads the patch with [textfile] and creates the objects slowly line by line.
thomas grill's dyn~ external is supposed to load objects similarly (actually, i'm not up to date, if he only had the idea, or if he actually implemented this ...
but delayed object creation does only handle the first bottleneck. when more complicated dsp patches are constructed this way, the dsp chain needs to be rebuild whenever the dsp graph is changed, which causes audio dropouts if your patch has a certain complexity... so this solution is not really scalable ...
cheers ... tim
-- tim@klingt.org ICQ: 96771783 http://www.mokabar.tk
Just what the hell is the experimental tradition? Morton Feldman
Am 20.01.2007 um 13:33 schrieb Tim Blechmann:
i'd like to open patches or dynamically create abstractions during a performance without having dropouts. that's why i'm trying to build a system that slowly loads a patch.
instead [; pd open patch-name.pd path( or [; pd-subpatchname obj
10 10 abstraction-name args( it reads the patch with [textfile] and creates the objects slowly line by line.thomas grill's dyn~ external is supposed to load objects similarly (actually, i'm not up to date, if he only had the idea, or if he actually implemented this ...
i had the idea, but you know that it's actually impossible without
changing the pd core.
dyn~ currently uses pd functions which means that it can't avoid
clicks when loading.
Parsing and loading a pd patcher file line by line won't really help
when there are large abstractions in it... you will have to
recursively parse these too, otherwise pd will load them as large
single chunks.
greetings, Thomas
-- Thomas Grill http://grrrr.org
hello
personally, i think it is not worth that much effort. unfortunately creating a patch dynamically is NOT the same as 'executing' each line of the pd-file. this makes slow dynamic creation much more complicated than necessary. also, in order to follow your rule to do EVERYTHIN slowly, you would have to turn every instance of an abstraction into an subpatch and therefore you would need to parse all dollararguments and convert them to their appropriate values. probably there are many problems more, which don't come to mind right now.
this approach is like netpd started in the beginning, but it turned out, that this adds too much complexity.
anyway, i think that these kind of problems shouldn't be solved in the userspace, but in pd itself, since that is a general problem. it would be interesting, if there is ever a chance, that pd loads patches without dropouts or if this is impossible by design. there are other similar problems, that cause dropouts, which might be easier to solve like dropouts on full network buffer or writing and reading files.
roman
On Sat, 2007-01-20 at 11:56 +0100, Enrique Erne wrote:
hi list
i'd like to open patches or dynamically create abstractions during a performance without having dropouts. that's why i'm trying to build a system that slowly loads a patch.
instead [; pd open patch-name.pd path( or [; pd-subpatchname obj 10 10 abstraction-name args( it reads the patch with [textfile] and creates the objects slowly line by line.
a problem was to rebuild the exact order of the subpatches. as far as i tested it works now. if a patch doesn't load correctly please let me know and send it to me.
to identify subpatches and place the objects in the right place it adds a number in front of the sub-patch name like this: [pd *id*-subpatchname]. -- just found out there is a msg [; pd-subpatchname rename newname(, after renaming the sub-patch to it's original names the is no visual update, besides that it works fine.
an other problem was with the array from Menu / Put / Array. it loads now even with content.
any comments are welcome.
eni
___________________________________________________________ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de