Hello, and happy 2009, I don't know about how to connect objects without using the left click, if there is no way to do this (without using text editor), this is a *feature request*, for painfull fingers and for saving left button's life on cheap laptops.
Thanks for reading this.
A partial answer - in 0.42 (available in a test version), control-1, etc, which create new objects, will automatically connect from the currently selected object if there is one. (It does nothing with multiple selections though...)
I hope RSN to add keyboard accelerators for moving the selection around, as was already done years ago by Mathieu Bouchard (written up in the first Pd convention proceedings). I'm going slowly because I want to do as much as possible with only a small number of available keys.
cheers Miller
On Fri, Jan 02, 2009 at 01:23:21PM +0100, Patrice Colet wrote:
Hello, and happy 2009, I don't know about how to connect objects without using the left click, if there is no way to do this (without using text editor), this is a *feature request*, for painfull fingers and for saving left button's life on cheap laptops.
Thanks for reading this.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hallo, Miller Puckette hat gesagt: // Miller Puckette wrote:
A partial answer - in 0.42 (available in a test version), control-1, etc, which create new objects, will automatically connect from the currently selected object if there is one. (It does nothing with multiple selections though...)
Ha, that's cute, though it needs some getting used to, but I guess that will come quickly.
I just tried it with creating a [f ], then press Ctl-1 and type "mod 16", press C-1 again and type "+ 1", neat.
Frank
hello,
I have a small request about pd-vanilla. Is it possible to replace the normal popup window (when a file/window is closed) :
Discard changes to this window?? Yes No
by
Save changed file? Yes No
I use Pd a lot for teaching and lots of people get confused by this question, even people that have been using Pd for a long time... It's very unintuitive I think.
Hans r
At 18:23 2/01/2009, you wrote:
Hallo, Miller Puckette hat gesagt: // Miller Puckette wrote:
A partial answer - in 0.42 (available in a test version), control-1, etc, which create new objects, will automatically connect from the currently selected object if there is one. (It does nothing with multiple selections though...)
Ha, that's cute, though it needs some getting used to, but I guess that will come quickly.
I just tried it with creating a [f ], then press Ctl-1 and type "mod 16", press C-1 again and type "+ 1", neat.
Ciao
Frank
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
Ha, that's cute, though it needs some getting used to, but I guess that will come quickly.
I just tried it with creating a [f ], then press Ctl-1 and type "mod 16", press C-1 again and type "+ 1", neat.
After my initial enthusiasm has faded I must also say, that certain patching habits now fail miserably.
I'm used to moving the mouse in advance to where I want to put the next object for objects that should not be connected to the previously created object.
Example: Lets say I want to create a row of number atoms like this:
[0\ [0\ [0\ [0\ [0\ [0\ [0\
Traditionally I'd do a sweeping movement with the mouse going left to right and sometimes press "Ctl-3" and click.
The new auto-connections make this very hard now.
I guess I would prefer auto-connections and auto-alignments happen afterwards, e.g. I create these
[0\
[mtof]
[phasor~]
[cos~]
then select the four objects, say the magic words and then it would transform into this:
[0
|
[mtof]
|
[phasor~]
|
[cos~]
Frank
I also vote for the magic word that connect all selected objects. This is a feature of the max toolbox (in max =) and I think that it would be amazing to have it as a native pd feature!
Cheers,
_yvan
Perhaps it would be easier if there were a "select none" (ctrl-shift-A) accelerator. I almost put that in but am waiting to make sure I can't think of a more urgently-needed binding for that key combination.
cheers Miller
On Sat, Jan 03, 2009 at 04:32:54PM +0100, Frank Barknecht wrote:
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
Ha, that's cute, though it needs some getting used to, but I guess that will come quickly.
I just tried it with creating a [f ], then press Ctl-1 and type "mod 16", press C-1 again and type "+ 1", neat.
After my initial enthusiasm has faded I must also say, that certain patching habits now fail miserably.
I'm used to moving the mouse in advance to where I want to put the next object for objects that should not be connected to the previously created object.
Example: Lets say I want to create a row of number atoms like this:
[0\ [0\ [0\ [0\ [0\ [0\ [0\
Traditionally I'd do a sweeping movement with the mouse going left to right and sometimes press "Ctl-3" and click.
The new auto-connections make this very hard now.
I guess I would prefer auto-connections and auto-alignments happen afterwards, e.g. I create these
[0\
[mtof]
[phasor~]
[cos~]
then select the four objects, say the magic words and then it would transform into this:
[0
| [mtof] | [phasor~] | [cos~]Ciao
Frank
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Frank Barknecht wrote:
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
Ha, that's cute, though it needs some getting used to, but I guess that will come quickly.
I just tried it with creating a [f ], then press Ctl-1 and type "mod 16", press C-1 again and type "+ 1", neat.
After my initial enthusiasm has faded I must also say, that certain patching habits now fail miserably.
I'm used to moving the mouse in advance to where I want to put the next object for objects that should not be connected to the previously created object.
Example: Lets say I want to create a row of number atoms like this:
[0\ [0\ [0\ [0\ [0\ [0\ [0\
this should be easy: if the mouse moved between the last ctl-3 and the following, then place the object at the mouse position without connection, if the mouse did not move, then assume the user is in keyboard patching mode and place the new object below the old one and connect it. I also thought about using ctl+shift+number to create a connected object. don't know if that combination is used by an OS? or use ctl-k to toggle between keyboard only mode and mouse+keyboard mode. on my mac I would like to use ctl-home and ctl-end to cycle through the possibilites of connecting two objects. don't know about other OS.
plus the other features below (select multiple objects and align them or connect them) would be nice, too.
cheers, marius.
Traditionally I'd do a sweeping movement with the mouse going left to right and sometimes press "Ctl-3" and click.
The new auto-connections make this very hard now.
I guess I would prefer auto-connections and auto-alignments happen afterwards, e.g. I create these
[0\
[mtof]
[phasor~]
[cos~]
then select the four objects, say the magic words and then it would transform into this:
[0
| [mtof] | [phasor~] | [cos~]Ciao
except what if you move the mouse and then decide you want to make a connection to a new object? We'd need a way to return to the earlier state.
shift-numerals might be a problem because in many places the numerals already require the shift key.
cheers Miller
On Sat, Jan 03, 2009 at 11:26:12PM +0100, marius schebella wrote:
Frank Barknecht wrote:
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
Ha, that's cute, though it needs some getting used to, but I guess that will come quickly.
I just tried it with creating a [f ], then press Ctl-1 and type "mod 16", press C-1 again and type "+ 1", neat.
After my initial enthusiasm has faded I must also say, that certain patching habits now fail miserably.
I'm used to moving the mouse in advance to where I want to put the next object for objects that should not be connected to the previously created object.
Example: Lets say I want to create a row of number atoms like this:
[0\ [0\ [0\ [0\ [0\ [0\ [0\
this should be easy: if the mouse moved between the last ctl-3 and the following, then place the object at the mouse position without connection, if the mouse did not move, then assume the user is in keyboard patching mode and place the new object below the old one and connect it. I also thought about using ctl+shift+number to create a connected object. don't know if that combination is used by an OS? or use ctl-k to toggle between keyboard only mode and mouse+keyboard mode. on my mac I would like to use ctl-home and ctl-end to cycle through the possibilites of connecting two objects. don't know about other OS.
plus the other features below (select multiple objects and align them or connect them) would be nice, too.
cheers, marius.
Traditionally I'd do a sweeping movement with the mouse going left to right and sometimes press "Ctl-3" and click.
The new auto-connections make this very hard now.
I guess I would prefer auto-connections and auto-alignments happen afterwards, e.g. I create these
[0\
[mtof]
[phasor~]
[cos~]
then select the four objects, say the magic words and then it would transform into this:
[0
| [mtof] | [phasor~] | [cos~]Ciao
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
except what if you move the mouse and then decide you want to make a connection to a new object? We'd need a way to return to the earlier state.
shift-numerals might be a problem because in many places the numerals already require the shift key.
Hello,
Yes, shift-numerals would be a problem on, say, Belgian or French keyboards, because to get the effect of ctrl+3, you actually have to do ctrl+shift+3 in reality.
As for ctrl+shift+A to deselect all: what about having just ctrl+A toggle between 'select all' and 'select none'. It is done like this in for example Blender, only without ctrl, where I found it pretty handy once I got used to it. You could just think of it as doing 'ctrl+AA' to 'deselect all'.
on a side note: I came across a DAW software called Traverso, which I think makes quite interesting use of keyboard+mouse shortcuts. (see page 15 in its manual at: http://traverso-daw.org/UserManual.html )
Tim
cheers Miller
On Sat, Jan 03, 2009 at 11:26:12PM +0100, marius schebella wrote:
Frank Barknecht wrote:
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
Ha, that's cute, though it needs some getting used to, but I guess
that
will come quickly.
I just tried it with creating a [f ], then press Ctl-1 and type "mod
16",
press C-1 again and type "+ 1", neat.
After my initial enthusiasm has faded I must also say, that certain patching habits now fail miserably.
I'm used to moving the mouse in advance to where I want to put the
next
object for objects that should not be connected to the previously created object.
Example: Lets say I want to create a row of number atoms like this:
[0\ [0\ [0\ [0\ [0\ [0\ [0\
this should be easy: if the mouse moved between the last ctl-3 and the following, then place the object at the mouse position without connection, if the mouse did not move, then assume the user is in keyboard patching mode and place the new object below the old one and connect it. I also thought about using ctl+shift+number to create a connected object. don't know if that combination is used by an OS? or use ctl-k to toggle between keyboard only mode and mouse+keyboard mode. on my mac I would like to use ctl-home and ctl-end to cycle through the possibilites of connecting two objects. don't know about other OS.
plus the other features below (select multiple objects and align them or connect them) would be nice, too.
cheers, marius.
Traditionally I'd do a sweeping movement with the mouse going left to
right
and sometimes press "Ctl-3" and click.
The new auto-connections make this very hard now.
I guess I would prefer auto-connections and auto-alignments happen afterwards, e.g. I create these
[0\
[mtof]
[phasor~]
[cos~]
then select the four objects, say the magic words and then it would transform into this:
[0
| [mtof] | [phasor~] | [cos~]Ciao
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
Hi Miller,
I'm really digging the direction this is going. If I could just chip my 2c into the fray: I have to agree with Frank that being able to select a tower of object boxes and then click a key combination to connect them by patch cords would be useful, as would a keystroke to auto-space things horizontally or vertically. I also agree with Tim that Blender's same-key select/deselect toggle feels very natural. I would vote for ctrl-A both selecting all and deselecting all.
If I recall, there was a neat video posted ages back, probably by Chun or Matju, which illustrated some of the cool UI stuff possible in Max with some plugin. Sorry to be so vague, I can't remember the link. Maybe one of those guys could post it again?
Best,
Chris.
On Sat, Jan 03, 2009 at 03:07:24PM -0800, Miller Puckette wrote:
except what if you move the mouse and then decide you want to make a connection to a new object? We'd need a way to return to the earlier state.
shift-numerals might be a problem because in many places the numerals already require the shift key.
cheers Miller
On Sat, Jan 03, 2009 at 11:26:12PM +0100, marius schebella wrote:
Frank Barknecht wrote:
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
Ha, that's cute, though it needs some getting used to, but I guess that will come quickly.
I just tried it with creating a [f ], then press Ctl-1 and type "mod 16", press C-1 again and type "+ 1", neat.
After my initial enthusiasm has faded I must also say, that certain patching habits now fail miserably.
I'm used to moving the mouse in advance to where I want to put the next object for objects that should not be connected to the previously created object.
Example: Lets say I want to create a row of number atoms like this:
[0\ [0\ [0\ [0\ [0\ [0\ [0\
this should be easy: if the mouse moved between the last ctl-3 and the following, then place the object at the mouse position without connection, if the mouse did not move, then assume the user is in keyboard patching mode and place the new object below the old one and connect it. I also thought about using ctl+shift+number to create a connected object. don't know if that combination is used by an OS? or use ctl-k to toggle between keyboard only mode and mouse+keyboard mode. on my mac I would like to use ctl-home and ctl-end to cycle through the possibilites of connecting two objects. don't know about other OS.
plus the other features below (select multiple objects and align them or connect them) would be nice, too.
cheers, marius.
Traditionally I'd do a sweeping movement with the mouse going left to right and sometimes press "Ctl-3" and click.
The new auto-connections make this very hard now.
I guess I would prefer auto-connections and auto-alignments happen afterwards, e.g. I create these
[0\
[mtof]
[phasor~]
[cos~]
then select the four objects, say the magic words and then it would transform into this:
[0
| [mtof] | [phasor~] | [cos~]Ciao
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hallo, Chris McCormick hat gesagt: // Chris McCormick wrote:
I'm really digging the direction this is going. If I could just chip my 2c into the fray: I have to agree with Frank that being able to select a tower of object boxes and then click a key combination to connect them by patch cords would be useful, as would a keystroke to auto-space things horizontally or vertically. I also agree with Tim that Blender's same-key select/deselect toggle feels very natural. I would vote for ctrl-A both selecting all and deselecting all.
Here's Chun and Matju's pd~conv paper: "Keyboard-only Interface For Pure Data" http://artengine.ca/~catalogue-pd/18-Lee-Bouchard.pdf
In general I think, Pd should not try to outsmart the user. Finding the most "stupid" solutions to problems has been a good guideline in the past IMO.
Autoplacement and autoconnections maybe should be more stupid in this regard: Instead of trying to make them figure out on their own when they should be applied, they could be explict operations that a user has to start actively. This transfers the obligation to be smart from the program to the user, who in general is smarter than software anyway. Personally I don't like software that tries to be smarter than me, that's why I don't run OS-X or Windows. ;)
So instead of doing auto-placements and connections as default, user-initiated operations should be preferred, i.e. a better "Tidy up" and a "Connect all selected objects" as proposed.
Additionally placing objects is such a natural operation for mouse actions and that overriding the mouse actions with an automatism should be approached very carefully.
That's just my opinion of course and open to debate.
Frank
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
Here's Chun and Matju's pd~conv paper: "Keyboard-only Interface For Pure Data" http://artengine.ca/~catalogue-pd/18-Lee-Bouchard.pdf
And here's how DesireData has keyboard navigation implemented: http://code.goto10.org/projects/desiredata/wiki/UserDocs
Chun did a lot of good research regarding keyboard navigation by also discussing possible approaches with a lot of Pd users. I fondly remember sitting with him on the roof of a London squat and talking about keyboard navigation a whole warm summer night. ;)
Frank
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
And here's how DesireData has keyboard navigation implemented: http://code.goto10.org/projects/desiredata/wiki/UserDocs
Oh, and to continue replying to myself: Here's "14. Automatic object chaining" in DD:
14.1 this feature provides the ability to (vertically) connect objects together automatically
14.2 To chain objects together, first select a object to be used as the start of the chain
14.3 Then press Ctrl+6, a empty object box will appear and aligned vertically under the selected object.
14.4 Once you hit enter and the new object is created, its hot inlet is automatically connected to the hot outlet of the object above it.
14.5 Furthermore, the newly created object is now selected to allow the chaining process to repeat
Note the use of Ctl-6 instead of Ctl-1 to chain new objects. I like that *a lot*. It could be extended to Ctl-7, Ctl-8 and Ctl-9 for messages, numbers, and symbols. No need for an additional Shift-modifier and fully compatible to the old behaviour.
Frank
On Sun, 4 Jan 2009, Frank Barknecht wrote:
Note the use of Ctl-6 instead of Ctl-1 to chain new objects. I like that *a lot*. It could be extended to Ctl-7, Ctl-8 and Ctl-9 for messages, numbers, and symbols. No need for an additional Shift-modifier and fully compatible to the old behaviour.
The problem I see with Ctrl+6 is that when extending it to 2,3,4 you need 7,8,9, which is taking away a lot of keys, and then it does not deal with the fact that few people want to deal with typing [nbx] or [hsl] or [hradio] every time they use the auto-connect, while they are used to doing the same non-auto-connect things using special Ctrl+Shift commands.
Another idea I just had, is to have Ctrl+Return do like Return does (finish the object), plus creating a dangling wire that will auto-connect to whichever object is created next. The Escape key could delete the dangling wire.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
On Sun, 2009-01-04 at 15:50 -0500, Mathieu Bouchard wrote:
Another idea I just had, is to have Ctrl+Return do like Return does (finish the object), plus creating a dangling wire that will auto-connect to whichever object is created next. The Escape key could delete the dangling wire.
I *much* prefer this to the idea of having a shortcut per object type (ctrl-6 ctrl-7 or whatever). I keeps things generic and allows for the addition of extra object types in the future.
You gain the maximum added functionality for the least additional learning/shortcuts: Keep It Simple Stupid!
Furthermore, you could also extend Ctrl+Return, making it the shortcut for connecting already instantiated objects. I.e if we select (with the mouse):
|1 ( |2 ( |3 (
[f ]
... and hit Ctrl+Return we get the outlets of the message boxes connected to the left inlet of [f ].
Jamie
Hi Mathieu! Hi Jamie! Hi Andy! Hi List!
Another idea I just had, is to have Ctrl+Return do like Return does (finish the object), plus creating a dangling wire that will auto-connect to whichever object is created next. The Escape key could delete the dangling wire.
I think the ctrl + 1 (2, 3...) shortcut not so good way. And I don't see any reason not to make inserting objects (or text in objects) more intuitive, usable, ergonomic. Not only this is an unpleasant two-fingered combination, but also you have to be careful both with typing and clicking at one time. How about using F-keys (if any)? or num block?
Enter functioning when typing text into object - seriously, I make lots of mistakes when typing. Also selecting with mouse is weird for me. I never know in the first moment if I have to click and drag later or I can just drag straight away. I'm not an usability guru (yet), but something with keyboard shortcuts is not OK. Mouse selecting is not such major thing. In other (non-visual) languages there is rarely such convention, and what-thing-does is a result of syntax, not the font colour. So maybe a kind of auto-recognition? or a "toolbox" to drag'n'drop or click what you need? eg. under RMB or mouse wheel (but there is no mouse wheel in some laptops, even produced now, like trackpoint-only ThinkPad X series or with TouchPad only, without special drivers and time to set it up when working under Linux) Just an observation plus an idea. Making paths with touchpad is slow torture right now. Penance.
How about coloring inlet/outlet on hover? Sometimes it is not obvious, which one is selected (short name, many inlets/outlets) And automatically creating the wire from inlet when creating object - one can always click an empty space to get rid of it :)
... and hit Ctrl+Return we get the outlets of the message boxes connected to the left inlet of [f ].
Nice idea. I just don't know how it would be connecting this things. What connect to what. So maybe this schema:
whatever) on target object (or particular object's inlet). The wires should be visualized when pressing the key, I think. And you have your connections. Hope you get it.
And something else: Is there a possibility to have this things configurable with menu (not in config files or when compiling): Font (typeface/size) Colours Keyboard shortcuts Rounded corners :D
Also the menu to open a path under Linux is very not OK. Just try to use it. It always opens at user's home dir and always shows hundreds of hidden objects. Esp. when you have lot of software or desktop envs. And every time I'm punished with clicking, finding, clicking, finding...
In fact I like oldschool, CPU-efficient style of PD's GUI, just not in any aspect/moment. There are just some strange actions making me dizzy and tired very fast. 90% of GUI is a gorgeous temptation. 10% is a penance.
Put-Object->Clipboard (I guess this is like Volker describes. It's does not persist when the application is closed. It is very easy to copy things to the clipboard just using CTRL-C which is aliased to "copy to clipboard slot 1", but there are also other slots. Not sure how to manage these elegantly, but maybe you only need 10 quick access slots.)
Isn't it an idea of trweakable keyboard shortcuts?
Cheers, Luke
BTW - the rounded corners - there is a 100% vector-based desktop for Linux, it's Twindy and I've just removed it :D
Lukasz Jastrzebski wrote:
How about using F-keys (if any)? or num block?
i don't have a numblock here. and i'm not sure about Fn-keys either (they are keys seldomly used and thus in non-optimal places (typing-wise); i'm fine with using Fn-keys for sporadic messages like e.g. turn audio on/off, but in an editing cycle i would rather stay on the keyboard.
mfga.sdr IOhannes
On Mon, 5 Jan 2009, Jamie Bullock wrote:
Keep It Simple Stupid!
Oh, everybody agrees on this, they just don't agree on what simplicity is and how to achieve it.
Furthermore, you could also extend Ctrl+Return, making it the shortcut for connecting already instantiated objects. I.e if we select (with the mouse):
My idea was that Ctrl+Return would be a key binding of a box being edited, not of the canvas, so you wouldn't be able to just select objects and press Ctrl+Return. I suppose, Ctrl+Return could also be bound to the canvas, but in that case, the origin of the choice of Ctrl+Return is meaningless (it's supposed to be a variation on the Return binding of a box being edited)
... and hit Ctrl+Return we get the outlets of the message boxes connected to the left inlet of [f ].
But Chun already did this in a different way which also works for connecting to several objects at once and allows to choose the outlet number and inlet number.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
Haven't all of the patching desires currently under discussion been implemented in desiredata?
I'm looking at: http://code.goto10.org/projects/desiredata/wiki/UserDocs
The only thing I don't see is the ability to have msg boxes as part of automatic object chaining.
I'd be interested to hear from people who have used dd, how effective they thought any/all of these features were.
As for the new object chaining in pd, it seems to cut my patching time in half for small, simple patches (mostly because I don't spend any time straightening wires).
-Jonathan
--- On Tue, 1/6/09, Mathieu Bouchard matju@artengine.ca wrote:
From: Mathieu Bouchard matju@artengine.ca Subject: Re: [PD] left mouse click abuse To: "Jamie Bullock" jamie@postlude.co.uk Cc: pd-list@iem.at Date: Tuesday, January 6, 2009, 12:24 AM On Mon, 5 Jan 2009, Jamie Bullock wrote:
Keep It Simple Stupid!
Oh, everybody agrees on this, they just don't agree on what simplicity is and how to achieve it.
Furthermore, you could also extend Ctrl+Return, making
it the shortcut
for connecting already instantiated objects. I.e if we
select (with the
mouse):
My idea was that Ctrl+Return would be a key binding of a box being edited, not of the canvas, so you wouldn't be able to just select objects and press Ctrl+Return. I suppose, Ctrl+Return could also be bound to the canvas, but in that case, the origin of the choice of Ctrl+Return is meaningless (it's supposed to be a variation on the Return binding of a box being edited)
... and hit Ctrl+Return we get the outlets of the
message boxes
connected to the left inlet of [f ].
But Chun already did this in a different way which also works for connecting to several objects at once and allows to choose the outlet number and inlet number.
_____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec_______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Sun, Jan 04, 2009 at 01:34:48PM +0100, Frank Barknecht wrote:
Hallo, Chris McCormick hat gesagt: // Chris McCormick wrote:
I'm really digging the direction this is going. If I could just chip my 2c into the fray: I have to agree with Frank that being able to select a tower of object boxes and then click a key combination to connect them by patch cords would be useful, as would a keystroke to auto-space things horizontally or vertically. I also agree with Tim that Blender's same-key select/deselect toggle feels very natural. I would vote for ctrl-A both selecting all and deselecting all.
So instead of doing auto-placements and connections as default, user-initiated operations should be preferred, i.e. a better "Tidy up" and a "Connect all selected objects" as proposed.
Totally agree, and I also advocate using keystrokes/menu options to initiate these operations. It should always be possible to use Pd to manually lay things out just like you can now.
Chris.
Chun made an inspiring presentation at FAVE2006. A feature that stays with me was a 'object mode' where an object could be "active for patching", son whenever it passed over the path of a cord the object was inserted (the cord was patched to the object inlet and outlet)
I cant remember if it was in response to a question, or someone suggested as a solution, but in order to choose which inlet the cord connected to you just moved the object left or right more. I can't recall how the outlet assignment was handled.
Anyway, it seemed jolly good. Certainly a feature of Desire Data I have long wished could be brought to vanilla Pure Data.
On Sun, 4 Jan 2009 22:55:58 +0900 Chris McCormick chris@mccormick.cx wrote:
On Sun, Jan 04, 2009 at 01:34:48PM +0100, Frank Barknecht wrote:
Hallo, Chris McCormick hat gesagt: // Chris McCormick wrote:
I'm really digging the direction this is going. If I could just chip my 2c into the fray: I have to agree with Frank that being able to select a tower of object boxes and then click a key combination to connect them by patch cords would be useful, as would a keystroke to auto-space things horizontally or vertically. I also agree with Tim that Blender's same-key select/deselect toggle feels very natural. I would vote for ctrl-A both selecting all and deselecting all.
So instead of doing auto-placements and connections as default, user-initiated operations should be preferred, i.e. a better "Tidy up" and a "Connect all selected objects" as proposed.
Totally agree, and I also advocate using keystrokes/menu options to initiate these operations. It should always be possible to use Pd to manually lay things out just like you can now.
Chris.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Sun, 4 Jan 2009, Frank Barknecht wrote:
Here's Chun and Matju's pd~conv paper: "Keyboard-only Interface For Pure Data" http://artengine.ca/~catalogue-pd/18-Lee-Bouchard.pdf In general I think, Pd should not try to outsmart the user. Finding the most "stupid" solutions to problems has been a good guideline in the past IMO.
Exactly, that's why dd used Ctrl+6 for doing what Ctrl+1 does but with an auto-connection. However, it doesn't extend to messageboxes. This could be extended either by Ctrl+7 for messagebox if we just want to fill most of the remaining hole, or switch to Ctrl+Shift+1/2/3/4/5 if we want to fill more of the hole and can handle the keyboard layout, or have a hotkey for toggling a "Auto-Connect Mode".
This transfers the obligation to be smart from the program to the user, who in general is smarter than software anyway. Personally I don't like software that tries to be smarter than me, that's why I don't run OS-X or Windows. ;)
Software that second-guesses the user cause the user to NEED to third-guess the software... especially if the rules are undocumented, or too complex to remember, and/or keep changing from version to version, or in the worst case, depend much on the history of user interaction. I mean, a menu section for "5 last documents loaded" is fine, but normal users would go nuts if menus kept on sorting their items in decreasing frequency of use. ;)
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
Mathieu Bouchard a écrit :
On Sun, 4 Jan 2009, Frank Barknecht wrote:
Exactly, that's why dd used Ctrl+6 for doing what Ctrl+1 does but with an auto-connection. However, it doesn't extend to messageboxes. This could be extended either by Ctrl+7 for messagebox if we just want to fill most of the remaining hole, or switch to Ctrl+Shift+1/2/3/4/5 if we want to fill more of the hole and can handle the keyboard layout, or have a hotkey for toggling a "Auto-Connect Mode".
on AZERTY keyboard, you need to press shift+1 to have a "1" object box are currently made pressing Ctrl+Shift+1. So, it's not possible to change the use of Ctrl+Shift+1/2/3/4/5...
moreover, Ctrl+6/7/8 are made with Ctrl+Shift+6/7/8, and that's hard to do from the left hand...
so, Ctrl+6 is not a good solution, Ctrl+Shift+1 is not a valid solution for AZERTY user.
Cyrille
cyrille henry wrote:
Mathieu Bouchard a écrit :
On Sun, 4 Jan 2009, Frank Barknecht wrote:
Exactly, that's why dd used Ctrl+6 for doing what Ctrl+1 does but with an auto-connection. However, it doesn't extend to messageboxes. This could be extended either by Ctrl+7 for messagebox if we just want to fill most of the remaining hole, or switch to Ctrl+Shift+1/2/3/4/5 if we want to fill more of the hole and can handle the keyboard layout, or have a hotkey for toggling a "Auto-Connect Mode".
on AZERTY keyboard, you need to press shift+1 to have a "1" object box are currently made pressing Ctrl+Shift+1. So, it's not possible to change the use of Ctrl+Shift+1/2/3/4/5...
moreover, Ctrl+6/7/8 are made with Ctrl+Shift+6/7/8, and that's hard to do from the left hand...
so, Ctrl+6 is not a good solution, Ctrl+Shift+1 is not a valid solution for AZERTY user.
desiredata suggests tab, ctl+arrow-keys and esc.
marius.
On Sun, 4 Jan 2009, cyrille henry wrote:
on AZERTY keyboard, you need to press shift+1 to have a "1" object box are currently made pressing Ctrl+Shift+1. So, it's not possible to change the use of Ctrl+Shift+1/2/3/4/5...
I mean: _if_ there were a way to change it so that you don't need the Shift. But I don't have any real experience with the FR layout, as most people around me use the CF layout, which is a QWERTY for French. Perhaps the FR users are already so accustomed to using Ctrl+Shift there, that it wouldn't be worth the trouble to figure out how to remove the Shift so that the Shift can be reused for something else.
moreover, Ctrl+6/7/8 are made with Ctrl+Shift+6/7/8, and that's hard to do from the left hand...
Use both hands. The way I made it, when you type Ctrl+6, you're already in the middle of typing something, so, it's not like your right hand has to move.
If you wanted to type only with one hand, you'd be using a single-hand Dvorak layout anyway, but it's better to just keep using the same layout and instead remove the need for using the mouse, which is what Ctrl+6 does.
(In addition, Ctrl+6 makes the new object aligned with the preceding one)
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
Frank Barknecht wrote:
Hallo, Chris McCormick hat gesagt: // Chris McCormick wrote:
I'm really digging the direction this is going. If I could just chip my 2c into the fray: I have to agree with Frank that being able to select a tower of object boxes and then click a key combination to connect them by patch cords would be useful, as would a keystroke to auto-space things horizontally or vertically. I also agree with Tim that Blender's same-key select/deselect toggle feels very natural. I would vote for ctrl-A both selecting all and deselecting all.
Here's Chun and Matju's pd~conv paper: "Keyboard-only Interface For Pure Data" http://artengine.ca/~catalogue-pd/18-Lee-Bouchard.pdf
In general I think, Pd should not try to outsmart the user. Finding the most "stupid" solutions to problems has been a good guideline in the past IMO.
Autoplacement and autoconnections maybe should be more stupid in this regard: Instead of trying to make them figure out on their own when they should be applied, they could be explict operations that a user has to start actively. This transfers the obligation to be smart from the program to the user, who in general is smarter than software anyway. Personally I don't like software that tries to be smarter than me, that's why I don't run OS-X or Windows. ;)
So instead of doing auto-placements and connections as default, user-initiated operations should be preferred, i.e. a better "Tidy up" and a "Connect all selected objects" as proposed.
but wouldn't it be nice to have shortcuts for all the combinations that you have to type 10 times a day? for example I create [metro] and then a auto-completion shortcut will add a connected toggle? or cycle through a set of recently used combinations with that object? [openpanel] always goes with a bang input. default pd-auto-completion could directly be taken from the help patch for the object or a list of standard combinations for this object. marius.
Additionally placing objects is such a natural operation for mouse actions and that overriding the mouse actions with an automatism should be approached very carefully.
That's just my opinion of course and open to debate.
Ciao
Hallo, marius schebella hat gesagt: // marius schebella wrote:
but wouldn't it be nice to have shortcuts for all the combinations that you have to type 10 times a day? for example I create [metro] and then a auto-completion shortcut will add a connected toggle? or cycle through a set of recently used combinations with that object? [openpanel] always goes with a bang input. default pd-auto-completion could directly be taken from the help patch for the object or a list of standard combinations for this object.
[openpanel] here often is connected to a symbol message filled with my favourite wave-file location. How to tell that to Pd?
Frank
Frank Barknecht wrote:
Hallo, marius schebella hat gesagt: // marius schebella wrote:
but wouldn't it be nice to have shortcuts for all the combinations that you have to type 10 times a day? for example I create [metro] and then a auto-completion shortcut will add a connected toggle? or cycle through a set of recently used combinations with that object? [openpanel] always goes with a bang input. default pd-auto-completion could directly be taken from the help patch for the object or a list of standard combinations for this object.
[openpanel] here often is connected to a symbol message filled with my favourite wave-file location. How to tell that to Pd?
maybe some kind of history. like a browser history. marius.
marius schebella a écrit : ...
[openpanel] always goes with a bang input. default pd-auto-completion could directly be taken from the help patch for the object or a list of standard combinations for this object. marius.
make an GOP abstraction with a bang and a openpanel.
Cyrille
cyrille henry wrote:
marius schebella a écrit : ...
[openpanel] always goes with a bang input. default pd-auto-completion could directly be taken from the help patch for the object or a list of standard combinations for this object. marius.
make an GOP abstraction with a bang and a openpanel.
that's really not the same, I want a set of objects created automatically inside the patch, so that I can connect, drag or reuse them in the patcher window. this could be extended in so many ways. for example autoincrementing object arguments when you use a special duplicate command. marius.
marius schebella a écrit : ...
[openpanel] always goes with a bang input. default pd-auto- completion could directly be taken from the help patch for the object or a list of standard combinations for this object. marius.
make an GOP abstraction with a bang and a openpanel.
that's really not the same, I want a set of objects created automatically inside the patch, so that I can connect, drag or reuse them in the patcher window. this could be extended in so many ways. for example autoincrementing object arguments when you use a special duplicate command. marius.
don't know if anyone here wants to hear about it, but this is exactly
what the clippings folder in maxmsp is used for.
the user can save little (or big) code snippets there as regular
patch files. then you can access the patches through a context menu
and paste the code snippets into any new patches you are working on.
ok, no key-shortcuts yet, but those could be added easily i suppose.
very handy feature in my opinion.
volker.
This would be a new Put menu operation?
In my dreams Put has several subs under object
Put->Object->Empty
(The current behaviour. Default)
Put->Object->Last or a special Put->Again
(Whatever the last completed object was. Or as mentioned in this thread, a more general "Repeat last command" would be great to have (CTRL-R ?) Does whatever you did last, at the current pointer position.)
Put->Object->Existing
(Here we have access to a name sorted list of all abstractions and sub-patches loaded in the current space)
Put->Object->Library
(Presents all abstractions in the path in folder view. This will be very big to navigate in most cases and needs careful thought on how the menu expands, collapses, truncates names and so forth)
Put-Object->Clipboard
(I guess this is like Volker describes. It's does not persist when the application is closed. It is very easy to copy things to the clipboard just using CTRL-C which is aliased to "copy to clipboard slot 1", but there are also other slots. Not sure how to manage these elegantly, but maybe you only need 10 quick access slots.)
On Mon, 5 Jan 2009 10:42:15 +0100 volker böhm vboehm@gmx.ch wrote:
marius schebella a écrit : ...
[openpanel] always goes with a bang input. default pd-auto- completion could directly be taken from the help patch for the object or a list of standard combinations for this object. marius.
make an GOP abstraction with a bang and a openpanel.
that's really not the same, I want a set of objects created automatically inside the patch, so that I can connect, drag or reuse them in the patcher window. this could be extended in so many ways. for example autoincrementing object arguments when you use a special duplicate command. marius.
don't know if anyone here wants to hear about it, but this is exactly
what the clippings folder in maxmsp is used for. the user can save little (or big) code snippets there as regular
patch files. then you can access the patches through a context menu
and paste the code snippets into any new patches you are working on. ok, no key-shortcuts yet, but those could be added easily i suppose. very handy feature in my opinion. volker.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hello,
A work around might be about using the [tot] in capture mode (see monkey example) and [popup] external for storing commands, unfortunately I've no time yet to do this...
best regards to everyone
PatCo.
volker böhm a écrit :
marius schebella a écrit : ...
[openpanel] always goes with a bang input. default pd-auto- completion could directly be taken from the help patch for the object or a list of standard combinations for this object. marius.
make an GOP abstraction with a bang and a openpanel.
that's really not the same, I want a set of objects created automatically inside the patch, so that I can connect, drag or reuse them in the patcher window. this could be extended in so many ways. for example autoincrementing object arguments when you use a special duplicate command. marius.
don't know if anyone here wants to hear about it, but this is exactly
what the clippings folder in maxmsp is used for. the user can save little (or big) code snippets there as regular
patch files. then you can access the patches through a context menu
and paste the code snippets into any new patches you are working on. ok, no key-shortcuts yet, but those could be added easily i suppose. very handy feature in my opinion. volker.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
something like this
Patrice Colet a écrit :
Hello,
A work around might be about using the [tot] in capture mode (see monkey example) and [popup] external for storing commands, unfortunately I've no time yet to do this...
best regards to everyone
PatCo.
volker böhm a écrit :
marius schebella a écrit : ...
[openpanel] always goes with a bang input. default pd-auto- completion could directly be taken from the help patch for the object or a list of standard combinations for this object. marius.
make an GOP abstraction with a bang and a openpanel.
that's really not the same, I want a set of objects created automatically inside the patch, so that I can connect, drag or reuse them in the patcher window. this could be extended in so many ways. for example autoincrementing object arguments when you use a special duplicate command. marius.
don't know if anyone here wants to hear about it, but this is exactly
what the clippings folder in maxmsp is used for. the user can save little (or big) code snippets there as regular
patch files. then you can access the patches through a context menu
and paste the code snippets into any new patches you are working on. ok, no key-shortcuts yet, but those could be added easily i suppose. very handy feature in my opinion. volker.
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 wrote:
something like this
that's nice.
but for me the problem with patching lies a level deeper: the graphical representation of the patch and the inner pd process are too much entangled.
the pd engine. neither are comments or subpatches. 2) there is no way to add and delete objects. and I think this is not only becaue it is not possible to access the total number of objects inside a canvas or their individual IDs. there is no communication from the Pd engine to the outside world. 3) the GUI editor, otoh, should know and do a lot more than what is saved in the .pd file. but of course people will ask "what for, if the Pd process itself does not use all that additional information". well, if you know the internal IDs of the objects and the patching history, you could have unlimited undos, additional patching shortcuts, cord creation via keyboard. you could have hidden comments, different layouts for different screens, ... or just replace tcl/tk with any other GUI. please correct me, if I am wrong. marius.
Patrice Colet a écrit :
Hello,
A work around might be about using the [tot] in capture mode (see monkey example) and [popup] external for storing commands, unfortunately I've no time yet to do this...
best regards to everyone
PatCo.
volker böhm a écrit :
marius schebella a écrit : ...
[openpanel] always goes with a bang input. default pd-auto- completion could directly be taken from the help patch for the object or a list of standard combinations for this object. marius.
make an GOP abstraction with a bang and a openpanel.
that's really not the same, I want a set of objects created automatically inside the patch, so that I can connect, drag or reuse them in the patcher window. this could be extended in so many ways. for example autoincrementing object arguments when you use a special duplicate command. marius.
don't know if anyone here wants to hear about it, but this is exactly what the clippings folder in maxmsp is used for. the user can save little (or big) code snippets there as regular
patch files. then you can access the patches through a context menu
and paste the code snippets into any new patches you are working on. ok, no key-shortcuts yet, but those could be added easily i suppose. very handy feature in my opinion. volker.
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
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Mon, 5 Jan 2009, marius schebella wrote:
- the position of the objects is actually not really interesting for
the pd engine. neither are comments or subpatches.
I'd like to say that object positions do not matter, but [inlet] and [outlet] still depend on their x-coordinate to sort themselves. Again the solution would be to add an inlet-number or outlet-number as argument of those objects, but [inlet~] and [outlet~] already have optional arguments, and some people use the arguments of [inlet] and [outlet] to write comments as symbols because those arguments are ignored instead of forbidden.
- there is no way to add and delete objects. and I think this is not
only becaue it is not possible to access the total number of objects inside a canvas or their individual IDs. there is no communication from the Pd engine to the outside world.
It's easy to access the total number of objects as an external. For example:
#include <m_pd.h> #include "g_canvas.h" typedef struct {t_object o; t_canvas *c;} t_objectcount; static t_class *objectcount_class; t_pd *objectcount_new (void) { t_objectcount *self = (t_objectcount *)pd_new(objectcount_class); self->c=canvas_getcurrent(); outlet_new((t_object *)self,0); return (t_pd *)self; } void objectcount_bang(t_objectcount *self) { int i=0; t_gobj *o = self->c->gl_list; while (o) {i++; o=o->g_next;} outlet_float(self->o.te_outlet,i); } void objectcount_setup (void) { objectcount_class=class_new(gensym("objectcount"), (t_newmethod)objectcount_new,0,sizeof(t_objectcount),0,0); class_addbang(objectcount_class,objectcount_bang); }
And this is very short for a C external.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
I think it took me less time to make this try than writing a 200 words
email, and I don't care about what is right or what is wrong, but I do care about what is working. By the way I'd like to thank this intervention because now I know deeper things about g_canvas.h, for ending with personal thoughts.
PatCo
marius schebella a écrit :
Patrice Colet wrote:
something like this
that's nice.
but for me the problem with patching lies a level deeper: the graphical representation of the patch and the inner pd process are too much entangled.
- the position of the objects is actually not really interesting for
the pd engine. neither are comments or subpatches. 2) there is no way to add and delete objects. and I think this is not only becaue it is not possible to access the total number of objects inside a canvas or their individual IDs. there is no communication from the Pd engine to the outside world. 3) the GUI editor, otoh, should know and do a lot more than what is saved in the .pd file. but of course people will ask "what for, if the Pd process itself does not use all that additional information". well, if you know the internal IDs of the objects and the patching history, you could have unlimited undos, additional patching shortcuts, cord creation via keyboard. you could have hidden comments, different layouts for different screens, ... or just replace tcl/tk with any other GUI. please correct me, if I am wrong. marius.
Patrice Colet a écrit :
Hello,
A work around might be about using the [tot] in capture mode (see monkey example) and [popup] external for storing commands, unfortunately I've no time yet to do this...
best regards to everyone
PatCo.
volker böhm a écrit :
marius schebella a écrit : ... > [openpanel] always goes with a bang input. default pd-auto- > completion > could directly be taken from the help patch for the object or a list > of standard combinations for this object. > marius. make an GOP abstraction with a bang and a openpanel.
that's really not the same, I want a set of objects created automatically inside the patch, so that I can connect, drag or reuse them in the patcher window. this could be extended in so many ways. for example autoincrementing object arguments when you use a special duplicate command. marius.
don't know if anyone here wants to hear about it, but this is exactly what the clippings folder in maxmsp is used for. the user can save little (or big) code snippets there as regular
patch files. then you can access the patches through a context menu
and paste the code snippets into any new patches you are working on. ok, no key-shortcuts yet, but those could be added easily i suppose. very handy feature in my opinion. volker.
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
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Jan 5, 2009, at 4:42 AM, volker böhm wrote:
marius schebella a écrit : ...
[openpanel] always goes with a bang input. default pd-auto- completion could directly be taken from the help patch for the object or a
list of standard combinations for this object. marius.make an GOP abstraction with a bang and a openpanel.
that's really not the same, I want a set of objects created automatically inside the patch, so that I can connect, drag or reuse them in the patcher window. this could be extended in so many ways. for example autoincrementing object arguments when you use a special duplicate command. marius.
don't know if anyone here wants to hear about it, but this is exactly what the clippings folder in maxmsp is used for. the user can save little (or big) code snippets there as regular patch files. then you can access the patches through a context menu and paste the code snippets into any new patches you are working on. ok, no key-shortcuts yet, but those could be added easily i suppose. very handy feature in my opinion. volker.
This is something that I really want to work on, and is one of the
reasons why we need to rewrite u_main.tk. u_main.tk is so messy, it
is basically impossible to extend without creating bugs.
ctrl-7.pd, etc. The contents of the patch would then be pasted at the
cursor position when you hit the key.
txt.pd, ogg.pd, etc. The contents of the patch would be paster at the
cursor position when you drag-n-drop a file of that type onto the
canvas.
Basically, the sooner we have the new u_main.tk replacement code
finished, the sooner we can start tackling things like this in a
rational fashion. Here are some parts that are good modules to work on:
GNOME, Mac OS X, and Windows)
network connection written in Tcl
flexible key binding code so that people can easily experiment with
all these ideas (this is started)
.hc
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Mon, Jan 5, 2009 at 11:24 AM, Hans-Christoph Steiner hans@eds.org wrote:
On Jan 5, 2009, at 4:42 AM, volker böhm wrote:
marius schebella a écrit : ...
[openpanel] always goes with a bang input. default pd-auto- completion could directly be taken from the help patch for the object or a list of standard combinations for this object. marius.
make an GOP abstraction with a bang and a openpanel.
that's really not the same, I want a set of objects created automatically inside the patch, so that I can connect, drag or reuse them in the patcher window. this could be extended in so many ways. for example autoincrementing object arguments when you use a special duplicate command. marius.
don't know if anyone here wants to hear about it, but this is exactly what the clippings folder in maxmsp is used for. the user can save little (or big) code snippets there as regular patch files. then you can access the patches through a context menu and paste the code snippets into any new patches you are working on. ok, no key-shortcuts yet, but those could be added easily i suppose. very handy feature in my opinion. volker.
Yo, just for the sake of discussion, the [templater] object I released last month is one implementation of this "snippets" idea. See here: http://lists.puredata.info/pipermail/pd-list/2008-12/066854.html
(also, some of the stuff being requested like canvas object counts etc. can be found in IOhannes's iemguts). Best Luke
This is something that I really want to work on, and is one of the reasons why we need to rewrite u_main.tk. u_main.tk is so messy, it is basically impossible to extend without creating bugs.
- folder with pd patches named after key commands: ctrl-j.pd, shift-
ctrl-7.pd, etc. The contents of the patch would then be pasted at the cursor position when you hit the key.
- a folder with pd patches named after file extensions, wav.pd,
txt.pd, ogg.pd, etc. The contents of the patch would be paster at the cursor position when you drag-n-drop a file of that type onto the canvas.
Basically, the sooner we have the new u_main.tk replacement code finished, the sooner we can start tackling things like this in a rational fashion. Here are some parts that are good modules to work on:
- unified preference panel with tabs (like standard pref panes on
GNOME, Mac OS X, and Windows)
network connection written in Tcl
flexible key binding code so that people can easily experiment with
all these ideas (this is started)
- restructure Pd window for cleaner UI and code
.hc
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
Luke Iannini wrote:
On Mon, Jan 5, 2009 at 11:24 AM, Hans-Christoph Steiner hans@eds.org wrote:
On Jan 5, 2009, at 4:42 AM, volker böhm wrote:
marius schebella a écrit : ...
[openpanel] always goes with a bang input. default pd-auto- completion could directly be taken from the help patch for the object or a list of standard combinations for this object. marius.
make an GOP abstraction with a bang and a openpanel.
that's really not the same, I want a set of objects created automatically inside the patch, so that I can connect, drag or reuse them in the patcher window. this could be extended in so many ways. for example autoincrementing object arguments when you use a special duplicate command. marius.
don't know if anyone here wants to hear about it, but this is exactly what the clippings folder in maxmsp is used for. the user can save little (or big) code snippets there as regular patch files. then you can access the patches through a context menu and paste the code snippets into any new patches you are working on. ok, no key-shortcuts yet, but those could be added easily i suppose. very handy feature in my opinion. volker.
Yo, just for the sake of discussion, the [templater] object I released last month is one implementation of this "snippets" idea. See here: http://lists.puredata.info/pipermail/pd-list/2008-12/066854.html
(also, some of the stuff being requested like canvas object counts etc. can be found in IOhannes's iemguts). Best Luke
Hi Luke,
I did not read the pd list during the last 3 months, sorry. but that is what I was looking for! this really gives a lot of opportunities.
which leads me to more questions:
Is there a way to tell, which objects (by object count) are selected in a patch? and a way to query the content of an object by object count? and can I select (mark blue) an object in the patch by object count?
for the snipplets, I think, if you add a snipplet to your canvas, it should be selected by default, so that you can easily undo the paste. and I also like the idea of cycling through a set of snipplets with the same key combination. that way you don't have to remember so many keyboard commands. it is more like using a dictionary for text messaging on the phone. one key cycles through all the possible words with a certain letter combination. in Pd it would cycle depending on the object(s) you select, or just some standard clippings.
marius.
On Tue, 6 Jan 2009, marius schebella wrote:
Is there a way to tell, which objects (by object count) are selected in a patch?
If I sent you an external doing this it's because I believe that it can't be done without an external or modification to pd.
and a way to query the content of an object by object count?
How would you like it to work in particular?
and can I select (mark blue) an object in the patch by object count?
First call glist_noselect(canvas) then call glist_select(canvas,o) where o is found in a way very similar to what [objectcount] does. I could write it if you give me some feedback on [objectcount].
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
how do you get a specific selected object with using [objectcount]?
attached is the win32 external, my linux box isn't working yet.
Mathieu Bouchard a écrit :
On Tue, 6 Jan 2009, marius schebella wrote:
Is there a way to tell, which objects (by object count) are selected in a patch?
If I sent you an external doing this it's because I believe that it can't be done without an external or modification to pd.
and a way to query the content of an object by object count?
How would you like it to work in particular?
and can I select (mark blue) an object in the patch by object count?
First call glist_noselect(canvas) then call glist_select(canvas,o) where o is found in a way very similar to what [objectcount] does. I could write it if you give me some feedback on [objectcount].
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Tue, 6 Jan 2009, Patrice Colet wrote:
how do you get a specific selected object with using [objectcount]?
You don't, you have to make a new class very similar to [objectcount], that's all.
#include <m_pd.h> #include "g_canvas.h" typedef struct {t_object o; t_canvas *c;} t_objectselect; static t_class *objectselect_class; t_pd *objectselect_new (void) { t_objectselect *self = (t_objectselect *)pd_new(objectselect_class); self->c=canvas_getcurrent(); return (t_pd *)self; } void objectselect_float(t_objectselect *self, t_float f) { glist_noselect(self->c); int i=0; t_gobj *o = self->c->gl_list; for (; o; i++, o=o->g_next) if (i==(int)f) break; if (o) glist_select(self->c,o); } void objectselect_setup (void) { objectselect_class=class_new(gensym("objectselect"), (t_newmethod)objectselect_new,0,sizeof(t_objectselect),0,0); class_addfloat(objectselect_class,objectselect_float); }
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
In fact both object classes are interdependent, [objectcount] get object number at loadbang, and we can have a range for [objectselect]
Mathieu Bouchard a écrit :
On Tue, 6 Jan 2009, Patrice Colet wrote:
how do you get a specific selected object with using [objectcount]?
You don't, you have to make a new class very similar to [objectcount], that's all.
#include <m_pd.h> #include "g_canvas.h" typedef struct {t_object o; t_canvas *c;} t_objectselect; static t_class *objectselect_class; t_pd *objectselect_new (void) { t_objectselect *self = (t_objectselect *)pd_new(objectselect_class); self->c=canvas_getcurrent(); return (t_pd *)self; } void objectselect_float(t_objectselect *self, t_float f) { glist_noselect(self->c); int i=0; t_gobj *o = self->c->gl_list; for (; o; i++, o=o->g_next) if (i==(int)f) break; if (o) glist_select(self->c,o); } void objectselect_setup (void) { objectselect_class=class_new(gensym("objectselect"), (t_newmethod)objectselect_new,0,sizeof(t_objectselect),0,0); class_addfloat(objectselect_class,objectselect_float); }
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
On 05/01/2009, at 20.24, Hans-Christoph Steiner wrote:
Basically, the sooner we have the new u_main.tk replacement code finished, the sooner we can start tackling things like this in a rational fashion. Here are some parts that are good modules to
work on:
- unified preference panel with tabs (like standard pref panes on
GNOME, Mac OS X, and Windows)
(snip)
I though the point was to first restructure u_main.tk, then add
futures. As opposed to adding features while restructuring.
On Jan 6, 2009, at 2:01 AM, Steffen Juul wrote:
On 05/01/2009, at 20.24, Hans-Christoph Steiner wrote:
Basically, the sooner we have the new u_main.tk replacement code finished, the sooner we can start tackling things like this in a rational fashion. Here are some parts that are good modules to
work on:
- unified preference panel with tabs (like standard pref panes on
GNOME, Mac OS X, and Windows)
(snip)
I though the point was to first restructure u_main.tk, then add
futures. As opposed to adding features while restructuring.
I think that's how we agreed on it, and I think it makes sense. I'd
like to hear what others think. Combining the preference panels into
one with tabs is more of a restructuring than a new feature. It
wouldn't change the logic of the code at all.
.hc
On Mon, Jan 05, 2009 at 02:24:23PM -0500, Hans-Christoph Steiner wrote:
- a folder with pd patches named after file extensions, wav.pd,
txt.pd, ogg.pd, etc. The contents of the patch would be paster at the
cursor position when you drag-n-drop a file of that type onto the
canvas.
Really dig this idea!
Chris.
marius schebella wrote:
So instead of doing auto-placements and connections as default, user-initiated operations should be preferred, i.e. a better "Tidy up" and a "Connect all selected objects" as proposed.
but wouldn't it be nice to have shortcuts for all the combinations that you have to type 10 times a day? for example I create [metro] and then a auto-completion shortcut will add a connected toggle? or cycle through a set of recently used combinations with that object? [openpanel] always goes with a bang input. default pd-auto-completion could directly be taken from the help patch for the object or a list of standard combinations for this object.
i think luigi posted a "template" abstraction a while ago that might do something like that (using iemguts) ((i have to admit that i haven't looked at it yet))
it's a solution that uses abstractions rather than key-bindings though.
fmsdar IOhannes
Chris McCormick wrote:
Hi Miller,
I'm really digging the direction this is going. If I could just chip my 2c into the fray: I have to agree with Frank that being able to select a tower of object boxes and then click a key combination to connect them by patch cords would be useful, as would a keystroke to auto-space things horizontally or vertically. I also agree with Tim that Blender's same-key select/deselect toggle feels very natural. I would vote for ctrl-A both selecting all and deselecting all.
If I recall, there was a neat video posted ages back, probably by Chun or Matju, which illustrated some of the cool UI stuff possible in Max with some plugin. Sorry to be so vague, I can't remember the link. Maybe one of those guys could post it again?
I guess you're talking about this:
http://www.youtube.com/watch?v=fcqF9hDNoJk
Cheers, _yvan
On Sun, Jan 04, 2009 at 01:38:30PM +0100, y wrote:
Chris McCormick wrote:
If I recall, there was a neat video posted ages back, probably by Chun or Matju, which illustrated some of the cool UI stuff possible in Max with some plugin. Sorry to be so vague, I can't remember the link. Maybe one of those guys could post it again?
I guess you're talking about this:
Awesome, yes thanks! I really hope Miller gets a chance to watch this video and also to investigate the work that Chun and Matju did which Frank has posted.
Chris.
y wrote:
Chris McCormick wrote:
Hi Miller,
I'm really digging the direction this is going. If I could just chip my 2c into the fray: I have to agree with Frank that being able to select a tower of object boxes and then click a key combination to connect them by patch cords would be useful, as would a keystroke to auto-space things horizontally or vertically. I also agree with Tim that Blender's same-key select/deselect toggle feels very natural. I would vote for ctrl-A both selecting all and deselecting all.
If I recall, there was a neat video posted ages back, probably by Chun or Matju, which illustrated some of the cool UI stuff possible in Max with some plugin. Sorry to be so vague, I can't remember the link. Maybe one of those guys could post it again?
I guess you're talking about this:
http://www.youtube.com/watch?v=fcqF9hDNoJk
Cheers, _yvan
speaking of max features. to draw connections from one object to several objects you hold down the shift key and drag a connection. after you release the button a new cord from the source object is created and you just klick at the target inlet instead of going back to the original outlet and drag the whole distance again. and alt+dragging an object creates a copy of it, which is another feature that I like in max.
marius.
On Sun, Jan 04, 2009 at 03:19:32PM +0100, Frank Barknecht wrote:
Hallo, marius schebella hat gesagt: // marius schebella wrote:
speaking of max features. to draw connections from one object to several objects ...
Ah, fanning connections. I try to avoid them.
Yep, but as discussed by DesireData guys, it could be possible to automatically insert a [t a a a] when needed. But that is getting pretty fancy.
Chris.
On Sun, 4 Jan 2009, Chris McCormick wrote:
If I recall, there was a neat video posted ages back, probably by Chun or Matju,
There's one gallery folder here: http://artengine.ca/desiredata/gallery/
It has 3 videos: http://artengine.ca/desiredata/gallery/connection.mpeg http://artengine.ca/desiredata/gallery/iemgui_labels.mpeg http://artengine.ca/desiredata/gallery/insert.mpeg
There is also a document (with more pictures) at: http://code.goto10.org/projects/desiredata/wiki/UserDocs
which illustrated some of the cool UI stuff possible in Max with some plugin.
Oh. Sorry. I don't think it was one of us. However, you could try: http://www.google.com/search?q=site%3Alists.puredata.info+max+toolbox+video
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
Miller Puckette wrote:
A partial answer - in 0.42 (available in a test version), control-1, etc, which create new objects, will automatically connect from the currently selected object if there is one. (It does nothing with multiple selections though...)
Wow! Thanks a lot! this is really great. I stumbled across this behavior by accident, and thought I was dreaming, did not know how to reproduce it, though. And I also noticed that "enter" eventually leaves the box edit mode and selects the object! This makes patching a lot faster, although as Frank already said, it will take a day or two to get used to it.
Best,
Marius.
I hope RSN to add keyboard accelerators for moving the selection around, as was already done years ago by Mathieu Bouchard (written up in the first Pd convention proceedings). I'm going slowly because I want to do as much as possible with only a small number of available keys.
cheers Miller
On Fri, Jan 02, 2009 at 01:23:21PM +0100, Patrice Colet wrote:
Hello, and happy 2009, I don't know about how to connect objects without using the left click, if there is no way to do this (without using text editor), this is a *feature request*, for painfull fingers and for saving left button's life on cheap laptops.
Thanks for reading this.
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
On Fri, 2 Jan 2009, Miller Puckette wrote:
I hope RSN to add keyboard accelerators for moving the selection around, as was already done years ago by Mathieu Bouchard (written up in the first Pd convention proceedings).
It wasn't in 2004, it was in 2007, and the paper was entirely the work of Chun Lee, and almost all of the code is his as well, although he decided to put my name on it and we presented the results together.
IIRC the biggest thing I've invented for that project is the diagonal quadrants used for moving from object to object using arrow keys.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
Wow, my memory is worse than I thought :)
M
On Fri, Jan 02, 2009 at 04:01:54PM -0500, Mathieu Bouchard wrote:
On Fri, 2 Jan 2009, Miller Puckette wrote:
I hope RSN to add keyboard accelerators for moving the selection around, as was already done years ago by Mathieu Bouchard (written up in the first Pd convention proceedings).
It wasn't in 2004, it was in 2007, and the paper was entirely the work of Chun Lee, and almost all of the code is his as well, although he decided to put my name on it and we presented the results together.
IIRC the biggest thing I've invented for that project is the diagonal quadrants used for moving from object to object using arrow keys.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - t?l:+1.514.383.3801, Montr?al, Qu?bec
Hallo, Mathieu Bouchard hat gesagt: // Mathieu Bouchard wrote:
On Fri, 2 Jan 2009, Miller Puckette wrote:
I hope RSN to add keyboard accelerators for moving the selection around, as was already done years ago by Mathieu Bouchard (written up in the first Pd convention proceedings).
It wasn't in 2004, it was in 2007, and the paper was entirely the work of Chun Lee, and almost all of the code is his as well, although he decided to put my name on it and we presented the results together.
I think, one easily overlooked but IMO important aspect about this work was that every keystroke is configurable.
Frank
On Sat, 3 Jan 2009, Frank Barknecht wrote:
Mathieu Bouchard hat gesagt: // Mathieu Bouchard wrote:
It wasn't in 2004, it was in 2007, and the paper was entirely the work of Chun Lee, and almost all of the code is his as well, although he decided to put my name on it and we presented the results together.
I think, one easily overlooked but IMO important aspect about this work was that every keystroke is configurable.
Oh. Chun's keyboard project doesn't explicitly include that feature because that feature was already part of DesireData for a long while.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec
This is great, we can even move selected objects with arrows, I was expecting to change selection with arrows, but this is moving, nice behavior in all cases, all those keyboard features just make patching more and more easy and fast, thanks again, I hope multiple selections connecting will be possible, that stuff would certainly save hours of left clicking.
PatCo
Miller Puckette a écrit :
A partial answer - in 0.42 (available in a test version), control-1, etc, which create new objects, will automatically connect from the currently selected object if there is one. (It does nothing with multiple selections though...)
I hope RSN to add keyboard accelerators for moving the selection around, as was already done years ago by Mathieu Bouchard (written up in the first Pd convention proceedings). I'm going slowly because I want to do as much as possible with only a small number of available keys.
cheers Miller
On Fri, Jan 02, 2009 at 01:23:21PM +0100, Patrice Colet wrote:
Hello, and happy 2009, I don't know about how to connect objects without using the left click, if there is no way to do this (without using text editor), this is a *feature request*, for painfull fingers and for saving left button's life on cheap laptops.
Thanks for reading this.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Fri, 2009-01-02 at 08:35 -0800, Miller Puckette wrote:
A partial answer - in 0.42 (available in a test version), control-1, etc, which create new objects, will automatically connect from the currently selected object if there is one. (It does nothing with multiple selections though...)
That's really nice. Is this an indication of a more to come WRT 'auto-connection'?
Jamie