diff --git a/pd/doc/5.reference/array-object-help.txt b/pd/doc/5.reference/array-object-help.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f7fe2464d1b1c0f97bab61b41acbd76952ee7248
--- /dev/null
+++ b/pd/doc/5.reference/array-object-help.txt
@@ -0,0 +1,100 @@
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0.00666678
+0.060001
+0.173336
+0.540009
+-0.0266671
+-0.20667
+-0.406674
+-0.713345
+-0.833347
+-0.933349
+-1.04668
+-0.980017
+-0.800014
+-0.686678
+-0.526676
+-0.443341
+-0.360006
+-0.20667
+-0.140002
+-0.0733346
+-0.00666678
+0.060001
+0.173336
+0.313339
+0.400007
+0.433341
+0.39334
+0.293338
+0.18667
+0.0800014
+0.0400007
+0.060001
+0.0733346
+0.0933349
+0.113335
+0.126669
+0.100002
+0.0666678
+0.0400007
+0.0200003
+0.0200003
+-0.0400007
+-0.0266671
+-0.00666678
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
diff --git a/pd/doc/5.reference/help-intro.pd b/pd/doc/5.reference/help-intro.pd
index 1315f27c576bb25cb4ca18fa0ee485da4872a338..094111c7a4fe87454978c7c9469e6d9ce2732358 100644
--- a/pd/doc/5.reference/help-intro.pd
+++ b/pd/doc/5.reference/help-intro.pd
@@ -1,367 +1,411 @@
-#N canvas 14 5 569 440 12;
+#N struct ;
+#N canvas 355 59 579 812 12;
 #X declare;
 #X obj 24 150 bang;
 #X text 124 150 - output a bang message;
