1BRISTOL(1)                  General Commands Manual                 BRISTOL(1)
2
3
4

NAME

6       bristol - a synthesiser emulation package.
7

SYNOPSIS

9       startBristol -mini -jack -midi seq [options]
10

DESCRIPTION

12       bristol  is a vintage synthesiser software emulator suite. The applica‐
13       tion consists of an engine itself called bristol and a  graphical  user
14       interface  called brighton. The graphical interface is a bitmap manipu‐
15       lation library to present the diverse synth devices such as potentiome‐
16       ters,  buttons,  sliders, patch cables and which generates the messages
17       to configure the synth emulator.  The engine is an infrastructure  that
18       hosts the emulator code that couples together the different audio oper‐
19       ators required to generate the audio. The engine and  GUI  are  started
20       together  with the startBristol script which sets up the required envi‐
21       ronment for the two to connect together. It is not generally  envisaged
22       that  bristol  and  brighton  be  started outside of the script however
23       there are options to the script to only start one or the other. Bristol
24       also has a command line interface that can be used rather than the GUI.
25
26       Currently following synthesizers are emulated:
27
28       Emulations
29
30              moog mini
31              moog explorer (voyager)
32              moog voyager electric blue
33              moog memory
34              moog sonic 6
35              moog/realistic mg-1 concertmate
36              hammond module (deprecated, use -b3)
37              hammond B3 (default)$
38              sequential circuits prophet-5
39              sequential circuits prophet-5/fx
40              sequential circuits prophet-10
41              sequential circuits pro-one
42              fender rhodes mark-I stage 73
43              fender rhodes bass piano
44              crumar roadrunner electric piano
45              crumar bit 01
46              crumar bit 99
47              crumar bit + mods
48              crumar stratus synth/organ combo
49              crumar trilogy synth/organ/string combo
50              oberheim OB-X
51              oberheim OB-Xa
52              arp axxe
53              arp odyssey
54              arp 2600
55              arp/solina string ensemble
56              korg polysix
57              korg poly-800
58              korg mono/poly
59              korg ms20 (unfinished: -libtest only)
60              vox continental
61              vox continental super/300/II
62              roland juno-60
63              roland jupiter-8
64              baumann bme-700
65              bristol bassmaker sequencer
66              yamaha dx-7
67              yamaha cs-80 (unfinished)
68              commodore-64 SID chip synth
69              commodore-64 SID polyphonic synth (unfinished)
70              granular synthesiser (unfinished)
71              ems synthi-a (unfinished)
72              16 track mixer (unfinished: -libtest only)
73
74       The default connection between the engine and GUI is a TCP socket using
75       a SYSEX format message taken from MIDI. Optionally the code will use  a
76       unix  domain  socket  for  improved security. The GUI and engine do not
77       need to be resident on the  same  system  if  suitable  parameters  are
78       given, this feature requires the TCP domain sockets be used. The engine
79       can also accept requests from multiple brighton interfaces and run  all
80       the  emulators  at the same time, multitimbraly, sharing voices between
81       them and pre-empting where necessary. If  an  emulator  is  started  in
82       monophonic mode then it is preallocated a voice that will never be pre-
83       empted and which runs continuously, ie, by default it will continue  to
84       run  even when no piano keys are pressed. The polyphonic code will only
85       run the voice algorithms whilst the key gate is open,  the  gate  being
86       derived from the voice envelope state. The engine supports minimally 32
87       voices per default, if an emulator requests less then its emulation  is
88       configured  with  a  soft limit. If more are requested then more voices
89       are created however the upper limit is imposed at 128 voices.  A  voice
90       is  an  engine  structure that allows for allocation and executing, the
91       actual code run by a voice can be any of the emulator algorithms  which
92       is  how  multitimbral  operation  is  supported.  The  voice allocation
93       process is 'last note precedence' and whilst others are  available  for
94       the  monophonic  instruments,  this  is  the only polyphonic assignment
95       algorithm.
96
97       This package should be started with the startBristol script. The script
98       will  start up the bristol synthesiser binaries, evaluating the correct
99       library paths and executable paths. There  are  emulation,  synthesiser
100       and operational parameters:
101

OPTIONS

