1 
2 /*
3  *  Diverse Bristol audio routines.
4  *  Copyright (c) by Nick Copeland <nickycopeland@hotmail.com> 1996,2012
5  *
6  *
7  *   This program is free software; you can redistribute it and/or modify
8  *   it under the terms of the GNU General Public License as published by
9  *   the Free Software Foundation; either version 3 of the License, or
10  *   (at your option) any later version.
11  *
12  *   This program is distributed in the hope that it will be useful,
13  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *   GNU General Public License for more details.
16  *
17  *   You should have received a copy of the GNU General Public License
18  *   along with this program; if not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 char *helptext = "\nA synthesiser emulation package.\n\
23 \n\
24     You should start this package with the startBristol script. This script\n\
25     will start up the bristol synthesiser binaries evaluating the correct\n\
26     library paths and executable paths. There are emulation, synthesiser,\n\
27     operational and GUI parameters:\n\
28 \n\
29     Emulation:\n\
30 \n\
31         -mini              - moog mini\n\
32         -explorer          - moog voyager\n\
33         -voyager           - moog voyager electric blue\n\
34         -memory            - moog memory\n\
35         -sonic6            - moog sonic 6\n\
36         -mg1               - moog/realistic mg-1 concertmate\n\
37         -hammond           - hammond module (deprecated, use -b3)\n\
38         -b3                - hammond B3 (default)\n\
39         -prophet           - sequential circuits prophet-5\n\
40         -pro52             - sequential circuits prophet-5/fx\n\
41         -pro10             - sequential circuits prophet-10\n\
42         -pro1              - sequential circuits pro-one\n\
43         -rhodes            - fender rhodes mark-I stage 73\n\
44         -rhodesbass        - fender rhodes bass piano\n\
45         -roadrunner        - crumar roadrunner electric piano\n\
46         -bitone            - crumar bit 01\n\
47         -bit99             - crumar bit 99\n\
48         -bit100            - crumar bit + mods\n\
49         -stratus           - crumar stratus synth/organ combo\n\
50         -trilogy           - crumar trilogy synth/organ/string combo\n\
51         -obx               - oberheim OB-X\n\
52         -obxa              - oberheim OB-Xa\n\
53         -axxe              - arp axxe\n\
54         -odyssey           - arp odyssey\n\
55         -arp2600           - arp 2600\n\
56         -solina            - arp/solina string ensemble\n\
57         -polysix           - korg polysix\n\
58         -poly800           - korg poly-800\n\
59         -monopoly          - korg mono/poly\n\
60         -ms20              - korg ms20 (unfinished: -libtest only)\n\
61         -vox               - vox continental\n\
62         -voxM2             - vox continental super/300/II\n\
63         -juno              - roland juno-60\n\
64         -jupiter           - roland jupiter-8\n\
65         -bme700            - baumann bme-700\n\
66         -bm                - bristol bassmaker sequencer\n\
67         -dx                - yamaha dx-7\n\
68         -cs80              - yamaha cs-80 (unfinished)\n\
69         -sidney            - commodore-64 SID chip synth\n\
70         -melbourne         - commodore-64 SID polyphonic synth (unfinished)\n\
71         -granular          - granular synthesiser (unfinished)\n\
72         -aks               - ems synthi-a (unfinished)\n\
73         -mixer             - 16 track mixer (unfinished: -libtest only)\n\
74 \n\
75     Synthesiser:\n\
76 \n\
77         -voices <n>        - operate with a total of 'n' voices (32)\n\
78         -mono              - operate with a single voice (-voices 1)\n\
79         -lnp               - low note preference (-mono)\n\
80         -hnp               - high note preference (-mono)\n\
81         -nnp               - no/last note preference (-mono)\n\
82         -retrig            - monophonic note logic legato trigger (-mono)\n\
83         -lvel              - monophonic note logic legato velocity (-mono)\n\
84         -channel <c>       - initial midi channel selected to 'c' (default 1)\n\
85         -lowkey <n>        - minimum MIDI note response (0)\n\
86         -highkey <n>       - maximum MIDI note response (127)\n\
87         -detune <%>        - 'temperature sensitivity' of emulation (0)\n\
88         -gain <gn>         - emulator output signal gain (default 1)\n\
89         -pwd <s>           - pitch wheel depth (2 semitones)\n\
90         -velocity <v>      - MIDI velocity mapping curve (510) (-mvc)\n\
91         -glide <s>         - MIDI glide duration (5)\n\
92         -emulate <name>    - search for the named synth or exit\n\
93         -register <name>   - name used for jack and alsa device regisration\n\
94         -lwf               - emulator lightweight filters\n\
95         -nwf               - emulator default filters\n\
96         -wwf               - emulator welterweight filters\n\
97         -hwf               - emulator heavyweight filters\n\
98         -blo <h>           - maximum # band limited harmonics (31)\n\
99         -blofraction <f>   - band limiting nyquist fraction (0.8)\n\
100         -scala <file>      - read the scala .scl tonal mapping table\n\
101 \n\
102     User Interface:\n\
103 \n\
104         -quality <n>       - color cache depth (bbp 2..8) (6)\n\
105         -grayscale <n>     - color or BW display (0..5) (0 = color)\n\
106         -antialias <n>     - antialias depth (0..100%) (30)\n\
107         -aliastype <s>     - antialias type (pre/texture/all)\n\
108         -opacity <n>       - opacity of the patch layer 20..100% (50)\n\
109         -scale <s>         - initial windowsize, fs = fullscreen (1.0)\n\
110         -width <n>         - the pixel width of the GUI window\n\
111         -autozoom          - flip between min and max window on Enter/Leave\n\
112         -raise             - disable auto raise on max resize\n\
113         -lower             - disable auto lower on min resize\n\
114         -rud               - constrain rotary tracking to up/down\n\
115         -pixmap            - use the pixmap interface rather than ximage\n\
116         -dct <ms>          - double click timeout (250 ms)\n\
117         -tracking          - disable MIDI keyboard latching state\n\
118         -keytoggle         - disable MIDI \n\
119         -load <m>          - load memory number 'm' (default 0)\n\
120         -neutral           - initialise the emulator with a 'null' patch\n\
121         -import <pathname> - import memory from file into synth\n\
122         -mbi <m>           - master bank index (0)\n\
123         -activesense <m>   - active sense rate (2000 ms)\n\
124         -ast <m>           - active sense timeout (15000 ms)\n\
125         -mct <m>           - midi cycle timeout (50 ms)\n\
126         -ar|-aspect        - ignore emulator requested aspect ratio\n\
127         -iconify           - start with iconified window\n\
128         -window            - toggle switch to enable X11 window interfacen\n\
129         -cli               - enable command line interface\n\
130         -libtest           - gui test option, engine not invoked\n\
131 \n\
132         Gui keyboard shortcuts:\n\
133 \n\
134             <Ctrl> 's'     - save settings to current memory\n\
135             <Ctrl> 'l'     - (re)load current memory\n\
136             <Ctrl> 'x'     - exchange current with previous memory\n\
137             <Ctrl> '+'     - load next memory\n\
138             <Ctrl> '-'     - load previous memory\n\
139             <Ctrl> '?'     - show emulator help information\n\
140             <Ctrl> 'h'     - show emulator help information\n\
141             <Ctrl> 'r'     - show application readme information\n\
142             <Ctrl> 'k'     - show keyboard shortcuts\n\
143             <Ctrl> 'p'     - screendump to /tmp/<synth>.xpm\n\
144             <Ctrl> 't'     - toggle opacity\n\
145             <Ctrl> 'o'     - decrease opacity of patch layer\n\
146             <Ctrl> 'O'     - increase opacity of patch layer\n\
147             <Ctrl> 'w'     - display warranty\n\
148             <Ctrl> 'g'     - display GPL (copying conditions)\n\
149             <Shift> '+'    - increase window size\n\
150             <Shift> '-'    - decrease window size\n\
151             <Shift> 'Enter'- toggle window between full screen size\n\
152             'UpArrow'      - controller motion up (shift key accelerator)\n\
153             'DownArrow'    - controller motion down (shift key accelerator)\n\
154             'RightArrow'   - more controller motion up (shift key accelerator)\n\
155             'LeftArrow'    - more controller motion down (shift key accelerator)\n\
156 \n\
157     Operational:\n\
158 \n\
159         General:\n\
160 \n\
161             -engine        - don't start engine (connect to existing engine)\n\
162             -gui           - don't start gui (only start engine)\n\
163             -server        - run engine as a permanant server\n\
164             -daemon        - run engine as a detached permanant server\n\
165             -watchdog <s>  - audio thread initialisation timeout (30s)\n\
166             -log           - redirect diagnostic to $HOME/.bristol/log\n\
167             -syslog        - redirect diagnostic to syslog\n\
168             -console       - log all messages to console (must be 1st option)\n\
169             -exec          - run all subprocesses in background\n\
170             -stop          - terminate all bristol engines\n\
171             -exit          - terminate all bristol engines and GUI\n\
172             -kill <-emu>   - terminate all bristol processes emulating -emu\n\
173             -cache <path>  - memory and profile cache location (~/.bristol)\n\
174             -memdump <path>- copy full set of memories to <path>, with -emulate\n\
175             -debug <1-16>  - debuging level (0)\n\
176             -readme [-<e>] - show readme [for emulator <e>] to console\n\
177             -glwf          - global lightweight filters - no overrides\n\
178             -host <h>      - connect to engine on host 'h' (localhost)\n\
179             -port <p>      - connect to engine on TCP port 'p' (default 5028)\n\
180             -quiet         - redirect diagnostic output to /dev/null\n\
181             -gmc           - open a MIDI connection to the brighton GUI\n\
182             -oss           - use OSS defaults for audio and MIDI\n\
183             -alsa          - use ALSA defaults for audio and MIDI (default)\n\
184             -jack          - use Jack defaults for audio and MIDI\n\
185             -jackstats     - avoid use of bristoljackstats\n\
186             -jsmuuid <UUID>- jack session unique identifier\n\
187             -jsmfile <path>- jack session setting path\n\
188             -jsmd <ms>     - jack session file load delay (5000)\n\
189             -sleep <n>     - delay init for 'n' seconds (jsm patch)\n\
190             -session       - disable session management\n\
191             -jdo           - use separate Jack clients for audio and MIDI\n\
192             -osc           - use OSC for control interface (unfinished)\n\
193             -forward       - disable MIDI event forwarding globally\n\
194             -localforward  - disable emulator gui->engine event forwarding\n\
195             -remoteforward - disable emulator engine->gui event forwarding\n\
196             -o <filename>  - Duplicate raw audio output data to file\n\
197             -nrp           - enable NPR support globally\n\
198             -enrp          - enable NPR/DE support in engine\n\
199             -gnrp          - enable NPR/RP/DE support in GUI\n\
200             -nrpcc <n>     - size of NRP controller table (128)\n\
201 \n\
202         Audio driver:\n\
203 \n\
204             -audio [oss|alsa|jack] - audio driver selection (alsa)\n\
205             -audiodev <dev>        - audio device selection\n\
206             -count <samples>       - sample period count (256)\n\
207             -outgain <gn>          - digital output signal gain (default 4)\n\
208             -ingain <gn>           - digital input signal gain (default 4)\n\
209             -preload <periods>     - configure preload buffer count (default 4)\n\
210             -rate <hz>             - sample rate (44100)\n\
211             -priority <p>          - audio RT priority, 0=no realtime (75)\n\
212             -autoconn              - attempt jack port auto-connect\n\
213             -multi <c>             - register 'c' IO channels (jack only)\n\
214             -migc <f>              - multi IO input gain scaling (jack only)\n\
215             -mogc <f>              - multi IO output gain scaling (jack only)\n\
216 \n\
217         Midi driver:\n\
218 \n\
219             -midi [oss|[raw]alsa|jack] - midi driver selection (alsa)\n\
220             -mididev <dev>             - midi device selection\n\
221             -seq                       - use the ALSA SEQ interface (default)\n\
222             -mididbg                   - midi debug-1 enable\n\
223             -mididbg2                  - midi debug-2 enable\n\
224             -sysid                     - MIDI SYSEX system identifier\n\
225 \n\
226         LADI driver (level 1 compliant):\n\
227 \n\
228             -ladi brighton             - only execute LADI in GUI\n\
229             -ladi bristol              - only execute LADI in engine\n\
230             -ladi <memory>             - LADI state memory index (1024)\n\
231 \n\
232     Audio drivers are PCM/PCM_plug or Jack. Midi drivers are either OSS/ALSA\n\
233     rawmidi interface, or ALSA SEQ. Multiple GUIs can connect to the single\n\
234     audio engine which then operates multitimbrally.\n\
235 \n\
236     The LADI interfaces does not use a state file but a memory in the normal\n\
237     memory locations. This should typically be outside of the range of the\n\
238     select buttons for the synth and the default of 1024 is taken for this\n\
239     reason.\n\
240 \n\
241     Examples:\n\
242 \n\
243     startBristol\n\
244 \n\
245         Print a terse help message.\n\
246 \n\
247     startBristol -v -h\n\
248 \n\
249         Hm, if you're reading this you found these switches already.\n\
250 \n\
251     startBristol -mini\n\
252 \n\
253         Run a minimoog using ALSA interface for audio and midi seq. This is\n\
254         equivalent to all the following options:\n\
255         -mini -alsa -audiodev plughw:0,0 -midi seq -count 256 -preload 8 \n\
256         -port 5028 -voices 32 -channel 1 -rate 44100 -gain 4 -ingain 4\n\
257 \n\
258     startBristol -alsa -mini\n\
259 \n\
260         Run a minimoog using ALSA interface for audio and midi. This is\n\
261         equivalent to all the following options:\n\
262         -mini -audio alsa -audiodev plughw:0,0 -midi alsa -mididev hw:0\n\
263         -count 256 -preload 8 -port 5028 -voices 32 -channel 1 -rate 44100\n\
264 \n\
265     startBristol -explorer -voices 1 -oss\n\
266 \n\
267         Run a moog explorer as a monophonic instrument, using OSS interface for\n\
268         audio and midi.\n\
269 \n\
270     startBristol -prophet -channel 3\n\
271 \n\
272         Run a prophet-5 using ALSA for audio and midi on channel 3.\n\
273 \n\
274     startBristol -b3 -count 512 -preload 2\n\
275 \n\
276         Run a hammond b3 with a buffer size of 512 samples, and preload two \n\
277         such buffers before going active. Some Live! cards need this larger\n\
278         buffer size with ALSA drivers.\n\
279 \n\
280     startBristol -oss -audiodev /dev/dsp1 -vox -voices 8\n\
281 \n\
282         Run a vox continental using OSS device 1, and default midi device\n\
283         /dev/midi0. Operate with just 8 voices.\n\
284 \n\
285     startBristol -b3 -audio alsa -audiodev plughw:0,0 -seq -mididev 128.0\n\
286 \n\
287         Run a B3 emulation over the ALSA PCM plug interface, using the ALSA\n\
288         sequencer over client 128, port 0.\n\
289 \n\
290     startBristol -juno &\n\
291     startBristol -prophet -channel 2 -engine\n\
292 \n\
293         Start two synthesisers, a juno and a prophet. Both synthesisers will\n\
294         will be executed on one engine (multitimbral) with 32 voices between \n\
295         them. The juno will be on default midi channel (1), and the prophet on\n\
296         channel 2. Output over the same default ALSA audio device.\n\
297 \n\
298     startBristol -juno &\n\
299     startBristol -port 5029 -audio oss -audiodev /dev/dsp1 -mididev /dev/midi1\n\
300 \n\
301         Start two synthesisers, a juno on the first ALSA soundcard, and a\n\
302         mini on the second OSS soundcard. Each synth is totally independent\n\
303         and runs with 32 voice polyphony (looks nice, not been tested).\n\
304 \n\
305 The location of the bristol binaries can be specified in the BRISTOL\n\
306 environment variable. Private memory and MIDI controller mapping files can\n\
307 be found in the directory BRISTOL_CACHE and defaults to $HOME/.bristol\n\
308 \n\
309 Setting the environment variable BRISTOL_LOG_CONSOLE to any value will result\n\
310 in the bristol logging output going to your console window without formatted\n\
311 timestamps\n\
312 \n\
313 Korg Inc. of Japan is the rightful owner of the Korg and Vox trademarks, and\n\
314 the Polysix, Mono/Poly, Poly-800, MS-20 and Continental tradenames. Their own\n\
315 Vintage Collection provides emulations for a selection of their classic\n\
316 synthesiser range, this product is in no manner related to Korg other than\n\
317 giving homage to their great instruments.\n\
318 \n\
319 Bristol is in no manner associated with any of the original manufacturers of\n\
320 any of the emulated instruments. All names and trademarks are property of\n\
321 their respective owners.\n\
322 \n\
323     author:   Nick Copeland\n\
324     email:    nickycopeland@hotmail.com\n\
325 \n\
326     http://bristol.sourceforge.net\n\
327 \n\
328 ";
329 
330 char *gplnotice = "\
331 Copyright (c) by Nick Copeland <nickycopeland@hotmail.com> 1996,2012\n\
332 This program comes with ABSOLUTELY NO WARRANTY; for details type `<Ctrl> w'.\n\
333 This is free software, and you are welcome to redistribute it\n\
334 under certain conditions; type `<Ctrl> g' for details of GPL terms.\n";
335 
336 char *gplwarranty = "\
337 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\n\
338 EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n\
339 PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR\n\
340 IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\n\
341 AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND\n\
342 PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU\n\
343 ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n";
344 
345 char *gplconditions = "\n\
346 The following are terms and conditions of the GNU General Public License. For\n\
347 full details please see <http://www.gnu.org/licenses/>\n\n\
348 4. Conveying Verbatim Copies.\n\
349 \n\
350 You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.\n\
351 \n\
352 You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.\n\
353 5. Conveying Modified Source Versions.\n\
354 \n\
355 You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:\n\
356 \n\
357     * a) The work must carry prominent notices stating that you modified it, and giving a relevant date.\n\
358     * b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.\n\
359     * c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.\n\
360     * d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.\n\
361 \n\
362 A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.\n\
363 6. Conveying Non-Source Forms.\n\
364 \n\
365 You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:\n\
366 \n\
367     * a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.\n\
368     * b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.\n\
369     * c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.\n\
370     * d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.\n\
371     * e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.\n\
372 \n\
373 A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.\n\
374 \n\
375 A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.\n\
376 \n\
377 “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.\n\
378 \n\
379 If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).\n\
380 \n\
381 The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.\n\
382 \n\
383 Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.\n\n";
384 
385 char *summarytext = "\
386 arp2600 \
387 axxe \
388 bassmaker \
389 bitone \
390 bit99 \
391 bit100 \
392 BME700 \
393 dx \
394 explorer \
395 hammondB3 \
396 juno \
397 jupiter8 \
398 memoryMoog \
399 mini \
400 monopoly \
401 obx \
402 obxa \
403 odyssey \
404 poly \
405 poly800 \
406 pro1 \
407 prophet \
408 prophet10 \
409 prophet52 \
410 realistic \
411 rhodes \
412 rhodesbass \
413 roadrunner \
414 sidney \
415 solina \
416 sonic6 \
417 stratus \
418 trilogy \
419 vox \
420 voxM2 \
421 voyager \
422 ";
423 
424 char *oldsummarytext = "\
425 arp2600 \
426 axxe \
427 b3 \
428 bm \
429 bme700 \
430 bit1 \
431 bit99 \
432 bit100 \
433 dx \
434 explorer \
435 juno \
436 jupiter \
437 mg1 \
438 memoryMoog \
439 mini \
440 monopoly \
441 obx \
442 obxa \
443 odyssey \
444 poly800 \
445 polysix \
446 pro1 \
447 pro10 \
448 pro5 \
449 pro52 \
450 rhodes \
451 rhodesbass \
452 roadrunner \
453 sidney \
454 solina \
455 sonic6 \
456 stratus \
457 trilogy \
458 vox \
459 voxm2 \
460 voyager \
461 ";
462 
463 char *summarytextu = "\
464 mini \
465 explorer \
466 voyager \
467 memory \
468 sonic6 \
469 mg1 \
470 b3 \
471 prophet \
472 pro52 \
473 pro10 \
474 pro1 \
475 rhodes \
476 rhodesbass \
477 roadrunner \
478 bitone \
479 bit99 \
480 bit100 \
481 stratus \
482 trilogy \
483 obx \
484 obxa \
485 axxe \
486 odyssey \
487 arp2600 \
488 solina \
489 polysix \
490 poly800 \
491 monopoly \
492 vox \
493 voxm2 \
494 juno \
495 jupiter \
496 bme700 \
497 bm \
498 dx \
499 sidney \
500 ";
501 
502