-#X obj 24 180 float;
-#X text 124 180 - store and recall a number;
-#X obj 24 210 symbol;
-#X text 124 210 - store and recall a symbol;
-#X obj 24 240 int;
-#X text 124 240 - store and recall an integer;
-#X obj 24 270 send;
-#X text 124 270 - send a message to a named object;
-#X obj 24 300 receive;
-#X text 124 300 - catch "sent" messages;
-#X obj 24 330 select;
-#X text 124 330 - test for matching numbers or symbols;
-#X obj 24 360 route;
-#X text 124 360 - route messages according to first element;
-#X obj 24 390 pack;
-#X text 124 390 - make compound messages;
-#X obj 24 420 unpack;
-#X text 124 420 - get elements of compound messages;
-#X obj 24 450 trigger;
-#X text 124 450 - sequence and convert messagess;
-#X obj 24 480 spigot;
-#X text 124 480 - interruptible message connection;
-#X obj 24 510 moses;
-#X text 124 510 - part a numeric stream;
-#X obj 24 540 until;
-#X text 124 540 - looping mechanism;
-#X obj 24 570 print;
-#X text 124 570 - print out messages;
-#X obj 24 600 makefilename;
-#X text 145 601 - format a symbol with a variable field;
-#X obj 24 630 change;
-#X text 124 630 - remove repeated numbers from a stream;
-#X obj 24 660 swap;
-#X text 124 660 - swap two numbers;
-#X obj 24 690 value;
-#X text 124 690 - shared numeric value;
-#X obj 19 751 delay;
-#X text 119 751 - send a message after a time delay;
-#X obj 19 781 metro;
-#X text 119 781 - send a message periodically;
-#X obj 19 811 line;
-#X text 119 811 - send a series of linearly stepped numbers;
-#X obj 19 841 timer;
-#X text 119 841 - measure time intervals;
-#X obj 19 871 cputime;
-#X text 119 871 - measure CPU time;
-#X obj 19 901 realtime;
-#X text 119 901 - measure real time;
-#X obj 19 931 pipe;
-#X text 119 931 - dynamically growable delay line for numbers;
-#X text 209 990 - arithmetic;
-#X text 210 1013 - relational tests;
-#X text 189 1037 - bit twiddling;
-#X obj 20 1066 mtof;
-#X obj 20 1088 ftom;
-#X obj 61 1066 powtodb;
-#X obj 129 1065 rmstodb;
-#X obj 61 1087 dbtopow;
-#X obj 129 1087 dbtorms;
-#X text 211 1079 - convert acoustical units;
-#X obj 19 1111 mod;
-#X obj 50 1111 div;
-#X obj 81 1111 sin;
-#X obj 112 1111 cos;
-#X obj 143 1111 tan;
-#X obj 19 1132 atan;
-#X obj 59 1132 atan2;
-#X obj 108 1132 sqrt;
-#X obj 148 1132 log;
-#X obj 179 1132 exp;
-#X obj 210 1132 abs;
-#X text 250 1123 - higher math;
-#X obj 19 1155 random;
-#X text 119 1155 - lower math;
-#X obj 19 1178 max;
-#X obj 51 1178 min;
-#X text 119 1178 - greater or lesser of 2 numbers;
-#X obj 19 1201 clip;
-#X text 119 1201 - force a number into a range;
-#X obj 16 1261 notein;
-#X obj 75 1261 ctlin;
-#X obj 126 1261 pgmin;
-#X obj 176 1261 bendin;
-#X obj 235 1261 touchin;
-#X obj 16 1284 polytouchin;
-#X obj 120 1284 midiin;
-#X obj 179 1284 sysexin;
-#X text 318 1273 - MIDI input;
-#X obj 19 1317 noteout;
-#X obj 87 1317 ctlout;
-#X obj 147 1317 pgmout;
-#X obj 206 1317 bendout;
-#X obj 19 1338 touchout;
-#X obj 97 1338 polytouchout;
-#X obj 210 1338 midiout;
-#X text 318 1327 - MIDI output;
-#X obj 20 1370 makenote;
-#X obj 19 1402 stripnote;
-#X text 112 1403 - strip "note off" messages;
-#X obj 17 1441 tabread;
-#X text 117 1441 - read a number from a table;
-#X obj 17 1463 tabread4;
-#X text 117 1463 - read a number from a table;
-#X obj 17 1485 tabwrite;
-#X text 117 1485 - write a number to a table;
-#X obj 17 1508 soundfiler;
-#X text 117 1508 - read and write tables to soundfiles;
-#X obj 19 1558 loadbang;
-#X text 119 1558 - bang on load;
-#X obj 19 1584 serial;
-#X text 119 1584 - serial device control for NT only;
-#X obj 19 1612 netsend;
-#X text 119 1612 - send messages over the internet;
-#X obj 19 1633 netreceive;
-#X text 119 1633 - receive them;
-#X obj 19 1663 qlist;
-#X text 119 1663 - message sequencer;
-#X obj 19 1693 textfile;
-#X text 119 1693 - file to message converter;
-#X obj 19 1723 openpanel;
-#X text 119 1723 - "Open" dialog;
-#X obj 19 1746 savepanel;
-#X text 119 1746 - "Save as" dialog;
-#X obj 19 1783 bag;
-#X text 119 1783 - set of numbers;
-#X obj 19 1813 poly;
-#X text 119 1813 - polyphonic voice allocation;
-#X obj 19 1843 key;
-#X obj 53 1843 keyup;
-#X text 119 1843 - numeric key values from keyboard;
-#X obj 19 1866 keyname;
-#X text 119 1866 - symbolic key name;
-#X text 144 1960 - arithmetic on audio signals;
-#X text 116 1992 - maximum or minimum of 2 inputs;
-#X obj 16 2022 clip~;
-#X text 116 2022 - constrict signal to lie between two bounds;
-#X obj 16 2052 q8_rsqrt~;
-#X text 116 2052 - cheap reciprocal square root (beware -- 8 bits!)
+#X obj 24 174 float;
+#X text 124 174 - store and recall a number;
+#X obj 24 198 symbol;
+#X text 124 198 - store and recall a symbol;
+#X obj 24 222 int;
+#X text 124 222 - store and recall an integer;
+#X obj 24 246 send;
+#X text 124 246 - send a message to a named object;
+#X obj 24 270 receive;
+#X text 124 270 - catch "sent" messages;
+#X obj 24 294 select;
+#X text 124 294 - test for matching numbers or symbols;
+#X obj 24 318 route;
+#X text 124 318 - route messages according to first element;
+#X obj 24 342 pack;
+#X text 124 342 - make compound messages;
+#X obj 24 366 unpack;
+#X text 124 366 - get elements of compound messages;
+#X obj 24 390 trigger;
+#X text 124 390 - sequence and convert messagess;
+#X obj 24 414 spigot;
+#X text 124 414 - interruptible message connection;
+#X obj 24 438 moses;
+#X text 124 438 - part a numeric stream;
+#X obj 24 462 until;
+#X text 124 462 - looping mechanism;
+#X obj 24 486 print;
+#X text 124 486 - print out messages;
+#X obj 24 510 makefilename;
+#X text 145 511 - format a symbol with a variable field;
+#X obj 24 534 change;
+#X text 124 534 - remove repeated numbers from a stream;
+#X obj 24 559 swap;
+#X text 124 559 - swap two numbers;
+#X obj 24 583 value;
+#X text 124 583 - shared numeric value;
+#X obj 22 660 delay;
+#X text 122 660 - send a message after a time delay;
+#X obj 22 684 metro;
+#X text 122 684 - send a message periodically;
+#X obj 22 708 line;
+#X text 122 708 - send a series of linearly stepped numbers;
+#X obj 22 732 timer;
+#X text 122 732 - measure time intervals;
+#X obj 22 756 cputime;
+#X text 122 756 - measure CPU time;
+#X obj 22 780 realtime;
+#X text 122 780 - measure real time;
+#X obj 22 804 pipe;
+#X text 122 804 - dynamically growable delay line for numbers;
+#X text 212 860 - arithmetic;
+#X text 213 883 - relational tests;
+#X text 255 908 - bit twiddling;
+#X obj 23 936 mtof;
+#X obj 23 958 ftom;
+#X obj 64 936 powtodb;
+#X obj 132 935 rmstodb;
+#X obj 64 957 dbtopow;
+#X obj 132 957 dbtorms;
+#X text 214 949 - convert acoustical units;
+#X obj 22 981 mod;
+#X obj 53 981 div;
+#X obj 84 981 sin;
+#X obj 115 981 cos;
+#X obj 146 981 tan;
+#X obj 22 1003 atan;
+#X obj 62 1003 atan2;
+#X obj 111 1003 sqrt;
+#X obj 151 1003 log;
+#X obj 182 1003 exp;
+#X obj 213 1003 abs;
+#X text 253 993 - higher math;
+#X obj 22 1025 random;
+#X text 122 1025 - lower math;
+#X obj 22 1048 max;
+#X obj 54 1048 min;
+#X text 122 1048 - greater or lesser of 2 numbers;
+#X obj 22 1071 clip;
+#X text 122 1071 - force a number into a range;
+#X obj 23 1142 notein;
+#X obj 82 1142 ctlin;
+#X obj 133 1142 pgmin;
+#X obj 183 1142 bendin;
+#X obj 242 1142 touchin;
+#X obj 310 1142 polytouchin;
+#X obj 24 1166 midiin;
+#X obj 85 1166 sysexin;
+#X text 412 1158 - MIDI input;
+#X obj 22 1198 noteout;
+#X obj 90 1198 ctlout;
+#X obj 150 1198 pgmout;
+#X obj 209 1198 bendout;
+#X obj 22 1220 touchout;
+#X obj 100 1220 polytouchout;
+#X obj 213 1220 midiout;
+#X text 321 1208 - MIDI output;
+#X obj 22 1251 makenote;
+#X obj 22 1275 stripnote;
+#X text 114 1277 - strip "note off" messages;
+#X obj 25 1369 tabread;
+#X text 125 1369 - read a number from a table;
+#X obj 25 1392 tabread4;
+#X text 125 1392 - read a number from a table;
+#X obj 25 1415 tabwrite;
+#X text 125 1415 - write a number to a table;
+#X obj 25 1439 soundfiler;
+#X text 125 1439 - read and write tables to soundfiles;
+#X obj 25 1552 loadbang;
+#X text 125 1552 - bang on load;
+#X obj 25 1585 netsend;
+#X text 125 1585 - send messages over the internet;
+#X obj 25 1608 netreceive;
+#X text 125 1608 - receive them;
+#X obj 25 1639 qlist;
+#X text 125 1639 - message sequencer;
+#X text 125 1663 - file to message converter;
+#X obj 25 1721 openpanel;
+#X text 125 1721 - "Open" dialog;
+#X obj 25 1744 savepanel;
+#X text 125 1744 - "Save as" dialog;
+#X obj 25 1781 bag;
+#X text 125 1781 - set of numbers;
+#X obj 25 1811 poly;
+#X text 125 1811 - polyphonic voice allocation;
+#X obj 25 1841 key;
+#X obj 59 1841 keyup;
+#X text 125 1841 - numeric key values from keyboard;
+#X obj 25 1864 keyname;
+#X text 125 1864 - symbolic key name;
+#X text 154 1973 - arithmetic on audio signals;
+#X text 126 2003 - maximum or minimum of 2 inputs;
+#X obj 26 2031 clip~;
+#X text 126 2031 - constrict signal to lie between two bounds;
+#X obj 26 2134 wrap~;
+#X obj 26 2162 fft~;
+#X text 126 2162 - complex forward discrete Fourier transform;
+#X obj 26 2184 ifft~;
+#X text 126 2184 - complex inverse discrete Fourier transform;
+#X obj 26 2214 rfft~;
+#X text 126 2214 - real forward discrete Fourier transform;
+#X obj 26 2236 rifft~;
+#X text 126 2236 - real inverse discrete Fourier transform;
+#X obj 26 2290 framp~;
+#X text 126 2290 - output a ramp for each block;
+#X obj 26 2320 mtof~;
+#X obj 77 2320 ftom~;
+#X obj 127 2320 rmstodb~;
+#X obj 205 2320 dbtorms~;
+#X text 284 2320 - acoustic conversions;
+#X obj 26 2378 dac~;
+#X text 126 2378 - audio output;
+#X obj 26 2402 adc~;
+#X text 126 2402 - audio input;
+#X obj 26 2426 sig~;
+#X text 126 2426 - convert numbers to audio signals;
+#X obj 26 2450 line~;
+#X text 126 2450 - generate audio ramps;
+#X obj 26 2474 vline~;
+#X text 126 2474 - deluxe line~;
+#X obj 26 2522 snapshot~;
+#X text 126 2522 - sample a signal (convert it back to a number);
+#X obj 26 2546 vsnapshot~;
+#X text 126 2546 - deluxe snapshot~;
+#X obj 26 2570 bang~;
+#X text 126 2570 - send a bang message after each DSP block;
+#X obj 26 2594 samplerate~;
+#X text 126 2594 - get the sample rate;
+#X obj 26 2618 send~;
+#X text 126 2618 - nonlocal signal connection with fanout;
+#X obj 26 2642 receive~;
+#X text 126 2642 - get signal from send~;
+#X obj 26 2666 throw~;
+#X text 126 2666 - add to a summing bus;
+#X obj 26 2690 catch~;
+#X text 126 2690 - define and read a summing bus;
+#X obj 26 2714 block~;
+#X text 126 2714 - specify block size and overlap;
+#X obj 26 2738 switch~;
+#X text 126 2738 - switch DSP computation on and off;
+#X obj 26 2762 readsf~;
+#X text 126 2762 - soundfile playback from disk;
+#X obj 26 2786 writesf~;
+#X text 126 2786 - record sound to disk;
+#X obj 23 2848 phasor~;
+#X text 123 2848 - sawtooth oscillator;
+#X obj 23 2872 cos~;
+#X text 123 2872 - cosine;
+#X obj 23 2896 osc~;
+#X text 123 2896 - cosine oscillator;
+#X obj 23 2920 tabwrite~;
+#X text 123 2920 - write to a table;
+#X obj 23 2944 tabplay~;
+#X text 123 2944 - play back from a table (non-transposing);
+#X obj 23 2968 tabread~;
+#X text 123 2968 - non-interpolating table read;
+#X obj 23 2992 tabread4~;
+#X text 123 2992 - four-point interpolating table read;
+#X obj 23 3016 tabosc4~;
+#X text 123 3016 - wavetable oscillator;
+#X obj 23 3040 tabsend~;
+#X text 123 3040 - write one block continuously to a table;
+#X obj 23 3064 tabreceive~;
+#X text 123 3064 - read one block continuously from a table;
+#X text 18 3099 -------------------- AUDIO FILTERS ------------------------
 ;