103       Emulation:
104
105              -mini              - moog mini
106              -explorer          - moog voyager
107              -voyager           - moog voyager electric blue
108              -memory            - moog memory
109              -sonic6            - moog sonic 6
110              -mg1               - moog/realistic mg-1 concertmate
111              -hammond           - hammond module (deprecated, use -b3)
112              -b3                - hammond B3 (default)
113              -prophet           - sequential circuits prophet-5
114              -pro52             - sequential circuits prophet-5/fx
115              -pro10             - sequential circuits prophet-10
116              -pro1              - sequential circuits pro-one
117              -rhodes            - fender rhodes mark-I stage 73
118              -rhodesbass        - fender rhodes bass piano
119              -roadrunner        - crumar roadrunner electric piano
120              -bitone            - crumar bit 01
121              -bit99             - crumar bit 99
122              -bit100            - crumar bit + mods
123              -stratus           - crumar stratus synth/organ combo
124              -trilogy           - crumar trilogy synth/organ/string combo
125              -obx               - oberheim OB-X
126              -obxa              - oberheim OB-Xa
127              -axxe              - arp axxe
128              -odyssey           - arp odyssey
129              -arp2600           - arp 2600
130              -solina            - arp/solina string ensemble
131              -polysix           - korg polysix
132              -poly800           - korg poly-800
133              -monopoly          - korg mono/poly
134              -ms20              - korg ms20 (unfinished: -libtest only)
135              -vox               - vox continental
136              -voxM2             - vox continental super/300/II
137              -juno              - roland juno-60
138              -jupiter           - roland jupiter-8
139              -bme700            - baumann bme-700
140              -bm                - bristol bassmaker sequencer
141              -dx                - yamaha dx-7
142              -cs80              - yamaha cs-80 (unfinished)
143              -sidney            - commodore-64 SID chip synth
144              -melbourne         - commodore-64 SID polysynth (unfinished)
145              -granular          - granular synthesiser (unfinished)
146              -aks               - ems synthi-a (unfinished)
147              -mixer             - 16 track mixer (unfinished: -libtest only)
148
149       Synthesiser:
150
151
152       -voices <n>
153              The selected emulator will start with this number of voices. The
154              engine will always create 32 voices but only allocate this  sub‐
155              set  to  the  emulator. If the selected value is greater than 32
156              then the greater number of voices is allocated.
157
158       -mono  Run the emulator in monophonic mode. This is not really an alias
159              for '-voices 1' as it additionally configures parameters such as
160              '-retrig -lvel -wwf -hnp'.   These  additional  options  can  be
161              overridden if desired.
162
163       -lnp   Select  low  note  precedence  logic. This only applies to mono‐
164              phonic synthesisers and all of the note  precedence  affect  the
165              legato playing style.
166
167       -hnp   Select  high  note  precedence logic. This only applies to mono‐
168              phonic synthesisers.
169
170       -nnp   Select no note precedence, this is the default and operates as a
171              last note precedence selection.
172
173       -retrig
174              Request  a  trigger event for each note that is played AND notes
175              that are released. The  trigger  will  cause  the  envelopes  to
176              cycle.  They  will not return to zero by default however some of
177              the emulations have that as a GUI control.   Without  this  flag
178              triggers are only sent for the first pressed note of a sequence.
179
180       -lvel  Configure  velocity inheritance for all legato notes - the first
181              note of a sequence will have a velocity value that is applied to
182              all  subsequent  notes.  This option is a toggle: applying twice
183              will disable the feature. This is important with regards to  the
184              emulators  as many of the mono synths with set lvel per default.
185              The following options may not work as expected:
186
187              startBristol -mini -lvel
188
189              The issue is that -mini enables legato  velocity  so  the  -lvel
190              switch will toggle it off again. The same applies to -retrig.
191
192       -channel <c>
193              Start the emulator to respond on this MIDI channel, default 1.
194
195       -lowkey <n>
196              Configure the lowest note for which the emulator should respond.
197              This defaults to '0' but can be used to define  key  splits  and
198              ranges for different synths.
199
200       -highkey <n>
201              Configure  the  highest  note  for  which  the  emulator  should
202              respond. This defaults to '127' but can be used  to  define  key
203              splits and ranges for different synths.
204
205       -detune <%>
206              Request  the  emulator run with a level of temperature sensitiv‐
207              ity. The default value is defined by the emulator, typically 100
208              or  200. The detune is applied to a voice at note on only and is
209              a random value within the range defined here.
210
211       -gain <gn>
212              Output signal gain level for the emulator. These can be used  to
213              normalise  the  signal  levels from different synths when played
214              together. The default value is defined by the synth itself, this
215              is an override.
216
217       -pwd <s>
218              Pitch wheel depth in semitones, default 2.
219
220       -velocity <v>
221              Velocity  curve for the emulator. Default is 520, an exponential
222              curve for a hard playing style. Value '0' is flat (no touch sen‐
223              sitivity).  Values up to 100 are linear scaled maps.  The veloc‐
224              ity map is table of points that is  interpolated  linearly:  you
225              may  only  have  to  define the inflexion points, however if you
226              want smooth curves you will have  to  define  each  of  the  128
227              velocity values that are used in noteon/noteoff events. The emu‐
228              lation  only  has  a  single  table  of  gain  levels  for  each
229              key.velocity  index,  the engine by contrast has two tables, one
230              for each on/off event however that is an integer map, not a gain
231              map.
232
233              There  are  several default tables if you do not want to specify
234              your own interpolated curve. Each table is the gain for the Midi
235              velocity  value given in the note event, it has 128 entries. The
236              following are implmented:
237
238                100-199 Convex curves for a soft touch keyboard player
239                200-499 Concave curves for a hard touch, linear up to quadrat‐
240              ic function.
241
242              The  next  set  up to 525 are repeats of the above but with less
243              granularity. In the above range the value of 200 is  linear,  as
244              is 510 below:
245
246                500-509 Convex curves for a soft touch keyboard player
247                510 linear
248                511-25 Concave curves for a hard touched player.
249
250              Then there are a couple of specific curves
251
252                550 logarithmic
253                560 parabolic
254
255              The  values  up  to 100 consists of two digit numbers. The first
256              digit defines how late the line starts (it is  linear)  to  ramp
257              up,  and  the second digit is how late it reaches 1.0. The value
258              of 09 is almost the linear mapping above as it starts from 0 and
259              ends  almost  at  the  end.  A  value of 49 would be for a heavy
260              player, it is zero for a large part of the velocity  table,  and
261              then ramps up to max gain (1.0) close the end of the table. Note
262              that these table could also have been defined  with  velocityMap
263              definitions as they are linear interpolations. A present release
264              will include curves to smooth things out a little.
265
266              Option 520 is a  squared  powercurve  and  feels  quite  natural
267              although that is very subjective. Perhaps its natural for a hard
268              player and it could be a better default than the linear curve.
269
270              The value 1000 will invert the mapping, so:
271
272                1510 - linear from 1.0 down to 0.0 as velocity increases
273                1520 - exponential, from 1.0 down to 0.0 as velocity increases
274
275              The engine mapping is applied before the emulation mapping given
276              here.  There  are  reasonable arguments to make this table loga‐
277              rithmic - you are welcome to do so. There are no limits  to  the
278              values  here  other than negative values are not mapped, so this
279              table can also be used to compensate for volume levels.
280
281
282       -glide <s>
283              Duration of nogte glide in seconds, default 5.
284
285       -emulate <name>
286              Search for the named emulator and  invoke  it,  otherwise  exit.
287              Invoking  an  emulation  this  was  is currently the default, it
288              implies extra parameters for voicecount, gain, glide, pitchwheel
289              depth,  detune,  etc.  The  default  is  hammondB3. The -emulate
290              option also implies -register to the emulator name.
291
292       -register <name>
293              Use a specific name when registering  with  Jack  and  ALSA.  By
294              default  the engine will use the name 'bristol' however this can
295              be confusing if multiple engines are being used and this can  be
296              used to override the default.
297
298       -lwf   Select lightweight filters for the emulator.
299
300       -nwf   Select  normalweight filters, the default. These are about twice
301              as expensive as lightweight filters.
302
303       -wwf   Select welterweight filters, this are again about double the CPU
304              load as the normal filters.
305
306       -hwf   Select  heavyweight filters. These are roughly twice the welter‐
307              weight filter.  Whilst their is a noticable  audible  difference
308              between  -lwf  and  -nwf, it is debatable whether the difference
309              between -nwf, -wwf and -hwf is other than  visible  in  the  CPU
310              load.  The  default filter for any -mono synth is -wwf which can
311              be overridden with something line '-mini -mono -nwf'.
312
313       -blo <h>
314              Number of bandwidth limited harmonics to map. The value of  zero
315              will select infintite bandwidth, default is 31.
316
317       -blofraction <f>
318              The engine uses precomputed tables for all frequencies where the
319              maximum harmonic does not exceed this fraction of  the  sampler‐
320              ate.  The  default,  0.8, is already above nyquist as a tradeoff
321              betweeen content and distortion. Values tending towards 1.0  are
322              heavily aliased at the higher frequencies naturally.
323
324       -scala <file>
325              The  engine  will  read the given scala file and map it into its
326              frequency tables.
327
328       User Interface:
329
330
331       -quality <n>
332              The color cache depth will affect the rendering speed. The lower
333              values  start  showing  loss of clarity, the higher values start
334              using thousands of colors which  is  where  the  performance  is
335              affected, value is bpp, default is 6.
336
337       -scale <s>
338              Each  of the emulators has a default window sisze, this size can
339              be scaled up or downwards if desired.
340
341       -width <n>
342              The pixel width defines the smaller of two sizees  that  can  be
343              configured.  It  works with the -scale and -autozoom options for
344              flipping between different sizes on  mouse  Enter/Leave  of  the
345              window.
346
347       -autozoom
348              Minimise window on exit, maximise on enter.
349
350       -raise Automatically raise the window on Enter.
351
352       -lower Automatically  lower  the window on Leave. It is noted here that
353              the use of  autozoom,  raise  and  lower  may  have  undesirable
354              effects with some window managers.
355
356       -rud   Constrain  the  rotary  controller  tracking  to  mouse  up/down
357              motion, not to actually track the mouse position. The value will
358              be a fraction of the current window size.
359
360       -antialias <%>
361              For  some  window sizes there will be pixelation of the rendered
362              imagas unless some antialias is applied. With large zoom  values
363              this  is automatically set up. Value is a percentage, default is
364              30.
365
366       -aliastype <pre/texture/all>
367              There are three antialiasing options, ´pre´ will apply it to the
368              text silkscreens, ´texture´ will apply it to the surface bitmaps
369              and ´all´ will apply it everywhere including  devices  rendered.
370              The  default  is  pre  however this parameter is only applied if
371              -antialias has a value other than zero.
372
373       -opacity <%>
374              Brighton uses a transparency layer for some features such as the
375              ARP  2600 patch cables. This is the default transparency. It can
376              be adjusted later with the ^o/^O/^t control codes  in  the  GUI.
377              Default is 50 percent.
378
379       -pixmap
380              Use  the  X11  pixmap  interface  rather than the default XImage
381              interface to the server.
382
383       -dct <ms>
384              Double click timeout for button events, etc, 250 ms.
385
386       -tracking
387              Prevent the GUI piano keyboard image from tracking MIDI  events,
388              small reduction in CPU overhead.
389
390       -keytoggle
391              The  default  GUI behaviour for tuning keys on with the mouse is
392              to latch them, this allows for playing chords on  the  polyphon‐
393              ics.  This option will disable the latch to that keys are played
394              only whilst held with the mousebutton.
395
396       -neutral
397              Initial the emulator with a null patch, all parameters will have
398              the value of zero to allow for a patch to be built from the bot‐
399              tom up, completely from scratch. This is  equivalent  to  '-load
400              -1', negative memory locations will not be saved, ie, you cannot
401              save to the null patch.
402
403       -load <m>
404              Initial memory number to load at startup. Default is 0 for  most
405              emulators.
406
407       -import <pathname>
408              Import  a  memory  from a disk file to the active patch at start
409              time. This patch can then  be  saved  to  another  location  and
410              allows for interexchange of memories.
411
412       -mbi <m>
413              The master bank index allows for access to extra memory ID. This
414              value times 1000 is added to the memory ID saved/loaded  by  the
415              GUI  so the GUI can access for example 8 banks of 8 memories but
416              using -mbi you can actually save multiple sets of 64 memories.
417
418       -activesense <ms>
419              The rate at which hello messages are sent from GUI to engine  to
420              ensure  it  is  still active. If the transmission fails then the
421              GUI will exit, if the engine does not receive  updates  it  will
422              also exit. Zero will disable active sense.
423
424       -ast <m>
425              The engine timeout period on active sense messages.
426
427       -mct <m>
428              The  MIDI  cycle  timeout  is  a busy waiting GUI timer for MIDI
429              events, used when the GUI takes  a  MIDI  interface  for  direct
430              event tracking.
431
432       -ar|-aspect
433              All  of  the  emulators will attempt to maintain an aspect ratio
434              for their windows so that they  look  'normal'.  This  conflicts
435              with some tiling window managers so can be disabled. It may also
436              cause some excessive remapping of windows when they are resized.
437
438       -iconify
439              Open the window in the iconified state.
440
441       -window
442              Do not map any window.
443
444       -cli   Enable the text based command line interface to the engine. This
445              can  be  used  in  connjuction  with -window however if compiled
446              without support for any windowing system the -window  option  is
447              implied.
448
449       -libtest
450              Do not start the engine, nor attempt to connect to it, just post
451              the GUI for testing.
452
453
454       GUI Shortcuts:
455
456              <Ctrl> 's'     - save settings to current memory
457              <Ctrl> 'l'     - (re)load current memory
458              <Ctrl> 'x'     - exchange current with previous memory
459              <Ctrl> '+'     - load next memory
460              <Ctrl> '-'     - load previous memory
461              <Ctrl> '?'     - show emulator help information
462              <Ctrl> 'h'     - show emulator help information
463              <Ctrl> 'r'     - show application readme information
464              <Ctrl> 'k'     - show keyboard shortcuts
465              <Ctrl> 'p'     - screendump to /tmp/<synth>.xpm
466              <Ctrl> 't'     - toggle opacity
467              <Ctrl> 'o'     - decrease opacity of patch layer
468              <Ctrl> 'O'     - increase opacity of patch layer
469              <Ctrl> 'w'     - display warranty
470              <Ctrl> 'g'     - display GPL (copying conditions)
471              <Shift> '+'    - increase window size
472              <Shift> '-'    - decrease window size
473              <Shift> 'Enter'- toggle window between full screen size
474              UpArrow        - controller motion up (shift key accelerator)
475              DownArrow      - controller motion down (shift key accelerator)
476              RightArrow     - more control motion up (shift accelerator)
477              LeftArrow      - more control motion down (shift accelerator)
478
479
480       Operational options:
481
482       General:
483
484
485       -engine
486              Do not start a new engine. The GUI will attempt to connect to an
487              existing  engine on the host and port configuration (cq). If the
488              connection is built then the engine will operate both  emulators
489              and  voice  allocations  will be shared amongst them. All of the
490              emulator outputs are folded back onto the  same  stereo  output,
491              excepting where extra Jack control inputs are used.
492
493       -gui   Do  not  start the GUI, only the engine. The GUI will attempt to
494              connect to the engine on the configured host and port values. If
495              it  does  not  respond  then  the GUI will exit with some rather
496              terse messaging.
497
498       -server
499              Start the engine as a permanant server that does not  exit  with
500              the last emulator.
501
502       -daemon
503              Run  the engine as a daemon with disconnected controlling termi‐
504              nal. This does not imply the -server option, nor does  it  imply
505              the  -log  option  for  logging  to the file system, nor -syslog
506              which might also be applicable to a daemon.
507
508       -watchdog <s>
509              Timeout for the audio thread initialisation. If the thread  does
510              not  activate within this period then the engine will gracefully
511              exit rather  than  wait  around  for  connections  indefinitely.
512              Default  period  is 30 seconds. This is not active in -server or
513              -daemon mode. In normal  operation  the  audio  thread  will  be
514              launched  within  a  couple of seconds but if the engine and GUI
515              are started separately then this timeout demands that a  GUI  be
516              started before the timer expires.
517
518       -log   Redirect   logging  output  to  a  file.  The  default  file  is
519              /var/log/bristol.log and /var/log/brighton.log and if  they  are
520              not  available  then  $HOME/.bristol/log  directory is used. The
521              selection of /var/log is to prevent logging to root in the event
522              that the engine is invoked by this user.
523
524       -syslog
525              Redirect logging output to syslog.
526
527       -console
528              Maintain  the  controlling  terminal  as output for logging mes‐
529              sages, remove the timestampes for readability purposes. This can
530              also   be   configured   with  the  environment  variable  BRIS‐
531              TOL_LOG_CONSOLE=true.
532
533       -rc    Do not load any bristolrc parameter file.
534
535       -exec  The final process to be requested  by  the  startBristol  script
536              will  be  called as an exec such that it maintains amongst other
537              things the PID of the parent. This option will override the exec
538              and  leave  the  script waiting for the processes to exit. There
539              implications of not using this parameter, some  of  the  cleanup
540              code  is  part  of the wrapping shellscript, per default this is
541              not called due to the exec request. This  flag  is  default  but
542              should only really be required for LADI compatibility.
543
544       -stop  Stop  all  the  running  bristol  engines.  This will indirectly
545              result in termination of any GUI due to active sensing  although
546              that  can be disabled. The use case is to stop any -server -dae‐
547              mon engines running in the  background.  The  back  end  to  the
548              option is pkill.
549
550       -exit  Stop all the running bristol engines and GUI.
551
552       -kill <-emulator>
553              Stop  all  the  running  bristol  engines and GUI that have been
554              associated with the given emulator. If bristol was started  with
555              '-mini'  it can now be killed with -mini so that other emulators
556              are not terminated. If there are multiple mini running they will
557              naturally  die  also.  If the engine is running multitimbral GUI
558              then the other associated GUI will also exit in addition to  the
559              mini.
560
561       -cache <pathname>
562              The default location for new memories and emulator profiles, the
563              default is ~/.bristol and it will be searched  before  the  sys‐
564              tem/factory default directory /usr/local/share/bristol when emu‐
565              lators are started and memories are loaded. If the pathname does
566              not exist then it is created if possible.
567
568       -memdump <pathname> [-emulate <synth>]
569              Create  the  target directory <pathname>/memory/<synth> and copy
570              first the factory default memories for the synth, then the  user
571              private  memories.  This  can be used with session management to
572              make a copy of all synth memories in a session.  If  the  target
573              directory  already exists then no copy operation takes place but
574              the directory does replace the -cache default to make  this  the
575              new  location  for saved memories for that session. The -emulate
576              option is required, if it is not provided then the default  ham‐
577              mondB3 is taken.
578
579       -debug <1-16>
580              Debug  level,  values  above 12 can be very verbose and only the
581              value 0 is arguably realtime safe as it avoids printf()  in  the
582              engine compute thread.
583
584       -readme [-<e>]
585              Display the program readme information. Show the readme for just
586              a single emulator if desired.
587
588       -glwf  Only allow the use of '-lwf' for all emulators, no overrides.
589
590       -host <hostname>
591              Connect to the engine on the  hostname,  default  is  localhost.
592              This  is  used in conjuction with -engine to distribute the GUI.
593              The hostname accepts syntax such as hostname:port  to  fix  both
594              the  host and port for a remote connection to the engine. If the
595              host portion is the token 'unix' then a local  named  socket  is
596              created  rather  than  a TCP connection. In this instance a spe‐
597              cific port number can  be  given  to  create  the  named  socket
598              /tmp/br.<port>  and  if  the port is not specified then a random
599              numeric index is chosen.
600
601       -port <p>
602              Connect to the given TCP port for GUI/engine messaging,  default
603              5028. If the port is alreeady in use then the startup with fail.
604              For starting multiple bristols with GUI then this option  should
605              be discarded and the script will look for a free port number for
606              each invocation. It is incorrect to mix this option  with  -host
607              parameters  that  take  a  value  host:port  or unix:port as the
608              results will be indeterminate depending on the order the parame‐
609              ters are submitted.
610
611       -quiet Redirect debug and diagnostic output to /dev/null.
612
613       -gmc   Open  a  MIDI  interface in the GUI. Per default the engine will
614              own the only MIDI interface for bristol  and  will  redistribute
615              events  to the GUI. It is possible to disable the forwarding and
616              attach both GUI and engine to midi devices if necessary.
617
618       -forward
619              Disable MIDI event forwarding globally. Per default  the  engine
620              opens  a  MIDI  interface  and is connected to the physical key‐
621              boards, control surfaces and/or sequencers. It will forward MIDI
622              events  to  the  GUI for tracking. This option disables the fea‐
623              ture. When disabled the GUI will not reflect the piano  keybaord
624              state,  nor will it track CC motion unless the options '-gmc' is
625              given to open a MIDI connection in the GUI  and  that  the  user
626              connects  the same control surfaces to the GUI via this alterna‐
627              tive channel. This option is logically identical to  ´-localfor‐
628              ward -remoteforward´.
629
630       -localforward
631              This  will  prevent the GUI from forwarding MIDI messages to the
632              engine. This is not to prevent MIDI message loops  as  the  for‐
633              warding only ever occurs from MIDI interfaces to TCP connections
634              between GUI and engine. This option will prevent  messages  from
635              any  surfaces  that  are connected to the GUI from forwarding to
636              the engine.
637
638       -remoteforward
639              This will prevent the engine from  forwarding  to  the  GUI  but
640              still  allow  the  GUI  to  forward to the engine. If the GUI is
641              given a MIDI connection with the -gmc option, and  control  sur‐
642              faces  are  applied  to  both processes then the -forward option
643              should be used to globally prevent event redistribution. Failure
644              to  do so will not result in loops, just one-for-one duplication
645              of events. It is possible to connect the control  surfaces  just
646              to  the  GUI when the -gmc option is used, this gives the possi‐
647              bility to have a local keyboard and GUI but drive an engine on a
648              remote  systems. Their is admittedly additional latency involved
649              with handling the MIDI messages  from  the  GUI  to  the  remote
650              engine over TCP.
651
652       -oss   Configure OSS defaults for audio and MIDI interfaces
653
654       -alsa  Configure  ALSA defaults for audio and MIDI interfaces. The MIDI
655              interface is an ALSA SEQ port.
656
657       -jack  Configure Jack defaults for audio and MIDI  interfaces.  At  the
658              time  of  writing  this  option causes some issues as it selects
659              Jack MIDI which currently requires a bridging daemon to operate.
660              The options '-jack -midi seq' would be a more typical configura‐
661              tion.
662
663       -jackstats
664              Do not request audio parameters from the jack server,  take  the
665              bristol  system defaults or the configured parameters. The bris‐
666              tol defaults will invariably fail however the call  to  bristol‐
667              jackstats  is  sometimes  superfluous  and this can speed up the
668              initial startup  times.  Using  this  parameter  will  typically
669              require that the options -rate and -count are also provided.  TP
670              -jsmuuid <UUID> This is for sole use of the Jack Session Manager
671
672       -jsmfile <path>
673              This is for sole use of the Jack Session Manager
674
675       -jsmd <ms>
676              Jack session manager delay before session events are distributed
677              internally.   Event execution is delayed in the GUI by a default
678              of 5000ms.
679
680       -session
681              Disable all session management including JSM and LADI.
682
683       -sleep <n>
684              Stall the initialisation process for 'n'  seconds.  This  is  to
685              work  around  what  appears  to be race a condition when using a
686              session manager to initialise multiple bristol clients  as  they
687              all vie for the same TCP port identifier.
688
689       -jdo   Jack Dual Open: let the audio and midi threads register as inde‐
690              pendent clients with Jack. Per default  the  audio  thread  will
691              open as a jack client and the MIDI connection is piggypbacked as
692              another port rather than as another client.
693
694       -o <filename>
695              Generate a raw audio output of the  final  stage  samples  to  a
696              file. The format will be 16bit stereo interleaved.
697
698       -nrp   Enable support for NRP events in both GUI and engine. This is to
699              be used with care as NRP  in  the  engine  can  have  unexpected
700              results.
701
702       -enrp  Enable NRP support in the engine only.
703
704       -gnrp  Enable  NRP events in the GUI. This is required to allow the GUI
705              (and hence the engine) to be driven from some MIDI control  sur‐
706              faces.
707
708       -nrpcc <n>
709              Maximum number of NRP to map. The default is 128, seen as suffi‐
710              cient for any of  the  current  emulators  but  the  mixer  will
711              require more if it is every released.
712
713
714       Audio driver:
715
716
717       -audio [oss|alsa|jack]
718              Audio  driver  overrides. Depending on the order of the switches
719              it  is  possible   to   set   a   group   of   global   defaults
720              (-jack/oss/alsa) then have specific re-selection of components.
721
722       -audiodev <dev>
723              Audio  device  name.  For Jack, this will be the name registered
724              with the Jack daemon.
725
726       -count <samples>
727              Number of samples/frames in processing period.
728
729       -outgain <gn>
730              Output signal normalisation level, per emulator default 4.
731
732       -ingain <gn>
733              Input signal normalisation level, per emulator default 4.
734
735       -preload <periods>
736              Number of audio buffers to  prewrite  to  the  audio  output  on
737              start. This is not active with the Jack drivers.
738
739       -rate <hz>
740              Sampling rate, defaults to 44100.
741
742       -priority <p>
743              Realtime  priority requested by the engine audio thread, default
744              75. Zero will disable RT processing.
745
746       -autoconn
747              Automatically connect the engine input and output to  the  first
748              Jack IO ports found. This can also be achieved with the environ‐
749              ment variable BRISTOL_AUTOCONN=true
750
751       -multi <c>
752              Multiple IO port requests, only works with  Jack  and  currently
753              only the ARP 2600 gives access to these ports.
754
755       -migc <f>
756              Input signal normalisation level for the multi IO ports.
757
758       -mogc <f>
759              Output signal normalisation level for the multi IO ports.
760
761
762       Midi driver:
763
764
765       -midi [oss|[raw]alsa|jack]
766              Audio  driver  overrides. Depending on the order of the switches
767              it  is  possible   to   set   a   group   of   global   defaults
768              (-jack/oss/alsa)  then  have specific re-selection of components
769              such as in ´-jack -midi seq´. The default MIDI driver is  '-midi
770              seq' but that can be overriden with compile time options such as
771              --enable-jack-default-midi to ./configure.
772
773       -mididev <dev>
774              MIDI device namee to be opened (OSS/ALSA).
775
776       -mididbg
777              Request MIDI level 1 debuging.
778
779       -mididbg2
780              Request MIDI level 2 debuging. Both can be selected for level 3.
781
782       -sysid <0xXXXXXXXX>
783              Configure an alternative SYSEX identifier for  the  engine.  The
784              default  is the value 0x534C6162 for historical reasons, this is
785              not a free development ID but it is not assigned so  should  not
786              cause conflict.
787
788
789       LADI driver (level 1 compliant):
790
791
792       -ladi brighton
793              Execute LADI messages in the GUI only
794
795       -ladi bristol
796              Execute LADI messages in the engine only
797
798       -ladi <memory>
799              The LADI state memory for save operations. This should be unique
800              for each LADI session.
801
802

