[PD] get the position of the mass in the same order than the creation with MSD

Jack jack at rybn.org
Thu Jul 8 19:19:46 CEST 2010


Better and faster with a [drip] and [spigot]s ! :)
Inteads of :

[t l l]
|     \
[list length]
|       \
[until]  \
|         \
[list append]
|         /
[list split 2]
|
[unpack f f]
++

Jack



Le jeudi 08 juillet 2010 à 19:16 +0200, cyrille henry a écrit :
> ok.
> could you try to remove the gemhead, and check that the slow part is Gem, not MSD?
> 
> do you use the double gemhead technics, or the repeat technic?
> c
> 
> 
> Le 08/07/2010 18:50, Jack a écrit :
> > Le jeudi 08 juillet 2010 à 17:03 +0200, cyrille henry a écrit :
> >> could you try to create the mobil masses, then the fixed masses, and use a list split 10000?
> > OK, done.
> > In fact, with 10000 mobiles masses and 10000 fixed masses, if i want
> > position of the mobiles masses, i need to use a list split with
> > 10000*2=20000 (for X and Y).
> >
> > So i have something like this :
> > [MSD2D]
> > |
> > [route massesPosL]
> > |
> > [list split 20000]
> > |
> > [t l l]
> > |     \
> > [list length]
> > |       \
> > [until]  \
> > |         \
> > [list append]
> > |         /
> > [list split 2]
> > |
> > [unpack f f]
> > |
> > etc. with gemhead
> >
> > Maybe i miss something, but even with a structure with 2500 mobiles
> > masses, this is slow.
> > Thanx for your help.
> > ++
> >
> > Jack
> >
> >
> >>
> >> couls you check what is the slow part of your patch :
> >> i bet msd use about 10% cpu, everything else is used by the use of the data.
> >> c
> >>
> >>
> >> Le 08/07/2010 14:53, Jack a écrit :
> >>> Hmm, in fact, this system is as slow as PMPD (even more !) even using
> >>> [get massesPos mamasse(.
> >>> The problem could come that i have 10000 times : mobile mass<->   link
> >>> <->   immovable mass ? Is it preferable to have this system managed by
> >>> PMPD instead of MSD ?
> >>> ++
> >>>
> >>> Jack
> >>>
> >>>
> >>>
> >>> Le jeudi 08 juillet 2010 à 13:31 +0200, Jack a écrit :
> >>>> Super ! It is working fine with [massesPosL(, a [until], a [list split
> >>>> 4] and a [unpack f f].
> >>>> Thanx a lot !
> >>>> ++
> >>>>
> >>>> Jack
> >>>>
> >>>>
> >>>>
> >>>> Le jeudi 08 juillet 2010 à 13:24 +0200, Jack a écrit :
> >>>>> Hello Cyrille,
> >>>>>
> >>>>> Thanks for your answer.
> >>>>> My system has 10000 mobiles masses, 10000 immovables masses and 10000
> >>>>> links.
> >>>>> I tried with [massesPosL( message. But the problem is i got the position
> >>>>> of the immovables masses. Maybe i can start to create the 10000
> >>>>> immovables masses, then the 10000 mobiles masses and split the list at
> >>>>> 10000 (the list is obtained with [massesPosL().
> >>>>> Or i can split 4 elements then split 2 elements.
> >>>>> I will try...
> >>>>> ++
> >>>>>
> >>>>> Jack
> >>>>>
> >>>>>
> >>>>> Le jeudi 08 juillet 2010 à 09:46 +0200, cyrille henry a écrit :
> >>>>>> did the massesPosL message could help you?
> >>>>>>
> >>>>>> otherwise, you have the solution to use frank trick :
> >>>>>> use the output of the get message to write in a table, and then read the table...
> >>>>>>
> >>>>>> c
> >>>>>>
> >>>>>> Le 08/07/2010 02:13, Jack a écrit :
> >>>>>>> Hello,
> >>>>>>>
> >>>>>>> I have a problem with MSD (exactly [MSD2D]). When i send [bang, get
> >>>>>>> massesPos mamasse( to [MSD2D], the output order of the positions of the
> >>>>>>> masses is not the same that the one which was given during the creation.
> >>>>>>>
> >>>>>>> I'm not sure to be clear, so it is better to see an example ;) (see the
> >>>>>>> attach patch) :
> >>>>>>>
> >>>>>>> If i create 3 masses in this order : [mass mamasse 1 100 0 1(, [mass
> >>>>>>> mamasse 1 100 2 3( and [mass mamasse 1 100 4 5(.
> >>>>>>> Then if i send [bang, get massesPos mamasse(, i can get from the first
> >>>>>>> outlet of [MSD2D] :
> >>>>>>> [massesPosId mamasse 2 3(
> >>>>>>> [massesPosId mamasse 0 1(
> >>>>>>> [massesPosId mamasse 4 5(
> >>>>>>> Or
> >>>>>>> [massesPosId mamasse 4 5(
> >>>>>>> [massesPosId mamasse 2 3(
> >>>>>>> [massesPosId mamasse 0 1(
> >>>>>>> Or
> >>>>>>> ...
> >>>>>>>
> >>>>>>> This is not really easy for me because i need to conserve this order :/
> >>>>>>> It would be better to always get :
> >>>>>>> [massesPosId mamasse 0 1(
> >>>>>>> [massesPosId mamasse 2 3(
> >>>>>>> [massesPosId mamasse 4 5(
> >>>>>>>
> >>>>>>> Is there a solution with MSD ?
> >>>>>>> With PMPD and dynamic patching, i have no problem, but it is too slow.
> >>>>>>> Number of mass>    10000.
> >>>>>>> ++
> >>>>>>>
> >>>>>>> Jack
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> Pd-list at iem.at mailing list
> >>>>>>> UNSUBSCRIBE and account-management ->    http://lists.puredata.info/listinfo/pd-list
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> Pd-list at iem.at mailing list
> >>>>> UNSUBSCRIBE and account-management ->   http://lists.puredata.info/listinfo/pd-list
> >>>>
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> Pd-list at iem.at mailing list
> >>>> UNSUBSCRIBE and account-management ->   http://lists.puredata.info/listinfo/pd-list
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Pd-list at iem.at mailing list
> >>> UNSUBSCRIBE and account-management ->   http://lists.puredata.info/listinfo/pd-list
> >
> >
> >
> > _______________________________________________
> > Pd-list at iem.at mailing list
> > UNSUBSCRIBE and account-management ->  http://lists.puredata.info/listinfo/pd-list





More information about the Pd-list mailing list