-#X obj 16 2074 q8_sqrt~;
-#X text 116 2074 - cheap square root (beware -- 8 bits!);
-#X obj 16 2104 wrap~;
-#X obj 16 2134 fft~;
-#X text 116 2134 - complex forward discrete Fourier transform;
-#X obj 16 2156 ifft~;
-#X text 116 2156 - complex inverse discrete Fourier transform;
-#X obj 16 2186 rfft~;
-#X text 116 2186 - real forward discrete Fourier transform;
-#X obj 16 2208 rifft~;
-#X text 116 2208 - real inverse discrete Fourier transform;
-#X obj 16 2262 framp~;
-#X text 116 2262 - output a ramp for each block;
-#X obj 16 2292 mtof~;
-#X obj 67 2292 ftom~;
-#X obj 117 2292 rmstodb~;
-#X obj 195 2292 dbtorms~;
-#X obj 273 2292 rmstopow~;
-#X obj 359 2292 powtorms~;
-#X text 448 2293 - acoustic conversions;
-#X obj 20 2355 dac~;
-#X text 120 2355 - audio output;
-#X obj 20 2385 adc~;
-#X text 120 2385 - audio input;
-#X obj 20 2415 sig~;
-#X text 120 2415 - convert numbers to audio signals;
-#X obj 20 2445 line~;
-#X text 120 2445 - generate audio ramps;
-#X obj 20 2475 vline~;
-#X text 120 2475 - deluxe line~;
-#X obj 20 2535 snapshot~;
-#X text 120 2535 - sample a signal (convert it back to a number);
-#X obj 20 2565 vsnapshot~;
-#X text 120 2565 - deluxe snapshot~;
-#X obj 20 2595 bang~;
-#X text 120 2595 - send a bang message after each DSP block;
-#X obj 20 2625 samplerate~;
-#X text 120 2625 - get the sample rate;
-#X obj 20 2655 send~;
-#X text 120 2655 - nonlocal signal connection with fanout;
-#X obj 20 2685 receive~;
-#X text 120 2685 - get signal from send~;
-#X obj 20 2715 throw~;
-#X text 120 2715 - add to a summing bus;
-#X obj 20 2745 catch~;
-#X text 120 2745 - define and read a summing bus;
-#X obj 20 2775 block~;
-#X text 120 2775 - specify block size and overlap;
-#X obj 20 2805 switch~;
-#X text 120 2805 - switch DSP computation on and off;
-#X obj 20 2835 readsf~;
-#X text 120 2835 - soundfile playback from disk;
-#X obj 20 2865 writesf~;
-#X text 120 2865 - record sound to disk;
-#X obj 17 2927 phasor~;
-#X text 117 2927 - sawtooth oscillator;
-#X obj 17 2957 cos~;
-#X text 117 2957 - cosine;
-#X obj 17 2987 osc~;
-#X text 117 2987 - cosine oscillator;
-#X obj 17 3017 tabwrite~;
-#X text 117 3017 - write to a table;
-#X obj 17 3047 tabplay~;
-#X text 117 3047 - play back from a table (non-transposing);
-#X obj 17 3077 tabread~;
-#X text 117 3077 - non-interpolating table read;
-#X obj 17 3107 tabread4~;
-#X text 117 3107 - four-point interpolating table read;
-#X obj 17 3137 tabosc4~;
-#X text 117 3137 - wavetable oscillator;
-#X obj 17 3167 tabsend~;
-#X text 117 3167 - write one block continuously to a table;
-#X obj 17 3197 tabreceive~;
-#X text 117 3197 - read one block continuously from a table;
-#X text 18 3228 -------------------- AUDIO FILTERS ------------------------
+#X obj 24 3129 vcf~;
+#X text 124 3129 - voltage controlled filter;
+#X obj 24 3153 noise~;
+#X text 124 3153 - white noise generator;
+#X obj 24 3177 env~;
+#X text 124 3177 - envelope follower;
+#X obj 24 3201 hip~;
+#X text 124 3201 - high pass filter;
+#X obj 24 3225 lop~;
+#X text 124 3225 - low pass filter;
+#X obj 24 3249 bp~;
+#X text 124 3249 - band pass filter;
+#X obj 24 3273 biquad~;
+#X text 124 3273 - raw filter;
+#X obj 24 3297 samphold~;
+#X text 124 3297 - sample and hold unit;
+#X obj 24 3321 print~;
+#X text 124 3321 - print out one or more "blocks";
+#X obj 24 3345 rpole~;
+#X text 124 3345 - raw real-valued one-pole filter;
+#X obj 24 3369 rzero~;
+#X text 124 3369 - raw real-valued one-zero filter;
+#X obj 24 3393 rzero_rev~;
+#X text 127 3393 - time-reversed;
+#X obj 24 3417 cpole~;
+#X obj 83 3417 czero~;
+#X text 220 3417 - corresponding complex-valued filters;
+#X text 18 3455 -------------------- AUDIO DELAY ------------------------
 ;