EXAMPLES

804       startBristol -mini
805              Run a minimoog using ALSA interface for audio  and  midi  (seq).
806              The  emulator  will  default to monophonic, high note precedence
807              with retrigger and legato velocity.
808
809       startBristol -alsa
810              Run a hammondB3 using ALSA interface for audio and midi. This is
811              equivalent  to  all  the  following  options:  -b3  -audio  alsa
812              -audiodev plughw:0,0 -midi  seq  -mididev  plughw:0  -count  256
813              -preload 4 -port 5028 -voices 32 -channel 1 -rate 44100
814
815       startBristol -explorer -voices 1
816              Run  a  moog  explorer  as  a  monophonic instrument, using ALSA
817              interface for audio and midi.
818
819       startBristol -prophet -alsa -channel 3
820              Run a prophet-5 using ALSA for audio and midi (on channel 3).
821
822       startBristol -b3 -count 512 -preload 2
823              Run a hammond b3 with a 512 samples in a period, and preload two
824              such  buffers  before  going  active. Some Live! cards need this
825              larger buffer size with ALSA drivers.
826
827       startBristol -oss -audiodev /dev/dsp1 -vox -voices 8
828              Run a vox continental using  OSS  device  1,  and  default  midi
829              device  /dev/midi0.   Operate  with  just 8 voices out of the 32
830              available.
831
832       startBristol -b3 -audio alsa -audiodev plughw:0,0 -seq -mididev 128.0
833              Run a B3 emulation over the ALSA PCM plug interface,  using  the
834              ALSA sequencer over client 128, port 0.
835
836       startBristol -juno &
837
838       startBristol -prophet -channel 2 -engine
839              Start  two synthesisers, a juno and a prophet. Both synthesisers
840              will will be executed  on  one  engine  (multitimbral)  with  32
841              voices  between  them.  The juno will be on default midi channel
842              (1), and the prophet on channel 2. Output over the same  default
843              ALSA  audio  device.  The  32  voices will never all get used as
844              these emulators will run per default with a  lower  soft  limit.
845              They  can  be  run  with  more voices however that would require
846              suitable values to the -voices option.
847
848       startBristol -juno -jack -register juno -voices 32 &
849
850       startBristol -prophet -jack -register prophet -channel 2 -voices 32
851              Start two synthesisers, a juno and a  prophet5.  Each  synth  is
852              totally independent with its own GUI and own engine. Each engine
853              will register separately with the jack daemon. They will respec‐
854              tively  register  the  names  'juno' and 'prophet' with Jack and
855              ALSA so that they can be differentiated in the  respective  con‐
856              trol  programmes such as aconnect and qjackctl. The outputs will
857              be visible separately in these control programs and can thus  be
858              routed  independently.  Each  synth  can use up to 32 voices and
859              there will only be CPU contention - these  are  separate  engine
860              process with 32 voices each.
861
862

