-
Notifications
You must be signed in to change notification settings - Fork 3
/
0. Basic principles.v4p
407 lines (407 loc) · 27.3 KB
/
0. Basic principles.v4p
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
<!DOCTYPE PATCH SYSTEM "http://vvvv.org/versions/vvvv45beta26.dtd" >
<PATCH nodename="C:\kimchiandchips\Workshops\VVVV.Tutorials.Fundamentals\0. Basic principles.v4p" filename="C:\kimchiandchips\Workshops\VVVV-basics,mapping\template.v4p" locked="0" systemname="template">
<BOUNDS height="13530" left="12480" top="765" type="Window" width="8370">
</BOUNDS>
<NODE componentmode="InABox" id="0" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="225" top="150" type="Node" width="1380">
</BOUNDS>
<BOUNDS height="1095" left="225" top="150" type="Box" width="7665">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|0. Basic principles|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="1">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Size" slicecount="1" values="42">
</PIN>
</NODE>
<NODE componentmode="InABox" id="1" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="5025" top="5760" type="Node" width="2070">
</BOUNDS>
<BOUNDS height="345" left="5025" top="5760" type="Box" width="2535">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[5 - Pins]&cr;&lf;Nodes need a way of communicating with other nodes.&cr;&lf;<br />&cr;&lf;&cr;&lf;The 'cable' that connects 2 nodes together is called a <concept>Link</concept>, and the 'socket' where the cable connects to the node is called a <concept>Pin</concept>.&cr;&lf;<br />&cr;&lf;&cr;&lf;In this documentation, we demonstrate a pin with the following style: <pin>style</pin>. This could denote either a specific pin such as <node>+ (Value)</node> node's <pin>Input 1</pin>, or more casually refer to a general pin, such as the <pin>input</pin> of an <node>IOBox</node>.&cr;&lf;&cr;&lf;Output pins are on the bottom of the nodes&cr;&lf;Input pins are on the top of the nodes.&cr;&lf;<br />&cr;&lf;&cr;&lf;An <pin>input</pin> can only be connected to 1 other node's <pin>output </pin> at any time.&cr;&lf;<br />&cr;&lf;&cr;&lf;An <pin>output</pin> can be connected to many other nodes' <pin>input </pin> at any time.&cr;&lf;<br />&cr;&lf;&cr;&lf;Roll your mouse over a pin to see what value it has (works for both inputs and outputs).&cr;&lf;<br />|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Font" slicecount="1" values="|Arial Black|">
</PIN>
<PIN pinname="Size" slicecount="1" values="10">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
</PIN>
</NODE>
<NODE componentmode="InABox" id="2" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="105" top="11895" type="Node" width="2070">
</BOUNDS>
<BOUNDS height="750" left="105" top="11895" type="Box" width="5325">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|Created by Elliot Woods.&cr;&lf;Distributed under the MIT license (check file LICENSE) for details.&cr;&lf;Generally you can do whatever you want with these files. have fun!|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="1">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
</NODE>
<NODE componentmode="InABox" id="5" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="5805" top="2640" type="Node" width="1380">
</BOUNDS>
<BOUNDS height="540" left="5805" top="2640" type="Box" width="2085">
</BOUNDS>
<PIN encoded="0" pinname="Input String" visible="1">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Size" slicecount="1" values="12">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Author">
</PIN>
</NODE>
<NODE componentmode="InABox" id="6" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="225" top="1260" type="Node" width="1380">
</BOUNDS>
<BOUNDS height="1155" left="225" top="1260" type="Box" width="7665">
</BOUNDS>
<PIN encoded="0" pinname="Input String" visible="1">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Size" slicecount="1" values="12">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Description">
</PIN>
</NODE>
<INFO author="Elliot Woods" description="Basic principles of the VVVV graph. Here we create a patch which adds up 2 numbers. You can think of a patch a little bit like an electrical circuit." tags="nodes, links">
</INFO>
<NODE componentmode="Hidden" filename="Subpatches\GetMetadata (VVVV).v4p" hiddenwhenlocked="1" id="10" nodename="GetMetadata (VVVV)" systemname="GetMetadata (VVVV)">
<BOUNDS height="100" left="5820" top="1800" type="Node" width="100">
</BOUNDS>
<PIN pinname="Patch" visible="1">
</PIN>
<BOUNDS height="3465" left="14520" top="5520" type="Window" width="4680">
</BOUNDS>
<PIN pinname="Author" visible="1">
</PIN>
<PIN pinname="Description" visible="1">
</PIN>
<PIN pinname="Tags" visible="1">
</PIN>
</NODE>
<NODE componentmode="Hidden" hiddenwhenlocked="1" id="8" nodename="PatchAlias (VVVV)" systemname="PatchAlias (VVVV)">
<BOUNDS height="100" left="5820" top="1350" type="Node" width="100">
</BOUNDS>
<PIN pinname="Patch" visible="1">
</PIN>
</NODE>
<LINK dstnodeid="10" dstpinname="Patch" hiddenwhenlocked="1" srcnodeid="8" srcpinname="Patch">
</LINK>
<LINK dstnodeid="6" dstpinname="Input String" hiddenwhenlocked="1" linkstyle="VHV" srcnodeid="10" srcpinname="Description">
<LINKPOINT x="6445" y="2205">
</LINKPOINT>
<LINKPOINT x="245" y="2355">
</LINKPOINT>
</LINK>
<NODE componentmode="InABox" id="11" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="225" top="2640" type="Node" width="1380">
</BOUNDS>
<BOUNDS height="540" left="225" top="2640" type="Box" width="5520">
</BOUNDS>
<PIN encoded="0" pinname="Input String" visible="1">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Size" slicecount="1" values="12">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="Tags">
</PIN>
</NODE>
<LINK dstnodeid="11" dstpinname="Input String" hiddenwhenlocked="1" linkstyle="VHV" srcnodeid="10" srcpinname="Tags">
<LINKPOINT x="7015" y="2293">
</LINKPOINT>
<LINKPOINT x="275" y="2448">
</LINKPOINT>
</LINK>
<LINK dstnodeid="5" dstpinname="Input String" hiddenwhenlocked="1" srcnodeid="10" srcpinname="Author">
</LINK>
<NODE componentmode="InABox" id="12" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
<BOUNDS height="100" left="1065" top="5055" type="Node" width="100">
</BOUNDS>
<BOUNDS height="660" left="1065" top="5055" type="Box" width="1965">
</BOUNDS>
<PIN pinname="Size" slicecount="1" values="24">
</PIN>
<PIN pinname="Y Output Value" visible="1">
</PIN>
</NODE>
<NODE componentmode="InABox" id="13" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
<BOUNDS height="100" left="4935" top="5040" type="Node" width="100">
</BOUNDS>
<BOUNDS height="660" left="4935" top="5040" type="Box" width="1965">
</BOUNDS>
<PIN pinname="Size" slicecount="1" values="24">
</PIN>
<PIN pinname="Y Output Value" visible="1">
</PIN>
</NODE>
<NODE componentmode="Hidden" id="14" nodename="Add (Value)" systemname="Add (Value)">
<BOUNDS height="270" left="1050" top="7095" type="Node" width="3945">
</BOUNDS>
<PIN pinname="Input 1" visible="1">
</PIN>
<PIN pinname="Input 2" visible="1">
</PIN>
<PIN pinname="Output" visible="1">
</PIN>
</NODE>
<LINK dstnodeid="14" dstpinname="Input 1" srcnodeid="12" srcpinname="Y Output Value">
</LINK>
<LINK dstnodeid="14" dstpinname="Input 2" srcnodeid="13" srcpinname="Y Output Value">
</LINK>
<NODE componentmode="InABox" id="16" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
<BOUNDS height="100" left="1050" top="8355" type="Node" width="100">
</BOUNDS>
<BOUNDS height="660" left="1050" top="8355" type="Box" width="1965">
</BOUNDS>
<PIN pinname="Size" slicecount="1" values="24">
</PIN>
<PIN pinname="Y Output Value" visible="1">
</PIN>
<PIN pinname="Y Input Value" visible="1">
</PIN>
</NODE>
<LINK dstnodeid="16" dstpinname="Y Input Value" srcnodeid="14" srcpinname="Output">
</LINK>
<NODE componentmode="InABox" id="22" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="1110" top="4680" type="Node" width="2070">
</BOUNDS>
<BOUNDS height="345" left="1110" top="4680" type="Box" width="2535">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[4 - IOBoxes]&cr;&lf;An <node>IOBox</node> is a special node. It is the most basic method for inputting data into VVVV (input), and for seeing the data for ourselves (output).&cr;&lf;We can only edit data inside an IOBox if it has nothing connected to its <pin>input</pin>.&cr;&lf;<br />&cr;&lf;&cr;&lf;Try changing the value in a basic way by double clicking <click2/><lmb/> on it, and entering a value manually, then press <key>Enter</key>.|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Font" slicecount="1" values="|Arial Black|">
</PIN>
<PIN pinname="Size" slicecount="1" values="10">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
</PIN>
</NODE>
<NODE componentmode="InABox" id="24" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
<BOUNDS height="100" left="1050" top="10305" type="Node" width="100">
</BOUNDS>
<BOUNDS height="660" left="1050" top="10305" type="Box" width="1965">
</BOUNDS>
<PIN pinname="Size" slicecount="1" values="24">
</PIN>
<PIN pinname="Y Output Value" visible="1">
</PIN>
<PIN pinname="Y Input Value" visible="1">
</PIN>
</NODE>
<NODE componentmode="InABox" id="25" nodename="IOBox (Value Advanced)" systemname="IOBox (Value Advanced)">
<BOUNDS height="100" left="3450" top="10305" type="Node" width="100">
</BOUNDS>
<BOUNDS height="660" left="3450" top="10305" type="Box" width="1965">
</BOUNDS>
<PIN pinname="Size" slicecount="1" values="24">
</PIN>
<PIN pinname="Y Output Value" visible="1">
</PIN>
<PIN pinname="Y Input Value" visible="1">
</PIN>
</NODE>
<LINK dstnodeid="24" dstpinname="Y Input Value" srcnodeid="16" srcpinname="Y Output Value">
</LINK>
<LINK dstnodeid="25" dstpinname="Y Input Value" linkstyle="VHV" srcnodeid="16" srcpinname="Y Output Value">
<LINKPOINT x="1110" y="9645">
</LINKPOINT>
<LINKPOINT x="3450" y="9645">
</LINKPOINT>
</LINK>
<NODE componentmode="InABox" id="26" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="1305" top="7815" type="Node" width="2070">
</BOUNDS>
<BOUNDS height="345" left="1305" top="7815" type="Box" width="2535">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[7. Input pins]&cr;&lf;Data sent via a link is sent from an output pin and received on an input pin.&cr;&lf;Input pins are the pins across the top of a node.&cr;&lf;<br />&cr;&lf;&cr;&lf;Input pins have different names depending on their function. For basic nodes, the main input is called <pin>Input</pin>. Put data in there to get a result.&cr;&lf;<br />&cr;&lf;&cr;&lf;There may also be other input pins also called "Input", e.g. a <node>+ (Value)</node> node has by default 2 inputs, <pin>Input 1</pin>, <pin>Input 2</pin> which are the 2 numbers to be added together.&cr;&lf;<br />&cr;&lf;&cr;&lf;Sometimes it's appropriate for the input pins to have different names, e.g. a <node>HSL (Color, Join)</node> node has 4 inputs: <pin>Hue</pin>, <pin>Saturation</pin>, <pin>Lightness</pin>, <pin>Alpha</pin>. These are joined together into 1 colour value on the <pin>Output</pin>.&cr;&lf;<br />&cr;&lf;&cr;&lf;Input pins can generally store values. If you connect to an input pin, then disconnect, it will store the last value given to it.&cr;&lf;<br />&cr;&lf;&cr;&lf;Sometimes the input pins are attributes for how that node should behave, e.g. A <node>Renderer (EX9)</node> node has a <pin>Fullscreen</pin> pin, which allows you to set that renderer's window to be fullscreen.|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Font" slicecount="1" values="|Arial Black|">
</PIN>
<PIN pinname="Size" slicecount="1" values="10">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
</PIN>
</NODE>
<NODE componentmode="InABox" id="31" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="660" top="3285" type="Node" width="2070">
</BOUNDS>
<BOUNDS height="345" left="660" top="3285" type="Box" width="2535">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[0 - The patch]&cr;&lf;When we open VVVV, we get a blank square.&cr;&lf;<br />&cr;&lf;&cr;&lf;This blank square is a view of a new blank VVVV document, which is called a <concept>Patch</concept>.&cr;&lf;<br />&cr;&lf;&cr;&lf;Patches define 'programs' in VVVV. A patch can perform all sorts of tasks. It can act on its own, or can perform a specific function within a bigger patch. When one patch is nested within another, it is called a <concept>Subpatch</concept>.&cr;&lf;<br />&cr;&lf;&cr;&lf;The <concept>Graph</concept> is a term given to everything that VVVV is thinking about. This word can commonly be used interchangeable with the 'Patch', but the Graph is also a more general term which incorporates all running patches and subpatches.&cr;&lf;<br />&cr;&lf;&cr;&lf;Patches are made entirely out of <concept>Nodes</concept> and <concept>Links</concept>.&cr;&lf;<br />&cr;&lf;We donote a Node like this: <node>Node name</node>.&cr;&lf;<br />&cr;&lf;&cr;&lf;Almost all of the interface for VVVV is handled by nodes, and therefore there are no toolbars, menu bars, etc. to start with. The main exception to this is the <concept>Main Menu</concept>.&cr;&lf;<br />|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Font" slicecount="1" values="|Arial Black|">
</PIN>
<PIN pinname="Size" slicecount="1" values="10">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
</PIN>
</NODE>
<NODE componentmode="InABox" id="32" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="660" top="3585" type="Node" width="2070">
</BOUNDS>
<BOUNDS height="345" left="660" top="3585" type="Box" width="2535">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[1 - Creating nodes]&cr;&lf;<click2/> <lmb /> in an empty space in the patch window.&cr;&lf;<br />&cr;&lf;&cr;&lf;This will bring up the <concept>NodeBrowser</concept> which you can use to create new nodes.&cr;&lf;<br />&cr;&lf;&cr;&lf;If you start typing, the NodeBrowser will begin searching for new nodes.&cr;&lf;<br />&cr;&lf;&cr;&lf;Use <key>Up</key>/<key>Down</key> on the keyboard to select different nodes within the list. &cr;&lf;Use the <scroll /> scroll on the mouse to scroll the list.&cr;&lf;Press <key>Enter</key> on the keyboard or click on an item in the list to create the node.&cr;&lf;<br />&cr;&lf;&cr;&lf;<click /><rmb /> on the text box at the top of the NodeBrowser, to browse for nodes by category.&cr;&lf;<br />|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Font" slicecount="1" values="|Arial Black|">
</PIN>
<PIN pinname="Size" slicecount="1" values="10">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
</PIN>
</NODE>
<NODE componentmode="InABox" id="33" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="660" top="3885" type="Node" width="2070">
</BOUNDS>
<BOUNDS height="345" left="660" top="3885" type="Box" width="2535">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[2 - Scrolling]&cr;&lf;There are 2 main ways to scroll around the patch in VVVV. You can either:&cr;&lf;<br />&cr;&lf;&cr;&lf;<ol>&cr;&lf;<li><b>Drag right mouse button <hold/><rmb/> </b><br />&cr;&lf;Move your mouse over an empty area of the patch, hold down your right mouse button and then start moving your mouse. Release the mouse <release/><rmb/> to stop scrolling<br />You will notice that the whole patch will move with respect to the window. This is the most common form of scrolling. But WARNING! Be careful not to <click/><rmb/>on any links in the patch. It's common for beginners to scroll like this with their mouse over a link. Right clicking on a link deletes it!</li>&cr;&lf;&cr;&lf;<li><b>With the scroll wheel <scroll /></b> <br />&cr;&lf;Safer for busy patches (for the link-deleting reason described above). You can scroll up/down using <scroll />. You can scroll left/right with <key>Alt</key>+<scroll /> and using the scroll wheel. You can scroll super-quick using <key>Ctrl</key>+<scroll />.</li>&cr;&lf;</ol>|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Font" slicecount="1" values="|Arial Black|">
</PIN>
<PIN pinname="Size" slicecount="1" values="10">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
</PIN>
</NODE>
<NODE componentmode="InABox" id="34" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="1275" top="6360" type="Node" width="2070">
</BOUNDS>
<BOUNDS height="345" left="1275" top="6360" type="Box" width="2535">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[6 - Links]&cr;&lf;As mentioned before, a connection between 2 nodes is called a 'Link'.&cr;&lf;<br />&cr;&lf;&cr;&lf;A link is made between an <pin>input</pin> pin (on the top of a node) and an <pin>output</pin> pin (the bottom of another node).&cr;&lf;<br />&cr;&lf;A pin is denoted like this <pin>Pin name</pin>.&cr;&lf;<br />&cr;&lf;&cr;&lf;We can think of the data flowing from the ouput of one node, down the link, and into the input pin of the 'downstream' node.&cr;&lf;<br />&cr;&lf;&cr;&lf;To make a link, first select a pin to start making the connection by left clicking <click/><lmb/> on the pin. You must remember to click (and not to drag, especially if you're used to Max/MSP style linking).&cr;&lf;<br />&cr;&lf;&cr;&lf;Once you have clicked once and made sure to release the mouse button <release/><lmb/>, you are now ready to select the target pin for your link. Pins that you are allowed to connect to (i.e pins that you can make a meaningful connection with) are highlighted by becoming graphically larger on the screen. Click <click/><lmb/> on a target pin to complete the link.&cr;&lf;<br />&cr;&lf;&cr;&lf;To delete a link. Right click on it, or select it by left clicking on it, and hit <key>Delete</key>.&cr;&lf;&cr;&lf;|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Font" slicecount="1" values="|Arial Black|">
</PIN>
<PIN pinname="Size" slicecount="1" values="10">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
</PIN>
</NODE>
<NODE componentmode="InABox" id="35" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="660" top="4185" type="Node" width="2070">
</BOUNDS>
<BOUNDS height="345" left="660" top="4185" type="Box" width="2535">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[3 - Main Menu]&cr;&lf;The main menu contains a set of functions. All except a couple of which can be accessed without using the main menu.&cr;&lf;<br />&cr;&lf;&cr;&lf;To open the main menu, move your mouse over an empty area of the patch and click the middle mouse button <click/><mmb/>. If you dont have a middle mouse button, then use <key>Shift</key>+<click/><rmb/>.&cr;&lf;<br />&cr;&lf;&cr;&lf;The main menu performs common tasks such as Open, Close, Save, Quit, Copy, Paste, etc. as well as some VVVV specific functions which may help you debug your patch, direct you to help, speed up your patch.|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Font" slicecount="1" values="|Arial Black|">
</PIN>
<PIN pinname="Size" slicecount="1" values="10">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
</PIN>
</NODE>
<NODE componentmode="InABox" id="37" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="3555" top="9660" type="Node" width="2070">
</BOUNDS>
<BOUNDS height="345" left="3555" top="9660" type="Box" width="2535">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[8 - Links again]&cr;&lf;1 output can be linked to several inputs&cr;&lf;<br/>&cr;&lf;1 input can only be linked to 1 output&cr;&lf;<br />&cr;&lf;&cr;&lf;Links can be created by either first selecting the output, then the input, or vice versa. (Both times, using <click/><lmb/>&cr;&lf;<br />&cr;&lf;&cr;&lf;If you want to make a link from 1 output to multiple inputs, then you can either create them all one by one using <click/><lmb/>, or you can create them more quickly by starting to create the link from the <pin>output</pin> pin using the right mouse button <click/><rmb/>. Now every time you <click/><lmb/> an <pin>input</pin> to make a connection, you will still have the <pin>output</pin> selected and be free to create a new connection to another input using 1 more <click/><lmb/> without reselecting the output. Right click <click/><rmb/> in blank space to get rid of the link you are creating..&cr;&lf;<br />&cr;&lf;&cr;&lf;If you start to make a link by accident, right click <click/><rmb/> in a blank area to clear.&cr;&lf;<br />&cr;&lf;&cr;&lf;A common error is to 'miss' when trying to make a connection (this is either through being inaccurate with the mouse, or by selecting the wrong pin to connect to). This means that no link has been made, but you still likely have the link attached to your mouse. Be careful of this, make sure the link is created properly and still exists after you move the mouse away! Otherwise try again.&cr;&lf;<br />&cr;&lf;&cr;&lf;To 'smarten up' your links follow these steps:&cr;&lf;<ol>&cr;&lf;<li>&cr;&lf;Select them (either lasso a few of them at once by dragging out a selection box around them, or select them one by one with left mouse button).&cr;&lf;</li>&cr;&lf;<li>&cr;&lf;Press <key>Ctrl</key>+<key>Y</key> until you get the style of your choice (Right angles, Curves, Direct)&cr;&lf;</li>&cr;&lf;</ol>|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Font" slicecount="1" values="|Arial Black|">
</PIN>
<PIN pinname="Size" slicecount="1" values="10">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
</PIN>
</NODE>
<NODE componentmode="InABox" id="38" nodename="IOBox (String)" systemname="IOBox (String)">
<BOUNDS height="270" left="5625" top="10980" type="Node" width="2070">
</BOUNDS>
<BOUNDS height="345" left="5625" top="10980" type="Box" width="2535">
</BOUNDS>
<PIN encoded="0" pinname="Input String" slicecount="1" visible="0" values="|[9 - Help and tutorials]&cr;&lf;There are some great tutorials to help you out if you're stuck / get curious:&cr;&lf;<ul>&cr;&lf;<li>If you want help about a node, select it with <click/><lmb/> and press <key>F1</key></li>&cr;&lf;<li>If you want to see examples of what you can do with VVVV, check the <b>girlpower</b> folder within the VVVV directory for sample patches</li>&cr;&lf;<li>Make sure to make a user on the <b>www.vvvv.org</b> website, and post your queries in the forum</li>&cr;&lf;<li>Check out West's VVVV tutorial videos on YouTube</li>&cr;&lf;</ul>|">
</PIN>
<PIN pinname="Output String" visible="0">
</PIN>
<PIN pinname="Show Grid" slicecount="1" values="0">
</PIN>
<PIN pinname="String Type" slicecount="1" values="MultiLine">
</PIN>
<PIN pinname="Font" slicecount="1" values="|Arial Black|">
</PIN>
<PIN pinname="Size" slicecount="1" values="10">
</PIN>
<PIN encoded="0" pinname="Descriptive Name" slicecount="1" values="||">
</PIN>
</NODE>
</PATCH>