-#X obj 18 3258 vcf~;
-#X text 118 3258 - voltage controlled filter;
-#X obj 18 3288 noise~;
-#X text 118 3288 - white noise generator;
-#X obj 18 3318 env~;
-#X text 118 3318 - envelope follower;
-#X obj 18 3348 hip~;
-#X text 118 3348 - high pass filter;
-#X obj 18 3378 lop~;
-#X text 118 3378 - low pass filter;
-#X obj 18 3408 bp~;
-#X text 118 3408 - band pass filter;
-#X obj 18 3438 biquad~;
-#X text 118 3438 - raw filter;
-#X obj 18 3468 samphold~;
-#X text 118 3468 - sample and hold unit;
-#X obj 18 3498 print~;
-#X text 118 3498 - print out one or more "blocks";
-#X obj 18 3528 rpole~;
-#X text 118 3528 - raw real-valued one-pole filter;
-#X obj 18 3558 rzero~;
-#X text 118 3558 - raw real-valued one-zero filter;
-#X obj 18 3588 rzero_rev~;
-#X text 121 3588 - time-reversed;
-#X obj 18 3618 cpole~;
-#X obj 77 3618 czero~;
-#X text 214 3618 - corresponding complex-valued filters;
-#X text 18 3648 -------------------- AUDIO DELAY ------------------------
+#X obj 24 3479 delwrite~;
+#X text 124 3479 - write to a delay line;
+#X obj 24 3503 delread~;
+#X text 124 3503 - read from a delay line;
+#N canvas 0 50 450 300 (subpatch) 0;
+#X restore 25 3577 pd;
+#X text 125 3577 - define a subwindow;
+#X obj 25 1463 table;
+#X obj 25 3601 inlet;
+#X text 125 3601 - add an inlet to a pd;
+#X obj 25 3625 outlet;
+#X text 125 3625 - add an outlet to a pd;
+#X obj 25 3649 inlet~;
+#X obj 85 3649 outlet~;
+#X obj 24 3728 struct;
+#X text 124 3728 - define a data structure;
+#X obj 24 3752 drawcurve;
+#X obj 112 3752 filledcurve;
+#X text 225 3752 - draw a curve;
+#X obj 24 3776 drawpolygon;
+#X obj 129 3776 filledpolygon;
+#X text 259 3776 - draw a polygon;
+#X obj 24 3800 plot;
+#X text 124 3800 - plot an array field;
+#X obj 24 3824 drawnumber;
+#X text 124 3824 - print a numeric value;
+#X obj 25 3888 pointer;
+#X text 125 3888 - point to an object belonging to a template;
+#X obj 25 3912 get;
+#X text 125 3912 - get numeric fields;
+#X obj 25 3936 set;
+#X text 125 3936 - change numeric fields;
+#X obj 25 3960 element;
+#X text 125 3960 - get an array element;
+#X obj 25 3984 getsize;
+#X text 125 3984 - get the size of an array;
+#X obj 25 4008 setsize;
+#X text 125 4008 - change the size of an array;
+#X obj 25 4032 append;
+#X text 125 4032 - add an element to a list;
+#X obj 30 4404 scalar;
+#X text 131 4432 (use tabwrite~ now);
+#X obj 31 4457 namecanvas;
+#X obj 142 3417 czero_rev~;
+#X obj 26 2498 threshold~;
+#X text 126 2498 - detect signal thresholds;
+#X text 21 1943 ---------------------- AUDIO MATH -----------------------
 ;