FILES

864       The  bristolrc  file  can  be  created  in  the BRISTOL_CACHE directory
865       (default  value  ${HOME}/.bristol/bristolrc)  and  the  users  prefered
866       options  placed  as the content. The file will be read as a single line
867       and incorporated onto the command lines for both bristol and  brighton.
868       There  is  an additional variable BRISTOL_RC which can point to another
869       location if necessary.  This can be used to simply the command line for
870       all  parameters  that a user provides with each invocation. The parame‐
871       ters can be all on a single line of the  file  or  one  per  line.  The
872       parameters  from  this  file  will preceed the user specified ones such
873       that the RC defaults may be overridden on the comand line.
874
875

ENVIRONMENT VARIABLES

877       BRISTOL
878              This indicates the location of the bristol installation for  the
879              binaries,  bitmaps  and related data reside. The default depends
880              on the prefix used for the system build,  /usr/local/share/bris‐
881              tol and /usr/share/bristol are typical.
882
883       BRISTOL_CACHE
884              The cache is where memories and emulator profiles (keyboard maps
885              and MIDI Continuous Controller maps) are saved. The  default  is
886              ${HOME}/.bristol
887
888       BRISTOL_RC
889              Location of the bristol runcom file.
890
891       BRISTOL_LOG_CONSOLE
892              Force  debuging  output to be sent to console without timestamp‐
893              ing, log file or syslog.
894
895       BRISTOL_AUTOCONN
896              Attempt to automatically connect the bristol  audio  inputs  and
897              outputs when using Jack.
898
899       BRISTOL_AUTO_LEFT
900              If  BRISTOL_AUTOCON  is set to anything other than '0' this will
901              be the default Jack port for the bristol  left  channel  output.
902              There is no default, if AUTOCONN has been requested this will be
903              the first jack playback channel.
904
905       BRISTOL_AUTO_RIGHT
906              If BRISTOL_AUTOCON is set to anything other than '0'  this  will
907              be  the  default Jack port for the bristol right channel output.
908              There is no default, if AUTOCONN has been requested this will be
909              the second jack playback channel.
910
911       BRISTOL_AUTO_IN
912              If  BRISTOL_AUTOCON  is set to anything other than '0' this will
913              be the default Jack port for the bristol (mono)  input  channel.
914              There  is  no default, if AUTOCONN is set this will be the first
915              jack capture channel.
916
917

AUTHOR

919       Written by Nicholas Copeland <nickycopeland@hotmail.com>
920
921

REPORTING BUGS

923       Bugs and enhancement requests can be submitted to the  bristol  project
924       page on SourceForge:
925
926       <http://sourceforge.net/tracker/?group_id=157415>
927
928
930       Copyright  © 1996,2011 Nick Copeland. License GPLv3+: GNU GPL version 3
931       or later <http://gnu.org/licenses/gpl.html>. This is free software: you
932       are  free  to  change and redistribute it. There is NO WARRANTY, to the
933       extent permitted by law.
934
935
936
937
938                                 Oct  29, 2011                      BRISTOL(1)
Impressum