Hi list,
I've got some updates to [canvasinfo], [pdinfo], and [classinfo] that I'll put in a demo build either tomorrow or the next day.
I also added a new data structure class with two creators: [drawimage] - draw an image on a canvas [drawsprite] - draw a sprite on a canvas
The [drawsprite] object takes the name of a directory containing an image sequence and loads the images into tcl/tk memory when the object gets created. A ds float field can then be associated with that image so that when you change its value it jumps to that image in the sequence. I used the code from [drawnumber], so you can even animate the sprite by clicking and dragging on the image.
Since all the images are preloaded into tcl/tk, animating them is fairly straightforward-- tk just clears the old image and copies the new one from one of the images it has in memory.
Of course the upshot is fairly obvious-- we can finally have ponies running around inside Pure Data patches.
E.g., thanks to this: http://friendshipismagic.smackjeeves.com/comics/1223051/female-pony-base-spr...
I can now do this: https://puredata.info/Members/jancsika/omgponies.webm/view
I just added the "realtime code selection" as an afterthought using [cnv] objects. However, it would be neat to be able to group code and highlight it programmatically as the data is flowing.
-Jonathan
Le 22/08/2013 07:13, Jonathan Wilkes a écrit :
Hi list,
I've got some updates to [canvasinfo], [pdinfo], and [classinfo] that I'll put in a demo build either tomorrow or the next day.
I also added a new data structure class with two creators: [drawimage] - draw an image on a canvas [drawsprite] - draw a sprite on a canvas
The [drawsprite] object takes the name of a directory containing an image sequence and loads the images into tcl/tk memory when the object gets created. A ds float field can then be associated with that image so that when you change its value it jumps to that image in the sequence. I used the code from [drawnumber], so you can even animate the sprite by clicking and dragging on the image.
Since all the images are preloaded into tcl/tk, animating them is fairly straightforward-- tk just clears the old image and copies the new one from one of the images it has in memory.
Of course the upshot is fairly obvious-- we can finally have ponies running around inside Pure Data patches.
E.g., thanks to this: http://friendshipismagic.smackjeeves.com/comics/1223051/female-pony-base-spr...
I can now do this: https://puredata.info/Members/jancsika/omgponies.webm/view
I just added the "realtime code selection" as an afterthought using [cnv] objects. However, it would be neat to be able to group code and highlight it programmatically as the data is flowing.
-Jonathan
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Very funny animation, we can now design platform games directly in a patch. ! ;) More seriously, it could replace the [#see] object from gridflow, interresting... ++
Jack
On 08/22/2013 03:53 AM, Jack wrote:
Le 22/08/2013 07:13, Jonathan Wilkes a écrit :
Hi list,
I've got some updates to [canvasinfo], [pdinfo], and [classinfo] that I'll put in a demo build either tomorrow or the next day.
I also added a new data structure class with two creators: [drawimage] - draw an image on a canvas [drawsprite] - draw a sprite on a canvas
The [drawsprite] object takes the name of a directory containing an image sequence and loads the images into tcl/tk memory when the object gets created. A ds float field can then be associated with that image so that when you change its value it jumps to that image in the sequence. I used the code from [drawnumber], so you can even animate the sprite by clicking and dragging on the image.
Since all the images are preloaded into tcl/tk, animating them is fairly straightforward-- tk just clears the old image and copies the new one from one of the images it has in memory.
Of course the upshot is fairly obvious-- we can finally have ponies running around inside Pure Data patches.
E.g., thanks to this: http://friendshipismagic.smackjeeves.com/comics/1223051/female-pony-base-spr...
I can now do this: https://puredata.info/Members/jancsika/omgponies.webm/view
I just added the "realtime code selection" as an afterthought using [cnv] objects. However, it would be neat to be able to group code and highlight it programmatically as the data is flowing.
-Jonathan
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management ->http://lists.puredata.info/listinfo/pd-list
Very funny animation, we can now design platform games directly in a patch. ! ;) More seriously, it could replace the [#see] object from gridflow, interresting... ++
As I understand it, [#see] is much more powerful because it's visualizing stuff created from gridflow computations on the fly. But it's probably also much slower for that same reason.
One drawback to [drawsprite] is if you wanted to abuse it to draw a large image sequence-- say a video clip-- you're going to use a ton of memory loading the images into wish's memory. And by default tcl/tk doesn't free that memory back to the OS. However it does free it up within tcl/tk when the corresponding [drawsprite] is deleted-- so if you delete it and undo a bunch of times it won't consume more memory than it did in the first place.
But for small sprites this isn't really an issue, and once the images are loaded it is very cheap to copy/cut the scalar images on a canvas.
-Jonathan
Jack
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Le 22/08/2013 16:36, Jonathan Wilkes a écrit :
On 08/22/2013 03:53 AM, Jack wrote:
Le 22/08/2013 07:13, Jonathan Wilkes a écrit :
Hi list,
I've got some updates to [canvasinfo], [pdinfo], and [classinfo] that I'll put in a demo build either tomorrow or the next day.
I also added a new data structure class with two creators: [drawimage] - draw an image on a canvas [drawsprite] - draw a sprite on a canvas
The [drawsprite] object takes the name of a directory containing an image sequence and loads the images into tcl/tk memory when the object gets created. A ds float field can then be associated with that image so that when you change its value it jumps to that image in the sequence. I used the code from [drawnumber], so you can even animate the sprite by clicking and dragging on the image.
Since all the images are preloaded into tcl/tk, animating them is fairly straightforward-- tk just clears the old image and copies the new one from one of the images it has in memory.
Of course the upshot is fairly obvious-- we can finally have ponies running around inside Pure Data patches.
E.g., thanks to this: http://friendshipismagic.smackjeeves.com/comics/1223051/female-pony-base-spr...
I can now do this: https://puredata.info/Members/jancsika/omgponies.webm/view
I just added the "realtime code selection" as an afterthought using [cnv] objects. However, it would be neat to be able to group code and highlight it programmatically as the data is flowing.
-Jonathan
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Very funny animation, we can now design platform games directly in a patch. ! ;) More seriously, it could replace the [#see] object from gridflow, interresting... ++
As I understand it, [#see] is much more powerful because it's visualizing stuff created from gridflow computations on the fly. But it's probably also much slower for that same reason.
One drawback to [drawsprite] is if you wanted to abuse it to draw a large image sequence-- say a video clip-- you're going to use a ton of memory loading the images into wish's memory. And by default tcl/tk doesn't free that memory back to the OS. However it does free it up within tcl/tk when the corresponding [drawsprite] is deleted-- so if you delete it and undo a bunch of times it won't consume more memory than it did in the first place.
But for small sprites this isn't really an issue, and once the images are loaded it is very cheap to copy/cut the scalar images on a canvas.
-Jonathan
Jack
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
Is it possible to add an argument to [drawsprite] to load the first X frame of the video ? Then, it will limit the memory used for large videos. ++
Jack
Here are some (rough) demo builds: http://puredata.info/search?SearchableText=pd+with+prefs
Just click on the pd-with-prefs file with your platform name in it.
For GNU/Linux:
OSX: Unzip and click the Pd app
Windows:
To run the demos:
in the main directory: omgponies demo (with sound)- anitest.pd continuous soft music video (with *crappy* wav-- sorry)- csm.pd arrays of celery - celery.pd
What is being demo'd:
an x/y coord
The prefs dialog may be borked on OSX and Windows, so please ignore.
For the [*info] objects, I'll be trying to stabilize the interface in the next few days.
These changes constitute about three days of work. As always, beans and rice appreciated! You can donate here: https://jwilkes.nfshost.com/donations.php
In the next few days I'm going to focus on stabalizing the [*info] interface.
Best, Jonathan
On 08/22/2013 02:10 PM, João Pais wrote:
Is it possible to add an argument to [drawsprite] to load the first X frame of the video ? Then, it will limit the memory used for large videos. ++
or just a portion of the video, in that case.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On 08/22/2013 10:46 AM, Jack wrote:
Le 22/08/2013 16:36, Jonathan Wilkes a écrit :
On 08/22/2013 03:53 AM, Jack wrote:
Le 22/08/2013 07:13, Jonathan Wilkes a écrit :
Hi list,
I've got some updates to [canvasinfo], [pdinfo], and [classinfo] that I'll put in a demo build either tomorrow or the next day.
I also added a new data structure class with two creators: [drawimage] - draw an image on a canvas [drawsprite] - draw a sprite on a canvas
The [drawsprite] object takes the name of a directory containing an image sequence and loads the images into tcl/tk memory when the object gets created.
A ds float field can then be associated with that image so that when you change its value it jumps to that image in the sequence. I used the code from [drawnumber], so you can even animate the sprite by clicking and dragging on the image.Since all the images are preloaded into tcl/tk, animating them is fairly straightforward-- tk just clears the old image and copies the new one from one of the images it has in memory.
Of course the upshot is fairly obvious-- we can finally have ponies running around inside Pure Data patches.
E.g., thanks to this: http://friendshipismagic.smackjeeves.com/comics/1223051/female-pony-base-spr...
I can now do this: https://puredata.info/Members/jancsika/omgponies.webm/view
I just added the "realtime code selection" as an afterthought using [cnv] objects. However, it would be neat to be able to group code and highlight it programmatically as the data is flowing.
-Jonathan
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management ->http://lists.puredata.info/listinfo/pd-list
Very funny animation, we can now design platform games directly in a patch. ! ;) More seriously, it could replace the [#see] object from gridflow, interresting... ++
As I understand it, [#see] is much more powerful because it's visualizing stuff created from gridflow computations on the fly. But it's probably also much slower for that same reason.
One drawback to [drawsprite] is if you wanted to abuse it to draw a large image sequence-- say a video clip-- you're going to use a ton of memory loading the images into wish's memory. And by default tcl/tk doesn't free that memory back to the OS. However it does free it up within tcl/tk when the corresponding [drawsprite] is deleted-- so if you delete it and undo a bunch of times it won't consume more memory than it did in the first place.
But for small sprites this isn't really an issue, and once the images are loaded it is very cheap to copy/cut the scalar images on a canvas.
-Jonathan
Jack
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
Is it possible to add an argument to [drawsprite] to load the first X frame of the video ? Then, it will limit the memory used for large videos. ++
Right now it just scoops up all valid gifs (and pngs if you have tkpng lib) in the directory you specify.
I guess the ds "quanta" syntax could be used for this. If ds member field "a" is associated with the sequence number for a sprite, maybe a(0:99)(blah:blah) could just load the first 100 images inside that dir. (The blah:blah part would control how many pixels the sprite can be click-dragged, which isn't that import here.)
-Jonathan
Jack
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
that is impressive. is the new version already somewhere to be tested?
Hi list,
I've got some updates to [canvasinfo], [pdinfo], and [classinfo] that I'll put in a demo build either tomorrow or the next >day.
I also added a new data structure class with two creators: [drawimage] - draw an image on a canvas [drawsprite] - draw a sprite on a canvas
The [drawsprite] object takes the name of a directory containing an image sequence and loads the images into tcl/tk memory when the object gets created. A ds float field can then be associated with that image so that when you change its value it jumps to that image in the sequence. I used the code from [drawnumber], so you can even animate the sprite by clicking and dragging on the image.
Since all the images are preloaded into tcl/tk, animating them is fairly straightforward-- tk just clears the old image and copies the new one from one of the images it has in memory.
Of course the upshot is fairly obvious-- we can finally have ponies running around inside Pure Data patches.
E.g., thanks to this: http://friendshipismagic.smackjeeves.com/comics/1223051/female-pony-base-spr...
I can now do this: https://puredata.info/Members/jancsika/omgponies.webm/view
I just added the "realtime code selection" as an afterthought using [cnv] objects. However, it would be neat to be able to group code and highlight it programmatically as the data is flowing.
-Jonathan
On 08/22/2013 09:06 AM, João Pais wrote:
that is impressive. is the new version already somewhere to be tested?
I'll try to post a build later today, or tomorrow.
-Jonathan
Hi list, I've got some updates to [canvasinfo], [pdinfo], and [classinfo] that I'll put in a demo build either tomorrow or the next day. I also added a new data structure class with two creators: [drawimage] - draw an image on a canvas [drawsprite] - draw a sprite on a canvas The [drawsprite] object takes the name of a directory containing an image sequence and loads the images into tcl/tk memory when the object gets created. A ds float field can then be associated with that image so that when you change its value it jumps to that image in the sequence. I used the code from [drawnumber], so you can even animate the sprite by clicking and dragging on the image. Since all the images are preloaded into tcl/tk, animating them is fairly straightforward-- tk just clears the old image and copies the new one from one of the images it has in memory. Of course the upshot is fairly obvious-- we can finally have ponies running around inside Pure Data patches. E.g., thanks to this: http://friendshipismagic.smackjeeves.com/comics/1223051/female-pony-base-sprites/ I can now do this: https://puredata.info/Members/jancsika/omgponies.webm/view I just added the "realtime code selection" as an afterthought using [cnv] objects. However, it would be neat to be able to group code and highlight it programmatically as the data is flowing. -Jonathan