-#X obj 18 3678 delwrite~;
-#X text 118 3678 - write to a delay line;
-#X obj 18 3708 delread~;
-#X text 118 3708 - read from a delay line;
-#X obj 18 3738 vd~;
-#X text 118 3738 - read from a delay line at a variable delay time
+#X text 18 1520 --------------------- MISC ----------------------;
+#X text 20 831 ------------------------- MATH -----------------;
+#X text 20 630 ------------------------- TIME --------------------------
 ;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X restore 18 3798 pd;
-#X text 118 3798 - define a subwindow;
-#X obj 18 3828 table;
-#X text 118 3828 - array of numbers in a subwindow;
-#X obj 18 3858 inlet;
-#X text 118 3858 - add an inlet to a pd;
-#X obj 18 3888 outlet;
-#X text 118 3888 - add an outlet to a pd;
-#X obj 18 3918 inlet~;
-#X obj 78 3918 outlet~;
-#X obj 18 3978 struct;
-#X text 118 3978 - define a data structure;
-#X obj 18 4008 drawcurve;
-#X obj 106 4008 filledcurve;
-#X text 219 4008 - draw a curve;
-#X obj 18 4038 drawpolygon;
-#X obj 123 4038 filledpolygon;
-#X text 253 4038 - draw a polygon;
-#X obj 18 4068 plot;
-#X text 118 4068 - plot an array field;
-#X obj 18 4098 drawnumber;
-#X text 118 4098 - print a numeric value;
-#X obj 18 4158 pointer;
-#X text 118 4158 - point to an object belonging to a template;
-#X obj 18 4188 get;
-#X text 118 4188 - get numeric fields;
-#X obj 18 4218 set;
-#X text 118 4218 - change numeric fields;
-#X obj 18 4248 element;
-#X text 118 4248 - get an array element;
-#X obj 18 4278 getsize;
-#X text 118 4278 - get the size of an array;
-#X obj 18 4308 setsize;
-#X text 118 4308 - change the size of an array;
-#X obj 18 4338 append;
-#X text 118 4338 - add an element to a list;
-#X obj 18 4368 sublist;
-#X obj 14 4449 scalar;
-#X text 104 4448 - draw a scalar on parent;
-#X obj 15 4479 scope~;
-#X text 115 4479 (use tabwrite~ now);
-#X obj 15 4509 namecanvas;
-#X obj 15 4539 template;
-#X text 115 4539 (use struct now);
-#X obj 136 3618 czero_rev~;
-#X text 20 2324 ------------- AUDIO GLUE ----------------------------
+#X text 17 3553 ------------------------ SUBWINDOWS ------------------------
 ;
-#X obj 20 2505 threshold~;
-#X text 120 2505 - detect signal thresholds;
-#X text 16 1930 ---------------------- AUDIO MATH -----------------------
+#X text 18 3698 ---------------------- DATA TEMPLATES ----------------------
 ;
-#X text 17 1419 --------------------- TABLES -------------------------
+#X text 18 3858 ---------------------- ACCESSING DATA ----------------------
 ;
-#X text 18 1539 --------------------- MISC ----------------------;
-#X text 20 961 ------------------------- MATH -----------------;
-#X text 19 721 ------------------------- TIME --------------------------
+#X text 17 2818 ------------ AUDIO OSCILLATORS AND TABLES -------------
 ;
-#X text 17 1242 ------------------------ MIDI -------------------------
+#X obj 67 2003 min~;
+#X obj 26 2003 max~;
+#X obj 22 884 ==;
+#X obj 54 884 !=;
+#X obj 86 884 >;
+#X obj 118 884 <;
+#X obj 149 884 >=;
+#X obj 180 884 <=;
+#X text 27 4377 ------------------------ OBSOLETE --------------------------
 ;
-#X text 24 120 --------------- GLUE ----------------;
-#X text 18 3768 ------------------------ SUBWINDOWS ------------------------
+#X obj 54 861 -;
+#X obj 87 861 *;
+#X obj 119 861 /;
+#X obj 152 861 pow;
+#X obj 22 861 +;
+#X obj 22 907 &;
+#X obj 54 907 &&;
+#X obj 86 907 |;
+#X obj 118 907 ||;
+#X obj 149 907 %;
+#X obj 26 1973 +~;
+#X obj 58 1973 -~;
+#X obj 89 1973 *~;
+#X obj 121 1973 /~;
+#X obj 25 1893 declare;
+#X text 125 1893 - set search path and/or load libraries;
+#X text 163 3650 - signal versions;
+#X obj 22 1094 wrap;
+#X text 121 1094 - wrap a number to range [0 \, 1);
+#X text 126 2132 - wraparound (fractional part);
+#X obj 25 2264 pow~;
+#X obj 69 2264 log~;
+#X obj 113 2264 exp~;
+#X text 207 2266 - math;
+#X obj 159 2265 abs~;
+#X text 24 120 --------------- GENERAL ----------------;
+#X obj 24 607 list;
+#X text 124 607 - manipulate lists;
+#X text 112 1249 - schedule delayed "note off" message for a note-on
 ;
-#X text 18 3948 ---------------------- DATA TEMPLATES ----------------------
+#X obj 25 1487 array;
+#X text 127 1462 - create a named table;
+#X text 26 2347 ------------- GENERAL AUDIO MANIPULATION --------------
 ;
-#X text 18 4128 ---------------------- ACCESSING DATA ----------------------
+#X text 125 1687 - general text handling;
+#X text 128 1489 - general array creation and manipulation;
+#X text 17 1343 ----------------- ARRAYS/TABLES -------------------
 ;
-#X text 17 2897 ------------ AUDIO OSCILLATORS AND TABLES -------------
+#X text 130 4403 - create a single scalar;
+#X text 130 4458 (potentially dangerous but no substitute exists yet)
 ;
