aboutsummaryrefslogtreecommitdiff
path: root/doc/pddp/all_about_hid.pd
blob: 6216e63730ecb86a167b5a42907dc007fd227aaf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#N canvas 136 163 868 598 10;
#X obj 5 2 cnv 15 850 20 empty empty all_about_hid 20 10 1 18 -233017
-66577 0;
#X obj 821 3 pddp;
#X text 5 29 "HID" stands for "Human Interface Device". A HID is any
device that is meant to allow humans to interact with a computer. Usually
\, HIDs are mice \, keyboards \, joysticks \, tablets \, gamepads \,
etc. There a number of unusual HIDs \, like the Griffin PowerMate on
the low end \, or the SensAble PHANTOM 6DOF on the high end.;
#X obj 595 437 gemmouse;
#X text 0 214 KEYBOARDS;
#X obj 11 233 key;
#X obj 43 233 keyup;
#X obj 431 437 gemkeyboard;
#X obj 659 437 gemtablet;
#X obj 730 437 gemorb;
#X obj 517 437 gemkeyname;
#X obj 88 233 keyname;
#X text 16 557 (C) Copyright 2004 Hans-Christoph Steiner <hans@at.or.at>
;
#X text 233 571 released under the GNU GPL;
#X text 429 558 $Revision: 1.4 $$Date: 2005-04-18 00:33:26 $;
#X text 430 571 $Author: eighthave $;
#N canvas 0 22 647 451 deprecated 0;
#X text 35 38 The use of these objects is deprecated since the functionality
that they provide is available in the [hid] object \, which is a unified
\, cross-platform approach.;
#X text 23 14 DEPRECATED HID OBJECTS;
#X text 22 148 CYCLONE;
#X obj 27 181 MouseState;
#X obj 108 181 mousefilter;
#X obj 24 311 linuxjoystick;
#X text 22 346 J. SARLO'S [joystick];
#X text 31 374 only works with Windows and GNU/Linux;
#X text 26 163 meant for porting Max/MSP patches to Pd.;
#X text 21 218 RAWHID;
#X text 28 230 incomplete \, first stab at creating [hid];
#X obj 30 248 rawmouse;
#X obj 94 248 rawjoystick;
#X obj 125 311 linuxevent;
#X text 26 293 These have been replaced by [linuxhid] and [joystick]
;
#X text 22 278 LINUXEVENT;
#X restore 438 533 pd deprecated HID objects;
#X text 425 415 USING HIDs WITH GEM;
#X text 435 478 There are quite a few objects that support HIDs from
many different sources. Here are a bunch whose functionality is available
in the [hid] object \, so it is recommended that you do not use these
objects any more.;
#X text 436 176 device type;
#X text 712 160 latency;
#X text 765 176 (Hz);
#X text 685 176 (ms);
#X text 435 186 --------------------------------------------------------
;
#X text 685 201 15.5;
#X text 765 201 64;
#X text 685 216 8-10;
#X text 765 216 100-125;
#X text 435 231 USB mice on GNU/Linux;
#X text 685 231 1-10;
#X text 765 231 100-1000;
#X text 435 246 USB wireless mice;
#X text 685 246 12-20;
#X text 765 246 50-80;
#X text 434 334 While it does not make sense to use a poll rate that
is much faster than the refresh rate of the device \, it does make
sense to make the poll rate somewhat faster. If you poll at the same
rate as the device refreshes \, you could get up to double the latency
\, i.e. if [hid] polls right before the event is reported.;
#X text 425 461 DEPRECATED OBJECTS;
#X text 5 117 When talking about HIDs \, "DOF" is often mentioned.
"DOF" stands for "degrees of freedom". A degree of freedom is one dimension
in which that HID can give information. A mouse generally had 2DOFs:
X-axis and Y-axis \, though a wheel could be considered another DOF.
The PHANTOM 6DOF device has six degrees of freedom: X \, Y \, Z movement
\; X \, Y \, Z rotation.;
#X text 0 325 GENERAL HIDs;
#X obj 76 424 mouse;
#X obj 119 424 joystick;
#X obj 183 424 tablet;
#X obj 233 424 gamepad;
#X text 435 201 ADB (Apple Desktop Bus) devices;
#X text 435 303 P5 Glove;
#X text 685 303 22;
#X text 765 303 45;
#X text 765 289 40;
#X text 685 289 25;
#X obj 12 424 keyboard;
#X text 685 275 5-25;
#X text 765 275 40-200;
#X text 435 261 Generic USB Devices;
#X text 685 261 10;
#X text 765 261 100;
#X text 435 275 PS/2 mice;
#X text 435 289 Serial mice;
#X text 425 23 LATENCY AND POLLING;
#X text 425 156 REFRESH RATES OF VARIOUS DEVICES;
#X obj 11 347 hid;
#X text 11 369 Basically any device that is supported by the various
HID layers on each OS is supported by the [hid] object. So any of those
devices can be used as controllers with Pd. There already exists a
number of objects for more common HIDs:;
#X text 434 39 An essential detail to making an usable instrument is
the latency between when you perform an action and the sound it produces.
If the latency is too large \, it will make the instrument annoying
to play \, or even unplayable. So the aim is to have as low latency
as possible. To put it into perspective \, if you were playing an electric
guitar and the amp was 3m (10ft) away from you \, there would be a
9ms delay between when you plucked the string and when you heard the
sound.;
#X text 435 314 --------------------------------------------------------
;
#X text 3 453 PLATFORM-SPECIFIC HID OBJECTS;
#X obj 254 527 linuxmouse;
#X text 15 470 To get full access to some devices \, you need to use
the platform-specific objects. The objects have dummy versions on the
other platforms so that you open the patches on other platforms and
edit them without breaking them.;
#X text 5 254 These objects are quite simple to use \, but are limited.
They only receive key events when Pd has focus \; they output alternating
1s and 0s to represent auto-repeat \; [key] and [heyup] are limited
to the 'printing' characters. [keyname] reports Shift \, Ctrl \, Alt
\, Meta \, etc.;
#X obj 12 527 linuxhid;
#X text 435 216 USB mice on Windows or MacOS X;
#X obj 85 527 darwinhid;
#X obj 166 527 windowshid;