Hi, I made a new navigation abstraction for the gemwindow. it is called advcam (advanced camera) and by connecting it to your gemwin you can use alt key (and additionally shift key) plus a 3 button(!) mouse to change the view. it has two modes: one is similar to 3d modelling programs, where you can look at the world from different camerapositions, and the other mode is like an ego shooter. I could not test is on windows or linux, so there might be problems with keyboard layouts. I use hid and gemmouse for navigation. please send feedback! oh, you can find it at http://parasitaere-kapazitaeten.net/Pd/advcam marius.
hi marius!
the alt key on my window manager (icewm - linux) is to move the window. of course i can change it, but maybe another key would do the job?
pat
ctrl is fine for me, but i don't know about gnome, kde and other. maybe a simple letter like "z" is safer?
i have to turn on hid with a toggle to have some output. i think the [route device] - [bang] - [delay 0] - [1, debug 0] is not working on linux.
pat
----- Original Message ----- From: "marius schebella" marius.schebella@gmail.com To: "patrick" patrick@11h11.com Cc: pd-list@iem.at Sent: Friday, April 06, 2007 1:00 PM Subject: Re: [PD] advcam
what about ctrl? marius.
patrick wrote:
hi marius!
the alt key on my window manager (icewm - linux) is to move the window. of course i can change it, but maybe another key would do the job?
pat
marius schebella a écrit :
Hi, I made a new navigation abstraction for the gemwindow. it is called advcam (advanced camera) and by connecting it to your gemwin you can use alt key (and additionally shift key) plus a 3 button(!) mouse to change the view. it has two modes: one is similar to 3d modelling programs, where you can look at the world from different camerapositions, and the other mode is like an ego shooter. I could not test is on windows or linux, so there might be problems with keyboard layouts. I use hid and gemmouse for navigation. please send feedback! oh, you can find it at http://parasitaere-kapazitaeten.net/Pd/advcam marius.
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
hello, For the moment there is no chance that this patch works on windows unless it's possible to provide hid.dll, but maybe it's not interesting to have it working on windows? Why don't you use a pd vanilla object for the keyboard inputs?
Hello,
I have a question on the patch (and perhaps, other patches like this), and I hope this does not seem rude, but I have something of a philosophical problem with patch designs like this, that seem very "un-modular" in approach. I believe it is something of a design flaw, that you have hard-coded your personal key mapping preference into the abstraction.
Instead, a modular approach would be to separate the key functions from the camera functions, in two separate abstractions. In PD, this might mean providing a simple message interface for your abstraction. So, your basic abstraction works by receiving the messages [mode $1 (, [rotX $1 (, [rotY $1 (, etc, whatever all your messages are.
Then you make separate key/mouse/hid/joystick patch(es) that go with your object, which are easily replaced by something else in the event they don't meet someone's needs. The help file could maybe refer to both objects, but making sure to explain all messages for the camera object.
I looked at your patch and it certainly would seem that the key/mouse mappings warrant an abstraction of their own. I also wonder if such an object would benefit from the use of a [textfile] that could act like a .ini file and contain the key/mouse mappings in an easy to edit way outside of PD.
Anyway, to get on with my main point: In PD, where there are LOTS of cross-platform compatibility issues, such a modular approach is especially helpful (ie. no HID on Windows). Also, for your particular patch, if there ends up being a conflict with some other keys, it's much easier to debug/deploy for other users when it's modular. Speaking for myself, I'd love to adapt this patch for my VJing stuff, but of course my own interface already has keys assigned. I'd also like to try a joystick instead of the keyboard or mouse. (And yes, I realize I can still take apart your patch and do it myself, which I hope to do).
If I was programming such an object in an OOP, that is how I'd approach this, anyway. Granted, it's nice to see people wanting to do more "high level" things, but (in my opinion) it's also nice to find the right design which makes objects most useful, if you intend to share them with the community.
Now, all my first attempt PD patches are not very good, so I probably shouldn't talk ... but I'll fix that, as soon as I find a new job...
~David
On 4/9/07, Patco megalegoland@yahoo.fr wrote:
marius schebella a écrit :
Hi, I made a new navigation abstraction for the gemwindow. it is called advcam (advanced camera) and by connecting it to your gemwin you can use alt key (and additionally shift key) plus a 3 button(!) mouse to change the view. it has two modes: one is similar to 3d modelling programs, where you can look at the world from different camerapositions, and the other mode is like an ego shooter. I could not test is on windows or linux, so there might be problems with keyboard layouts. I use hid and gemmouse for navigation. please send feedback! oh, you can find it at http://parasitaere-kapazitaeten.net/Pd/advcam marius.
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
hello, For the moment there is no chance that this patch works on windows unless it's possible to provide hid.dll, but maybe it's not interesting to have it working on windows? Why don't you use a pd vanilla object for the keyboard inputs?
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
thanks for that feedback! I really appreciate it. the problem of the different OS is not easy to solve. one part is that usually you don't have all OS to test. the keyboard layout is also a problem, on linux and M$ you want to use ctrl and alt, and on OS you have the apple key. the modular idea seems good to me, but I also did not want to split up the patch in parts. now I think that would be the better way to go... I am also thinking of having several distributions for the different OS. and I also was thinking that people might want to decide themselves which key they want to assign, which brought me to that ini script idea. for me personally I often use textfiles as ini scripts, BUT: the problem on mac and linux is, that you don't have write access in folders other than your homefolder and if you put a patch into the pd environment ini scripts are useless. anyway, the next release will consist of more seperated files, promised! and good luck with your job! marius.
David Powers wrote:
Hello,
I have a question on the patch (and perhaps, other patches like this), and I hope this does not seem rude, but I have something of a philosophical problem with patch designs like this, that seem very "un-modular" in approach. I believe it is something of a design flaw, that you have hard-coded your personal key mapping preference into the abstraction.
Instead, a modular approach would be to separate the key functions from the camera functions, in two separate abstractions. In PD, this might mean providing a simple message interface for your abstraction. So, your basic abstraction works by receiving the messages [mode $1 (, [rotX $1 (, [rotY $1 (, etc, whatever all your messages are.
Then you make separate key/mouse/hid/joystick patch(es) that go with your object, which are easily replaced by something else in the event they don't meet someone's needs. The help file could maybe refer to both objects, but making sure to explain all messages for the camera object.
I looked at your patch and it certainly would seem that the key/mouse mappings warrant an abstraction of their own. I also wonder if such an object would benefit from the use of a [textfile] that could act like a .ini file and contain the key/mouse mappings in an easy to edit way outside of PD.
Anyway, to get on with my main point: In PD, where there are LOTS of cross-platform compatibility issues, such a modular approach is especially helpful (ie. no HID on Windows). Also, for your particular patch, if there ends up being a conflict with some other keys, it's much easier to debug/deploy for other users when it's modular. Speaking for myself, I'd love to adapt this patch for my VJing stuff, but of course my own interface already has keys assigned. I'd also like to try a joystick instead of the keyboard or mouse. (And yes, I realize I can still take apart your patch and do it myself, which I hope to do).
If I was programming such an object in an OOP, that is how I'd approach this, anyway. Granted, it's nice to see people wanting to do more "high level" things, but (in my opinion) it's also nice to find the right design which makes objects most useful, if you intend to share them with the community.
Now, all my first attempt PD patches are not very good, so I probably shouldn't talk ... but I'll fix that, as soon as I find a new job...
~David
On 4/9/07, Patco megalegoland@yahoo.fr wrote:
marius schebella a écrit :
Hi, I made a new navigation abstraction for the gemwindow. it is called advcam (advanced camera) and by connecting it to your gemwin you can
use
alt key (and additionally shift key) plus a 3 button(!) mouse to change the view. it has two modes: one is similar to 3d modelling programs, where you can look at the world from different camerapositions, and the other mode is like an ego shooter. I could not test is on windows or linux, so there might be problems
with
keyboard layouts. I use hid and gemmouse for navigation. please send feedback! oh, you can find it at http://parasitaere-kapazitaeten.net/Pd/advcam marius.
PD-list@iem.at mailing list UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
hello, For the moment there is no chance that this patch works on windows unless it's possible to provide hid.dll, but maybe it's not interesting to have it working on windows? Why don't you use a pd vanilla object for the keyboard inputs?
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Patco wrote:
For the moment there is no chance that this patch works on windows unless it's possible to provide hid.dll,
did not know that hid is not working???
but maybe it's not interesting to have it working on windows? Why don't you use a pd vanilla object for the keyboard inputs?
because on my mac, I do not get keyboard input when the gemwindow has the focus... the pd keyboard objects would have made things much more easy for me.
marius.
On Mon, 2007-04-09 at 19:57 -0400, marius schebella wrote:
because on my mac, I do not get keyboard input when the gemwindow has the focus..
why not using [gemkeyboard]?
roman
___________________________________________________________ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de
The Mac event handling code triggers an event for keyup but I'm not sure why it doesn't make it to the gemkeyboard object. I have not written any of this code myself so it will take some time to figure out what is going on.
On 4/10/07, marius schebella marius.schebella@gmail.com wrote:
sorry, I meant, only sees key down, but no keyup... marius.
marius schebella wrote:
why not using [gemkeyboard]?
only sees keyup, but no key release... marius.
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
marius schebella a écrit :
Patco wrote:
For the moment there is no chance that this patch works on windows unless it's possible to provide hid.dll,
did not know that hid is not working???
I tried to compile hid for windows but I couldn't resolve this:
$ make
make -C /home/pat/externals hid
make[1]: Entering directory /home/pat/externals' gcc -DPD -O3 -funroll-loops -fomit-frame-pointer -I/home/pat/pd/src -W -ggdb -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)' -o "/home/pat/externals/hcs/hid/input_arrays.o" -c "/home/pat/externals/hcs/hid/input_arrays.c" gcc -DPD -O3 -funroll-loops -fomit-frame-pointer -I/home/pat/pd/src -W -ggdb -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)' -o "/home/pat/externals/hcs/hid/hid_windows.o" -c "/home/pat/externals/hcs/hid/hid_windows.c" C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: In function
hid_print_element_list':
C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:75: error:
LOG_DEBUG' undeclared (first use in this function) C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:75: error: (Each undeclared identifier is reported only once C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:75: error: for each function it appears in.) C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: At top level: C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:250: error: conflicting types for 'hid_get_events' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:122: error: previous declaration of 'hid_get_events' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:250: error: conflicting types for 'hid_get_events' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:122: error: previous declaration of 'hid_get_events' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:258: error: conflicting types for 'hid_open_device' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:119: error: previous declaration of 'hid_open_device' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:258: error: conflicting types for 'hid_open_device' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:119: error: previous declaration of 'hid_open_device' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: In function
hid_open_device':
C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:259: error:
LOG_DEBUG' undeclared (first use in this function) C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: In function
hid_close_device':
C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:269: error:
LOG_DEBUG' undeclared (first use in this function) C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: At top level: C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:278: error: conflicting types for 'hid_build_device_list' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:121: error: previous declaration of 'hid_build_device_list' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:278: error: conflicting types for 'hid_build_device_list' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:121: error: previous declaration of 'hid_build_device_list' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: In function
hid_build_device_list':
C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:279: error:
LOG_DEBUG' undeclared (first use in this function) C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: In function
hid_platform_specific_free':
C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:324: error:
LOG_DEBUG' undeclared (first use in this function) make[1]: *** [/home/pat/externals/hcs/hid/hid_windows.o] Error 1 make[1]: Leaving directory
/home/pat/externals'
make: *** [default] Error 2
Do I have to install DDK or something?
PC.
On Apr 10, 2007, at 7:01 AM, Patco wrote:
marius schebella a écrit :
Patco wrote:
For the moment there is no chance that this patch works on
windows unless it's possible to provide hid.dll,did not know that hid is not working???
I tried to compile hid for windows but I couldn't resolve this:
$ make make -C /home/pat/externals hid make[1]: Entering directory
/home/pat/externals' gcc -DPD -O3 -funroll-loops -fomit-frame-pointer -I/home/pat/pd/src -W -ggdb -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n) =srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n) =memset(p,0,n)' -o "/home/pat/externals/hcs/hid/input_arrays.o" -c "/home/pat/externals/hcs/hid/input_arrays.c" gcc -DPD -O3 -funroll-loops -fomit-frame-pointer -I/home/pat/pd/src -W -ggdb -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n) =srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n) =memset(p,0,n)' -o "/home/pat/externals/hcs/hid/hid_windows.o" -c "/home/pat/externals/hcs/hid/hid_windows.c" C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: In function
hid_print_element_list': C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:75: error:
LOG_DEBUG' undeclared (first use in this function) C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:75: error: (Each undeclared identifier is reported only once C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:75: error: for each function it appears in.) C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: At top level: C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:250: error: conflicting types for 'hid_get_events' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:122: error: previous declaration of 'hid_get_events' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:250: error: conflicting types for 'hid_get_events' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:122: error: previous declaration of 'hid_get_events' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:258: error: conflicting types for 'hid_open_device' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:119: error: previous declaration of 'hid_open_device' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:258: error: conflicting types for 'hid_open_device' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:119: error: previous declaration of 'hid_open_device' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: In function
hid_open_device': C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:259: error:
LOG_DEBUG' undeclared (first use in this function) C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: In function
hid_close_device': C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:269: error:
LOG_DEBUG' undeclared (first use in this function) C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: At top level: C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:278: error: conflicting types for 'hid_build_device_list' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:121: error: previous declaration of 'hid_build_device_list' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:278: error: conflicting types for 'hid_build_device_list' C:/msys/1.0/home/pat/externals/hcs/hid/hid.h:121: error: previous declaration of 'hid_build_device_list' was here C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: In function
hid_build_device_list': C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:279: error:
LOG_DEBUG' undeclared (first use in this function) C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c: In function
hid_platform_specific_free': C:/msys/1.0/home/pat/externals/hcs/hid/hid_windows.c:324: error:
LOG_DEBUG' undeclared (first use in this function) make[1]: *** [/home/pat/externals/hcs/hid/hid_windows.o] Error 1 make[1]: Leaving directory
/home/pat/externals' make: *** [default] Error 2Do I have to install DDK or something?
[hid] was never ported to Windows. You can try externals/io/hidio,
but I don't think that's complete yet.
.hc
PC.
kill your television