-#X obj 57 1992 min~;
-#X obj 16 1992 max~;
-#X obj 19 1014 ==;
-#X obj 51 1014 !=;
-#X obj 83 1014 >;
-#X obj 115 1014 <;
-#X obj 146 1014 >=;
-#X obj 177 1014 <=;
-#X text 18 4410 ------------------------ OBSOLETE --------------------------
-;
-#X obj 51 991 -;
-#X obj 84 991 *;
-#X obj 116 991 /;
-#X obj 149 991 pow;
-#X obj 19 991 +;
-#X obj 19 1037 &;
-#X obj 47 1037 &&;
-#X obj 74 1038 |;
-#X obj 102 1038 ||;
-#X obj 129 1038 %;
-#X obj 16 1960 +~;
-#X obj 48 1960 -~;
-#X obj 79 1960 *~;
-#X obj 111 1960 /~;
-#X obj 19 1895 declare;
-#X text 119 1895 - set search path and/or load libraries;
-#X text 156 3919 - signal versions;
 #X text 23 22 The following is a list of built-in objects in Pd. (Not
 included in this list are messages \, atoms \, graphs \, etc. which
 aren't typed into object boxes but come straight off the "add" menu.)
-Right-click (or double-click on a Macintosh) on any object to get its
-"help window".;
-#X text 118 4368 - get a pointer into a list within a scalar;
-#X obj 19 1224 wrap;
-#X text 118 1224 - wrap a number to range [0 \, 1);
-#X text 116 2104 - wraparound (fractional part);
-#X obj 15 2236 pow~;
-#X obj 59 2236 log~;
-#X obj 103 2236 exp~;
-#X text 197 2238 - math;
-#X obj 149 2237 abs~;
-#X text 109 1368 - schedule delayed "note off" message corresponding
-to a note-on;
+Right-click (or control-click on a Macintosh) on any object to get
+its "help window".;
+#X msg 31 4430 scope~;
+#X msg 31 4482 template;
+#X text 130 4483 (use struct now);
+#X obj 25 1663 textfile;
+#X obj 25 1687 text;
+#X obj 180 907 <<;
+#X obj 211 907 >>;
+#X obj 26 2056 sqrt~;
+#X text 17 1115 ------------------- MIDI and OSC------------------------
+;
+#X obj 22 1302 oscparse;
+#X obj 21 1326 oscformat;
+#X text 113 1303 - OSC messages to Pd lists;
+#X text 113 1326 - Pd lists to OSC messages;
+#X text 19 4088 -------- "EXTRA" (patches and externs in pd/extra)
+---------;
+#X obj 27 4117 sigmund~;
+#X text 127 4117 - pitch tracker;
+#X obj 27 4142 bonk~;
+#X text 127 4142 - attack detector;
+#X obj 27 4167 choice;
+#X text 127 4167 - best match of list to templates;
+#X obj 27 4191 hilbert~;
+#X obj 105 4191 complex-mod~;
+#X text 219 4192 - phase quadrature / frequency shifting;
+#X text 196 4218 - C-style expressions (control and signal);
+#X obj 77 4217 expr~;
+#X obj 27 4216 expr;
+#X obj 130 4217 fexpr~;
+#X obj 27 4243 loop~;
+#X text 123 4246 - phasor~ with S/H on its frequency input;
+#X obj 27 4268 lrshift~;
+#X text 123 4271 - left and right shift (useful with FFT objects);
+#X obj 28 4294 pd~;
+#X text 125 4292 - run another copy of Pd (for multiprocessing);
+#X obj 28 4321 rev1~;
+#X obj 80 4321 rev2~;
+#X obj 129 4321 rev3~;
+#X text 189 4321 - reverberators;
+#X obj 61 4294 stdout;
+#X obj 28 4348 bob~;
+#X text 124 4350 - Moog resonant filter model;
+#X text 118 3676 - make copies of a subpatch;
+#X obj 26 3676 clone;
+#X obj 157 1167 midirealtimein;
+#X obj 301 1169 midiclkin;
+#X text 124 3530 - read with a time-varying delay time;
+#X obj 24 3530 vd~;
+#X obj 26 2081 rsqrt~;
+#X text 115 2055 - approximate (16-bit) square root;
+#X text 125 2083 - reciprocal square root;
+#X obj 25 2105 q8_sqrt~;
+#X obj 110 2106 q8_rsqrt~;
+#X text 218 2106 - fast \, cheap 8 bits versions;
+#X obj 25 4056 sublist;
+#X text 125 4056 - get a pointer into a list within a scalar;
diff --git a/pd/doc/5.reference/metro.pd b/pd/doc/5.reference/metro.pd
index f848e5820e52b2a8d49a8097cdbd2b0d9b3869a5..6732d1cae597d0402f569263c8fd5f8a95ee27fd 100644
--- a/pd/doc/5.reference/metro.pd
+++ b/pd/doc/5.reference/metro.pd
@@ -1,29 +1,46 @@
-#N canvas 39 7 634 372 12;
-#X text 19 36 The metro object sends a series of bangs at a constant rate. The right inlet takes the value in milliseconds between each bang. The left inlet takes a 1 or 0 \, turning the metronome on or off.;
-#X obj 67 285 + 1;
-#X obj 32 284 int;
-#X floatatom 32 317 4 0 0;
-#X obj 32 243 metro 500;
-#X obj 5 6 metro;
-#X floatatom 81 220 4 0 0;
-#X text 104 282 These objects work together as a counter. For each bang sent by metro \, the output adds 1;
-#X obj 32 103 loadbang;
+#N canvas 19 47 645 526 12;
+#X obj 32 291 metro 500;
+#X obj 70 9 metro;
+#X floatatom 101 268 4 0 0 0 - - -, f 4;
 #X msg 32 125 1;
 #X text 92 135 nonzero number or "bang" to start;
 #X msg 49 172 0;
 #X msg 38 148 bang;
 #X msg 49 194 stop;
 #X text 99 181 zero or "stop" to stop.;
-#X text 351 332 Updated for Pd version 0.33;
-#X text 130 220 right inlet sets the rate in msec per tick.;
-#X text 127 243 creation argument initializes rate in msec;
-#X connect 1 0 2 1;
-#X connect 2 0 3 0;
-#X connect 2 0 1 0;
-#X connect 4 0 2 0;
-#X connect 6 0 4 1;
-#X connect 8 0 9 0;
-#X connect 9 0 4 0;
-#X connect 11 0 4 0;
-#X connect 12 0 4 0;
-#X connect 13 0 4 0;
+#X text 150 268 right inlet sets the rate in msec per tick.;
+#X text 377 471 Updated for Pd version 0.45;
+#X text 121 8 - metronome;
+#X text 23 35 The metro object sends a series of bangs at regular time
+intervals. The right inlet takes the value in milliseconds between
+each bang. The left inlet takes a 1 or 0 \, turning the metronome on
+or off.;
+#X obj 32 317 bng 25 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X text 116 292 <-- optional creation arguments:;
+#X text 165 311 - delay time (float);
+#X text 166 329 - tempo (float) and time unit (symbol) as in "tempo"
+message, f 31;
+#X msg 51 220 tempo 2 msec;
+#X text 165 219 set tempo in units of miliseconds (msec for short)
+\, seconds (sec) \, minutes (min) or samples (samp)., f 51;
+#X text 79 472 see also:;
+#X obj 173 470 timer;
+#X text 41 373 for example \, a metronome at intervals of one beat
+at 120 beats per minute:, f 37;
+#X obj 360 395 metro 1 120 permin;
+#X obj 360 373 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 360 420 bng 25 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 220 435 delay;
+#X text 50 428 for details on tempo setting \, see:, f 20;
+#X connect 0 0 13 0;
+#X connect 2 0 0 1;
+#X connect 3 0 0 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 17 0 0 0;
+#X connect 22 0 24 0;
+#X connect 23 0 22 0;
diff --git a/pd/doc/5.reference/oscformat-help.pd b/pd/doc/5.reference/oscformat-help.pd
new file mode 100644
index 0000000000000000000000000000000000000000..3693bb59af553f75b903ced8a4923cd59eed873b
--- /dev/null
+++ b/pd/doc/5.reference/oscformat-help.pd
@@ -0,0 +1,79 @@
+#N canvas 48 64 758 768 12;
+#X text 36 11 oscformat - convert lists to Open Sound Control (OSC)
+packets, f 61;
+#X msg 72 560 format b;
+#X msg 72 147 1 2 3;
+#X obj 72 268 oscformat cat horse pig;
+#X msg 94 203 set dog ferret;
+#X msg 92 230 set mouse banana;
+#X obj 180 302 oscparse;
+#X obj 72 301 print packet;
+#X msg 80 174 4 5 weasel 6 7 rat;
+#X obj 148 661 oscparse;
+#X obj 148 686 print parse-output;
+#X obj 42 662 print packet;
+#X msg 57 507 -1 1 2 mule 4 5;
+#X msg 69 605 format ifisf;
+#X obj 42 635 oscformat -f b wombat;
+#X msg 45 479 5 6 7 squirrel;
+#X msg 70 582 format fiiib;
+#X text 270 266 creation arguments are OSC address;
+#X text 138 137 OSC messages with numbers and symbols. Except as shown
+below the message will contain 'float' and 'string' data.;
+#X msg 342 379 disconnect;
+#X obj 334 406 netsend -u -b;
+#X msg 343 355 connect localhost 5000;
+#X obj 335 305 list prepend send;
+#X obj 335 330 list trim;
+#X obj 180 327 print reassembled;
+#X text 25 736 see also:;
+#X text 381 733 updated for Pd version 0.46;
+#X obj 267 736 list;
+#X obj 113 736 oscparse;
+#X obj 197 736 netsend;
+#X text 29 45 oscformat makes OSC packets suitable for sending over
+the network via netsend (in UDP binary mode). The OSC address (the
+strings between the slashes) are given by the creation arguments or
+by "set" messages. Incoming lists are output as OSC messages \, byte
+by byte., f 61;
+#X text 437 379 don't send;
+#X text 226 205 set message to change OSC address;
+#X text 232 632 the '-f' creation argument initializes the format;
+#X msg 73 535 format;
+#X text 142 535 no format;
+#X text 150 558 a 'blob';
+#X text 180 593 mixtures;
+#X text 530 354 send as UDP;
+#X text 258 452 The format \, if any (initialized or set by a 'format'
+message) instructs oscformat to interpret incoming data as integer
+\, float \, string \, or 'blob'. Blobs are given as an atom count followed
+by that number of elements. (If an elements is a symbol \, its first
+byte is sent). If the count is negative \, the entire remaining message
+is included in the blob (but the OSC parser will report the actual
+number of elements). If the elements aren't exhausted at the end of
+the format string \, the default (float and symbol) conversions are
+made for the rest.;
+#X text 306 666 Note: there's no way using oscparse to distinguish
+between floats and integers \, nor to see blobs unambiguously., f
+40;
+#X connect 1 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 7 0;
+#X connect 3 0 22 0;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 5 0 3 0;
+#X connect 6 0 24 0;
+#X connect 8 0 3 0;
+#X connect 9 0 10 0;
+#X connect 12 0 14 0;
+#X connect 13 0 14 0;
+#X connect 14 0 11 0;
+#X connect 14 0 9 0;
+#X connect 15 0 14 0;
+#X connect 16 0 14 0;
+#X connect 19 0 20 0;
+#X connect 21 0 20 0;
+#X connect 22 0 23 0;
+#X connect 23 0 20 0;
+#X connect 34 0 14 0;
diff --git a/pd/doc/5.reference/oscparse-help.pd b/pd/doc/5.reference/oscparse-help.pd
new file mode 100644
index 0000000000000000000000000000000000000000..d0c7843635cd28c92aa518e54ca795b4da5d890a
--- /dev/null
+++ b/pd/doc/5.reference/oscparse-help.pd
@@ -0,0 +1,53 @@
+#N canvas 3 69 706 702 12;
+#X obj 171 576 oscparse;
+#X text 52 663 see also:;
+#X obj 140 663 oscformat;
+#X obj 224 663 netreceive;
+#X text 435 666 updated for Pd version 0.46;
+#X obj 171 599 print parse-output;
+#X obj 314 663 list;
+#X obj 419 521 netreceive -u -b;
+#X msg 419 466 listen 5000;
+#X msg 431 494 listen 0;
+#X text 520 493 stop listening;
+#X msg 57 471 1 2 3 foo 5;
+#X text 51 446 numbers and symbols;
+#X obj 57 496 oscformat dog cat;
+#X obj 222 496 oscformat -f b weasel;
+#X msg 222 471 -1 1 2 3 4 5;
+#X obj 57 576 print packet;
+#X text 234 445 a blob;
+#X text 416 442 packets from network;
+#X text 521 466 slisten on port 5000;
+#X text 558 521 UDP packets \, binary output, f 13;
+#X text 45 41 oscparse take incoming lists of numbers \, interpreting
+them as the bytes in an OSC message. The output is a list containing
+\, first \, the symbols making up the address of the OSC packet \,
+and following that \, numbers and symbols as present in the OSC message.
+OSC messages may contain 'float' \, 'int' \, 'string' \, or 'blob'
+elements. Blobs are arrays of bytes (numbers between 0 and 255) and
+are copied to the output preceded by the blob's byte count.;
+#X text 80 11 oscparse - parse Open Sound Control (OSC) packets into
+Pd messages, f 67;
+#X text 44 187 OSC is a complicated networking protocol (FUDI \, as
+used in netsend/netreceive is simpler and better but less widely used).
+oscparse and oscformat make no attempt to deal with timetags or aggregates
+of packets \, nor with streaming OSC. Also \, no attempt is made here
+to clearly distinguish between the OSC address (symbols) and the following
+data \, nor between blobs and lists of numbers - it is assumed that
+you know what types the message should contain. You can alternatively
+use the OSC objects from mrpeach which have more features than these.
+;
+#X text 42 356 OSC messages may be combined in "bundles". If oscparse
+receives a bundle it simply parses all the messages in the bundle in
+the order they appear \, and ignores the bundle's time tag.;
+#X connect 0 0 5 0;
+#X connect 7 0 0 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 0;
+#X connect 11 0 13 0;
+#X connect 13 0 0 0;
+#X connect 13 0 16 0;
+#X connect 14 0 0 0;
+#X connect 14 0 16 0;
+#X connect 15 0 14 0;
diff --git a/pd/nw/index.js b/pd/nw/index.js
index d9f6f6331345eeb602fe2a5dfa40dc6f25780b02..9d69b385ec05affde6bd427127b3f994faa7e094 100644
--- a/pd/nw/index.js
+++ b/pd/nw/index.js
@@ -664,6 +664,11 @@ function nw_create_pd_window_menus(gui, w) {
     minit(m.help.browser, {
         click: pdgui.open_search
     });
+    minit(m.help.intro, {
+        click: function() {
+            pdgui.pd_doc_open("doc/5.reference", "help-intro.pd");
+        }
+    });
     minit(m.help.l2ork_list, {
         click: function() {
             pdgui.external_doc_open("http://disis.music.vt.edu/listinfo/l2ork-dev");
diff --git a/pd/nw/locales/de/translation.json b/pd/nw/locales/de/translation.json
index 6432255b3e44ab252ff7aa1373d3055f0e610a83..a7108e59f5695d09bee73d539d786f7d561c7f93 100644
--- a/pd/nw/locales/de/translation.json
+++ b/pd/nw/locales/de/translation.json
@@ -241,6 +241,8 @@
     "manual_tt": "Öffne das Pd-HTML-Handbuch",
     "browser": "Hilfe-Browser",
     "browser_tt": "Öffne einen Hilfe-Browser, um nach Dokumentation und Objekten zu suchen",
+    "intro": "Schnellreferenz",
+    "intro_tt": "Öffne einen Hilfe-Patch mit einer Liste der wichtigsten Pd-Objekte",
     "l2ork_list": "Pd-L2Ork-Mailing-Liste",
     "l2ork_list_tt": "Öffne einen Link zur Pd-L2Ork-Mailing-Liste im Browser",
     "pd_list": "Pure Data-Mailing-Liste",
diff --git a/pd/nw/locales/en/translation.json b/pd/nw/locales/en/translation.json
index 4f27fa6aacdd5334d40b83ca9eafcfa35c1e2198..85024b356f00d0a53c01b5d4f375a8087b16facf 100644
--- a/pd/nw/locales/en/translation.json
+++ b/pd/nw/locales/en/translation.json
@@ -241,6 +241,8 @@
     "manual_tt": "Open the HTML manual for Pd",
     "browser": "Help Browser",
     "browser_tt": "Open a help browser to search for documentation and objects",
+    "intro": "Quick Reference",
+    "intro_tt": "Open a help patch listing Pd's most essential objects",
     "l2ork_list": "Pd-L2ork Mailing List",
     "l2ork_list_tt": "Open a link in a browser for Pd-L2ork Mailing List",
     "pd_list": "Pure Data Mailing Lists",
diff --git a/pd/nw/pd_canvas.js b/pd/nw/pd_canvas.js
index 0cf4f270df43d8f4481c270422fdc2e90ec51633..936c99cd3edd7b3a2f7f676b47fe90327cfe3655 100644
--- a/pd/nw/pd_canvas.js
+++ b/pd/nw/pd_canvas.js
@@ -1431,6 +1431,11 @@ function nw_create_patch_window_menus(gui, w, name) {
     minit(m.help.browser, {
         click: pdgui.open_search
     });
+    minit(m.help.intro, {
+        click: function() {
+            pdgui.pd_doc_open("doc/5.reference", "help-intro.pd");
+        }
+    });
     minit(m.help.l2ork_list, {
         click: function() {
             pdgui.external_doc_open("http://disis.music.vt.edu/listinfo/l2ork-dev");
diff --git a/pd/nw/pd_menus.js b/pd/nw/pd_menus.js
index 60fb5cf4e02b090eb27630d1ece8ba509dfb95a5..e864e5fcbb36f90ca76c0ec61e0afe7a4228a7e3 100644
--- a/pd/nw/pd_menus.js
+++ b/pd/nw/pd_menus.js
@@ -546,7 +546,7 @@ function create_menu(gui, type) {
     }));
     help_menu.append(m.help.manual = new gui.MenuItem({
         label: l("menu.manual"),
-        tooltip: l("menu.manual")
+        tooltip: l("menu.manual_tt")
     }));
     help_menu.append(m.help.browser = new gui.MenuItem({
         label: l("menu.browser"),
@@ -554,6 +554,10 @@ function create_menu(gui, type) {
         modifiers: cmd_or_ctrl,
         tooltip: l("menu.browser_tt")
     }));
+    help_menu.append(m.help.intro = new gui.MenuItem({
+        label: l("menu.intro"),
+        tooltip: l("menu.intro_tt")
+    }));
     help_menu.append(new gui.MenuItem({ type: "separator" }));
     help_menu.append(m.help.l2ork_list = new gui.MenuItem({
         label: l("menu.l2ork_list"),