Provided by: bristol_0.60.11-2_amd64 bug

NAME

       bristol - a synthesiser emulation package.

SYNOPSIS

       startBristol -mini -jack -midi seq [options]

DESCRIPTION

       bristol  is  a vintage synthesiser software emulator suite. The application consists of an
       engine itself called bristol and a graphical user interface called brighton. The graphical
       interface  is  a  bitmap manipulation library to present the diverse synth devices such as
       potentiometers, buttons, sliders,  patch  cables  and  which  generates  the  messages  to
       configure  the  synth  emulator.   The engine is an infrastructure that hosts the emulator
       code that couples together the different audio operators required to generate  the  audio.
       The  engine  and  GUI  are started together with the startBristol script which sets up the
       required environment for the two to connect together. It is not generally  envisaged  that
       bristol  and  brighton  be  started outside of the script however there are options to the
       script to only start one or the other. Bristol also has a command line interface that  can
       be used rather than the GUI.

       Currently following synthesizers are emulated:

       Emulations

              moog mini
              moog explorer (voyager)
              moog voyager electric blue
              moog memory
              moog sonic 6
              moog/realistic mg-1 concertmate
              hammond module (deprecated, use -b3)
              hammond B3 (default)$
              sequential circuits prophet-5
              sequential circuits prophet-5/fx
              sequential circuits prophet-10
              sequential circuits pro-one
              fender rhodes mark-I stage 73
              fender rhodes bass piano
              crumar roadrunner electric piano
              crumar bit 01
              crumar bit 99
              crumar bit + mods
              crumar stratus synth/organ combo
              crumar trilogy synth/organ/string combo
              oberheim OB-X
              oberheim OB-Xa
              arp axxe
              arp odyssey
              arp 2600
              arp/solina string ensemble
              korg polysix
              korg poly-800
              korg mono/poly
              korg ms20 (unfinished: -libtest only)
              vox continental
              vox continental super/300/II
              roland juno-60
              roland jupiter-8
              baumann bme-700
              bristol bassmaker sequencer
              yamaha dx-7
              yamaha cs-80 (unfinished)
              commodore-64 SID chip synth
              commodore-64 SID polyphonic synth (unfinished)
              granular synthesiser (unfinished)
              ems synthi-a (unfinished)
              16 track mixer (unfinished: -libtest only)

       The  default  connection  between  the engine and GUI is a TCP socket using a SYSEX format
       message taken from MIDI. Optionally the code will use a unix domain  socket  for  improved
       security.  The  GUI  and  engine do not need to be resident on the same system if suitable
       parameters are given, this feature requires the TCP domain sockets be used. The engine can
       also  accept  requests  from multiple brighton interfaces and run all the emulators at the
       same time, multitimbraly, sharing voices between them and pre-empting where necessary.  If
       an  emulator is started in monophonic mode then it is preallocated a voice that will never
       be pre-empted and which runs continuously, ie, by default it will  continue  to  run  even
       when  no  piano  keys  are pressed. The polyphonic code will only run the voice algorithms
       whilst the key gate is open, the gate being derived from the  voice  envelope  state.  The
       engine  supports  minimally  32  voices per default, if an emulator requests less then its
       emulation is configured with a soft limit. If more are  requested  then  more  voices  are
       created  however  the upper limit is imposed at 128 voices. A voice is an engine structure
       that allows for allocation and executing, the actual code run by a voice can be any of the
       emulator algorithms which is how multitimbral operation is supported. The voice allocation
       process is 'last note precedence' and whilst  others  are  available  for  the  monophonic
       instruments, this is the only polyphonic assignment algorithm.

       This  package should be started with the startBristol script. The script will start up the
       bristol synthesiser binaries, evaluating the correct library paths and  executable  paths.
       There      are      emulation,      synthesiser      and      operational      parameters:

OPTIONS

       Emulation:

              -mini              - moog mini
              -explorer          - moog voyager
              -voyager           - moog voyager electric blue
              -memory            - moog memory
              -sonic6            - moog sonic 6
              -mg1               - moog/realistic mg-1 concertmate
              -hammond           - hammond module (deprecated, use -b3)
              -b3                - hammond B3 (default)
              -prophet           - sequential circuits prophet-5
              -pro52             - sequential circuits prophet-5/fx
              -pro10             - sequential circuits prophet-10
              -pro1              - sequential circuits pro-one
              -rhodes            - fender rhodes mark-I stage 73
              -rhodesbass        - fender rhodes bass piano
              -roadrunner        - crumar roadrunner electric piano
              -bitone            - crumar bit 01
              -bit99             - crumar bit 99
              -bit100            - crumar bit + mods
              -stratus           - crumar stratus synth/organ combo
              -trilogy           - crumar trilogy synth/organ/string combo
              -obx               - oberheim OB-X
              -obxa              - oberheim OB-Xa
              -axxe              - arp axxe
              -odyssey           - arp odyssey
              -arp2600           - arp 2600
              -solina            - arp/solina string ensemble
              -polysix           - korg polysix
              -poly800           - korg poly-800
              -monopoly          - korg mono/poly
              -ms20              - korg ms20 (unfinished: -libtest only)
              -vox               - vox continental
              -voxM2             - vox continental super/300/II
              -juno              - roland juno-60
              -jupiter           - roland jupiter-8
              -bme700            - baumann bme-700
              -bm                - bristol bassmaker sequencer
              -dx                - yamaha dx-7
              -cs80              - yamaha cs-80 (unfinished)
              -sidney            - commodore-64 SID chip synth
              -melbourne         - commodore-64 SID polysynth (unfinished)
              -granular          - granular synthesiser (unfinished)
              -aks               - ems synthi-a (unfinished)
              -mixer             - 16 track mixer (unfinished: -libtest only)

       Synthesiser:

       -voices <n>
              The selected emulator will start with this number of voices. The engine will always
              create  32  voices  but  only allocate this subset to the emulator. If the selected
              value is greater than 32 then the greater number of voices is allocated.

       -mono  Run the emulator in monophonic mode. This is not really an alias for '-voices 1' as
              it  additionally  configures  parameters  such as '-retrig -lvel -wwf -hnp'.  These
              additional options can be overridden if desired.

       -lnp   Select low note precedence logic. This only applies to monophonic synthesisers  and
              all of the note precedence affect the legato playing style.

       -hnp   Select high note precedence logic. This only applies to monophonic synthesisers.

       -nnp   Select  no  note  precedence,  this  is  the  default  and  operates as a last note
              precedence selection.

       -retrig
              Request a trigger event for each note that is played AND notes that  are  released.
              The  trigger  will  cause  the  envelopes to cycle. They will not return to zero by
              default however some of the emulations have that as a GUI  control.   Without  this
              flag triggers are only sent for the first pressed note of a sequence.

       -lvel  Configure  velocity inheritance for all legato notes - the first note of a sequence
              will have a velocity value that is applied to all subsequent notes.  This option is
              a  toggle:  applying twice will disable the feature. This is important with regards
              to the emulators as many of  the  mono  synths  with  set  lvel  per  default.  The
              following options may not work as expected:

              startBristol -mini -lvel

              The  issue is that -mini enables legato velocity so the -lvel switch will toggle it
              off again. The same applies to -retrig.

       -channel <c>
              Start the emulator to respond on this MIDI channel, default 1.

       -lowkey <n>
              Configure the lowest note for which the emulator should respond. This  defaults  to
              '0' but can be used to define key splits and ranges for different synths.

       -highkey <n>
              Configure  the highest note for which the emulator should respond. This defaults to
              '127' but can be used to define key splits and ranges for different synths.

       -detune <%>
              Request the emulator run with a level of temperature sensitivity. The default value
              is  defined by the emulator, typically 100 or 200. The detune is applied to a voice
              at note on only and is a random value within the range defined here.

       -gain <gn>
              Output signal gain level for the emulator. These  can  be  used  to  normalise  the
              signal  levels  from  different  synths  when played together. The default value is
              defined by the synth itself, this is an override.

       -pwd <s>
              Pitch wheel depth in semitones, default 2.

       -velocity <v>
              Velocity curve for the emulator. Default is 520, an exponential curve  for  a  hard
              playing  style.  Value  '0'  is  flat  (no touch sensitivity). Values up to 100 are
              linear scaled maps.  The velocity map is  table  of  points  that  is  interpolated
              linearly:  you  may  only  have to define the inflexion points, however if you want
              smooth curves you will have to define each of the 128 velocity values that are used
              in  noteon/noteoff events. The emulation only has a single table of gain levels for
              each key.velocity index, the engine by contrast has two tables, one for each on/off
              event however that is an integer map, not a gain map.

              There  are  several  default  tables  if  you  do  not  want  to  specify  your own
              interpolated curve. Each table is the gain for the Midi velocity value given in the
              note event, it has 128 entries. The following are implmented:

                100-199 Convex curves for a soft touch keyboard player
                200-499 Concave curves for a hard touch, linear up to quadratic function.

              The  next  set up to 525 are repeats of the above but with less granularity. In the
              above range the value of 200 is linear, as is 510 below:

                500-509 Convex curves for a soft touch keyboard player
                510 linear
                511-25 Concave curves for a hard touched player.

              Then there are a couple of specific curves

                550 logarithmic
                560 parabolic

              The values up to 100 consists of two digit numbers. The  first  digit  defines  how
              late the line starts (it is linear) to ramp up, and the second digit is how late it
              reaches 1.0. The value of 09 is almost the linear mapping above as it starts from 0
              and  ends  almost at the end. A value of 49 would be for a heavy player, it is zero
              for a large part of the velocity table, and then ramps up to max gain  (1.0)  close
              the  end  of  the  table.  Note  that these table could also have been defined with
              velocityMap definitions as they are linear interpolations. A present  release  will
              include curves to smooth things out a little.

              Option  520  is  a squared powercurve and feels quite natural although that is very
              subjective. Perhaps its natural for a hard player and it could be a better  default
              than the linear curve.

              The value 1000 will invert the mapping, so:

                1510 - linear from 1.0 down to 0.0 as velocity increases
                1520 - exponential, from 1.0 down to 0.0 as velocity increases

              The  engine  mapping  is applied before the emulation mapping given here. There are
              reasonable arguments to make this table logarithmic - you are  welcome  to  do  so.
              There  are  no limits to the values here other than negative values are not mapped,
              so this table can also be used to compensate for volume levels.

       -glide <s>
              Duration of nogte glide in seconds, default 5.

       -emulate <name>
              Search for the named emulator and invoke it, otherwise exit. Invoking an  emulation
              this  was  is  currently  the  default, it implies extra parameters for voicecount,
              gain, glide, pitchwheel depth, detune, etc. The default is hammondB3. The  -emulate
              option also implies -register to the emulator name.

       -register <name>
              Use a specific name when registering with Jack and ALSA. By default the engine will
              use the name 'bristol' however this can be confusing if multiple engines are  being
              used and this can be used to override the default.

       -lwf   Select lightweight filters for the emulator.

       -nwf   Select  normalweight  filters,  the  default. These are about twice as expensive as
              lightweight filters.

       -wwf   Select welterweight filters, this are again about double the CPU load as the normal
              filters.

       -hwf   Select  heavyweight  filters.  These  are  roughly  twice  the welterweight filter.
              Whilst their is a noticable  audible  difference  between  -lwf  and  -nwf,  it  is
              debatable  whether the difference between -nwf, -wwf and -hwf is other than visible
              in the CPU load. The default filter for any  -mono  synth  is  -wwf  which  can  be
              overridden with something line '-mini -mono -nwf'.

       -blo <h>
              Number  of  bandwidth  limited  harmonics  to  map.  The  value of zero will select
              infintite bandwidth, default is 31.

       -blofraction <f>
              The engine uses precomputed tables for all frequencies where the  maximum  harmonic
              does not exceed this fraction of the samplerate. The default, 0.8, is already above
              nyquist as a tradeoff betweeen content and distortion. Values tending  towards  1.0
              are heavily aliased at the higher frequencies naturally.

       -scala <file>
              The engine will read the given scala file and map it into its frequency tables.

       User Interface:

       -quality <n>
              The  color  cache  depth  will  affect  the rendering speed. The lower values start
              showing loss of clarity, the higher values start using thousands of colors which is
              where the performance is affected, value is bpp, default is 6.

       -scale <s>
              Each  of  the  emulators  has a default window sisze, this size can be scaled up or
              downwards if desired.

       -width <n>
              The pixel width defines the smaller of two sizees that can be configured. It  works
              with the -scale and -autozoom options for flipping between different sizes on mouse
              Enter/Leave of the window.

       -autozoom
              Minimise window on exit, maximise on enter.

       -raise Automatically raise the window on Enter.

       -lower Automatically lower the window on Leave. It is noted here that the use of autozoom,
              raise and lower may have undesirable effects with some window managers.

       -rud   Constrain  the  rotary controller tracking to mouse up/down motion, not to actually
              track the mouse position. The value will be a fraction of the current window size.

       -antialias <%>
              For some window sizes there will be pixelation of the rendered imagas  unless  some
              antialias is applied. With large zoom values this is automatically set up. Value is
              a percentage, default is 30.

       -aliastype <pre/texture/all>
              There are three antialiasing options, ´pre´ will apply it to the text  silkscreens,
              ´texture´  will  apply it to the surface bitmaps and ´all´ will apply it everywhere
              including devices rendered. The default is  pre  however  this  parameter  is  only
              applied if -antialias has a value other than zero.

       -opacity <%>
              Brighton  uses  a  transparency  layer for some features such as the ARP 2600 patch
              cables. This is the default  transparency.  It  can  be  adjusted  later  with  the
              ^o/^O/^t control codes in the GUI. Default is 50 percent.

       -pixmap
              Use  the  X11  pixmap  interface  rather  than  the default XImage interface to the
              server.

       -dct <ms>
              Double click timeout for button events, etc, 250 ms.

       -tracking
              Prevent the GUI piano keyboard image from tracking MIDI events, small reduction  in
              CPU overhead.

       -keytoggle
              The  default GUI behaviour for tuning keys on with the mouse is to latch them, this
              allows for playing chords on the polyphonics. This option will disable the latch to
              that keys are played only whilst held with the mousebutton.

       -neutral
              Initial  the emulator with a null patch, all parameters will have the value of zero
              to allow for a patch to be built from the bottom up, completely from scratch.  This
              is  equivalent  to '-load -1', negative memory locations will not be saved, ie, you
              cannot save to the null patch.

       -load <m>
              Initial memory number to load at startup. Default is 0 for most emulators.

       -import <pathname>
              Import a memory from a disk file to the active patch at start time. This patch  can
              then be saved to another location and allows for interexchange of memories.

       -mbi <m>
              The  master  bank index allows for access to extra memory ID. This value times 1000
              is added to the memory ID saved/loaded by the GUI so the GUI can access for example
              8  banks  of  8  memories  but using -mbi you can actually save multiple sets of 64
              memories.

       -activesense <ms>
              The rate at which hello messages are sent from GUI to engine to ensure it is  still
              active.  If  the  transmission fails then the GUI will exit, if the engine does not
              receive updates it will also exit. Zero will disable active sense.

       -ast <m>
              The engine timeout period on active sense messages.

       -mct <m>
              The MIDI cycle timeout is a busy waiting GUI timer for MIDI events, used  when  the
              GUI takes a MIDI interface for direct event tracking.

       -ar|-aspect
              All  of the emulators will attempt to maintain an aspect ratio for their windows so
              that they look 'normal'. This conflicts with some tiling window managers so can  be
              disabled.  It  may  also  cause  some  excessive remapping of windows when they are
              resized.

       -iconify
              Open the window in the iconified state.

       -window
              Do not map any window.

       -cli   Enable the text based command line interface to the engine. This  can  be  used  in
              connjuction  with  -window  however  if  compiled without support for any windowing
              system the -window option is implied.

       -libtest
              Do not start the engine, nor attempt to connect  to  it,  just  post  the  GUI  for
              testing.

       GUI Shortcuts:

              <Ctrl> 's'     - save settings to current memory
              <Ctrl> 'l'     - (re)load current memory
              <Ctrl> 'x'     - exchange current with previous memory
              <Ctrl> '+'     - load next memory
              <Ctrl> '-'     - load previous memory
              <Ctrl> '?'     - show emulator help information
              <Ctrl> 'h'     - show emulator help information
              <Ctrl> 'r'     - show application readme information
              <Ctrl> 'k'     - show keyboard shortcuts
              <Ctrl> 'p'     - screendump to /tmp/<synth>.xpm
              <Ctrl> 't'     - toggle opacity
              <Ctrl> 'o'     - decrease opacity of patch layer
              <Ctrl> 'O'     - increase opacity of patch layer
              <Ctrl> 'w'     - display warranty
              <Ctrl> 'g'     - display GPL (copying conditions)
              <Shift> '+'    - increase window size
              <Shift> '-'    - decrease window size
              <Shift> 'Enter'- toggle window between full screen size
              UpArrow        - controller motion up (shift key accelerator)
              DownArrow      - controller motion down (shift key accelerator)
              RightArrow     - more control motion up (shift accelerator)
              LeftArrow      - more control motion down (shift accelerator)

       Operational options:

       General:

       -engine
              Do not start a new engine. The GUI will attempt to connect to an existing engine on
              the host and port configuration (cq). If the connection is built  then  the  engine
              will  operate both emulators and voice allocations will be shared amongst them. All
              of the emulator outputs are folded back onto  the  same  stereo  output,  excepting
              where extra Jack control inputs are used.

       -gui   Do  not  start  the  GUI,  only  the engine. The GUI will attempt to connect to the
              engine on the configured host and port values. If it does not respond then the  GUI
              will exit with some rather terse messaging.

       -server
              Start the engine as a permanant server that does not exit with the last emulator.

       -daemon
              Run  the  engine  as a daemon with disconnected controlling terminal. This does not
              imply the -server option, nor does it imply the -log option for logging to the file
              system, nor -syslog which might also be applicable to a daemon.

       -watchdog <s>
              Timeout for the audio thread initialisation. If the thread does not activate within
              this period then the engine will  gracefully  exit  rather  than  wait  around  for
              connections  indefinitely.  Default  period  is  30  seconds. This is not active in
              -server or -daemon mode. In normal operation the  audio  thread  will  be  launched
              within  a  couple  of seconds but if the engine and GUI are started separately then
              this timeout demands that a GUI be started before the timer expires.

       -log   Redirect logging output to a file. The default  file  is  /var/log/bristol.log  and
              /var/log/brighton.log  and  if  they  are  not  available  then  $HOME/.bristol/log
              directory is used. The selection of /var/log is to prevent logging to root  in  the
              event that the engine is invoked by this user.

       -syslog
              Redirect logging output to syslog.

       -console
              Maintain  the  controlling  terminal  as  output  for  logging messages, remove the
              timestampes for  readability  purposes.  This  can  also  be  configured  with  the
              environment variable BRISTOL_LOG_CONSOLE=true.

       -rc    Do not load any bristolrc parameter file.

       -exec  The  final  process to be requested by the startBristol script will be called as an
              exec such that it maintains amongst other things the PID of the parent. This option
              will  override  the  exec  and  leave the script waiting for the processes to exit.
              There implications of not using this parameter, some of the cleanup code is part of
              the  wrapping  shellscript, per default this is not called due to the exec request.
              This flag is default but should only really be required for LADI compatibility.

       -stop  Stop all the running bristol engines. This will indirectly result in termination of
              any  GUI  due  to  active sensing although that can be disabled. The use case is to
              stop any -server -daemon engines running in the background. The  back  end  to  the
              option is pkill.

       -exit  Stop all the running bristol engines and GUI.

       -kill <-emulator>
              Stop  all  the  running  bristol engines and GUI that have been associated with the
              given emulator. If bristol was started with '-mini' it can now be killed with -mini
              so that other emulators are not terminated. If there are multiple mini running they
              will naturally die also. If the engine is running multitimbral GUI then  the  other
              associated GUI will also exit in addition to the mini.

       -cache <pathname>
              The  default  location  for  new  memories  and  emulator  profiles, the default is
              ~/.bristol and it will be searched  before  the  system/factory  default  directory
              /usr/local/share/bristol when emulators are started and memories are loaded. If the
              pathname does not exist then it is created if possible.

       -memdump <pathname> [-emulate <synth>]
              Create the target directory <pathname>/memory/<synth> and copy  first  the  factory
              default  memories  for  the synth, then the user private memories. This can be used
              with session management to make a copy of all synth memories in a session.  If  the
              target  directory  already  exists  then  no  copy  operation  takes  place but the
              directory does replace the -cache default to make this the new location  for  saved
              memories  for  that session. The -emulate option is required, if it is not provided
              then the default hammondB3 is taken.

       -debug <1-16>
              Debug level, values above 12 can be very verbose and only the value 0  is  arguably
              realtime safe as it avoids printf() in the engine compute thread.

       -readme [-<e>]
              Display  the program readme information. Show the readme for just a single emulator
              if desired.

       -glwf  Only allow the use of '-lwf' for all emulators, no overrides.

       -host <hostname>
              Connect to the engine on the hostname,  default  is  localhost.  This  is  used  in
              conjuction  with -engine to distribute the GUI. The hostname accepts syntax such as
              hostname:port to fix both the host and port for a remote connection to the  engine.
              If the host portion is the token 'unix' then a local named socket is created rather
              than a TCP connection. In this instance a specific port  number  can  be  given  to
              create  the  named  socket  /tmp/br.<port>  and if the port is not specified then a
              random numeric index is chosen.

       -port <p>
              Connect to the given TCP port for GUI/engine messaging, default 5028. If  the  port
              is  alreeady in use then the startup with fail. For starting multiple bristols with
              GUI then this option should be discarded and the script will look for a  free  port
              number  for  each  invocation.  It  is  incorrect  to  mix  this  option with -host
              parameters that take a  value  host:port  or  unix:port  as  the  results  will  be
              indeterminate depending on the order the parameters are submitted.

       -quiet Redirect debug and diagnostic output to /dev/null.

       -gmc   Open  a  MIDI  interface  in the GUI. Per default the engine will own the only MIDI
              interface for bristol and will redistribute events to the GUI. It  is  possible  to
              disable the forwarding and attach both GUI and engine to midi devices if necessary.

       -forward
              Disable  MIDI  event  forwarding  globally.  Per  default  the  engine opens a MIDI
              interface and is connected to  the  physical  keyboards,  control  surfaces  and/or
              sequencers.  It  will  forward  MIDI  events  to  the GUI for tracking. This option
              disables the feature. When disabled the GUI will not  reflect  the  piano  keybaord
              state,  nor  will  it  track CC motion unless the options '-gmc' is given to open a
              MIDI connection in the GUI and that the user connects the same control surfaces  to
              the  GUI  via  this  alternative  channel.  This  option  is logically identical to
              ´-localforward -remoteforward´.

       -localforward
              This will prevent the GUI from forwarding MIDI messages to the engine. This is  not
              to  prevent  MIDI  message  loops  as  the  forwarding  only  ever occurs from MIDI
              interfaces to TCP connections between GUI and  engine.  This  option  will  prevent
              messages  from  any  surfaces  that are connected to the GUI from forwarding to the
              engine.

       -remoteforward
              This will prevent the engine from forwarding to the GUI but still allow the GUI  to
              forward  to the engine. If the GUI is given a MIDI connection with the -gmc option,
              and control surfaces are applied to both processes then the -forward option  should
              be  used to globally prevent event redistribution. Failure to do so will not result
              in loops, just one-for-one duplication of events. It is  possible  to  connect  the
              control  surfaces  just  to  the  GUI  when the -gmc option is used, this gives the
              possibility to have a local keyboard and GUI  but  drive  an  engine  on  a  remote
              systems.  Their  is  admittedly  additional latency involved with handling the MIDI
              messages from the GUI to the remote engine over TCP.

       -oss   Configure OSS defaults for audio and MIDI interfaces

       -alsa  Configure ALSA defaults for audio and MIDI interfaces. The  MIDI  interface  is  an
              ALSA SEQ port.

       -jack  Configure  Jack defaults for audio and MIDI interfaces. At the time of writing this
              option causes some issues as it  selects  Jack  MIDI  which  currently  requires  a
              bridging  daemon  to operate. The options '-jack -midi seq' would be a more typical
              configuration.

       -jackstats
              Do not request audio parameters from the  jack  server,  take  the  bristol  system
              defaults  or  the  configured parameters. The bristol defaults will invariably fail
              however the call to bristoljackstats is sometimes superfluous and this can speed up
              the  initial  startup  times.  Using this parameter will typically require that the
              options -rate and -count are also provided.  TP -jsmuuid <UUID> This  is  for  sole
              use of the Jack Session Manager

       -jsmfile <path>
              This is for sole use of the Jack Session Manager

       -jsmd <ms>
              Jack session manager delay before session events are distributed internally.  Event
              execution is delayed in the GUI by a default of 5000ms.

       -session
              Disable all session management including JSM and LADI.

       -sleep <n>
              Stall the initialisation process for 'n' seconds.  This  is  to  work  around  what
              appears  to be race a condition when using a session manager to initialise multiple
              bristol clients as they all vie for the same TCP port identifier.

       -jdo   Jack Dual Open: let the audio and midi threads register as independent clients with
              Jack.  Per  default  the  audio  thread  will  open  as  a jack client and the MIDI
              connection is piggypbacked as another port rather than as another client.

       -o <filename>
              Generate a raw audio output of the final stage samples to a file. The  format  will
              be 16bit stereo interleaved.

       -nrp   Enable  support for NRP events in both GUI and engine. This is to be used with care
              as NRP in the engine can have unexpected results.

       -enrp  Enable NRP support in the engine only.

       -gnrp  Enable NRP events in the GUI. This is required to allow  the  GUI  (and  hence  the
              engine) to be driven from some MIDI control surfaces.

       -nrpcc <n>
              Maximum number of NRP to map. The default is 128, seen as sufficient for any of the
              current emulators but the mixer will require more if it is every released.

       Audio driver:

       -audio [oss|alsa|jack]
              Audio driver overrides. Depending on the order of the switches it  is  possible  to
              set  a group of global defaults (-jack/oss/alsa) then have specific re-selection of
              components.

       -audiodev <dev>
              Audio device name. For Jack, this will be the name registered with the Jack daemon.

       -count <samples>
              Number of samples/frames in processing period.

       -outgain <gn>
              Output signal normalisation level, per emulator default 4.

       -ingain <gn>
              Input signal normalisation level, per emulator default 4.

       -preload <periods>
              Number of audio buffers to prewrite to the audio  output  on  start.  This  is  not
              active with the Jack drivers.

       -rate <hz>
              Sampling rate, defaults to 44100.

       -priority <p>
              Realtime  priority  requested  by  the  engine  audio thread, default 75. Zero will
              disable RT processing.

       -autoconn
              Automatically connect the engine input and output to the first Jack IO ports found.
              This can also be achieved with the environment variable BRISTOL_AUTOCONN=true

       -multi <c>
              Multiple  IO  port  requests,  only works with Jack and currently only the ARP 2600
              gives access to these ports.

       -migc <f>
              Input signal normalisation level for the multi IO ports.

       -mogc <f>
              Output signal normalisation level for the multi IO ports.

       Midi driver:

       -midi [oss|[raw]alsa|jack]
              Audio driver overrides. Depending on the order of the switches it  is  possible  to
              set  a group of global defaults (-jack/oss/alsa) then have specific re-selection of
              components such as in ´-jack -midi seq´. The default MIDI driver is '-midi seq' but
              that  can be overriden with compile time options such as --enable-jack-default-midi
              to ./configure.

       -mididev <dev>
              MIDI device namee to be opened (OSS/ALSA).

       -mididbg
              Request MIDI level 1 debuging.

       -mididbg2
              Request MIDI level 2 debuging. Both can be selected for level 3.

       -sysid <0xXXXXXXXX>
              Configure an alternative SYSEX identifier for the engine. The default is the  value
              0x534C6162  for historical reasons, this is not a free development ID but it is not
              assigned so should not cause conflict.

       LADI driver (level 1 compliant):

       -ladi brighton
              Execute LADI messages in the GUI only

       -ladi bristol
              Execute LADI messages in the engine only

       -ladi <memory>
              The LADI state memory for save operations. This should  be  unique  for  each  LADI
              session.

EXAMPLES

       startBristol -mini
              Run  a  minimoog  using  ALSA interface for audio and midi (seq). The emulator will
              default to monophonic, high note precedence with retrigger and legato velocity.

       startBristol -alsa
              Run a hammondB3 using ALSA interface for audio and midi. This is equivalent to  all
              the  following  options:  -b3  -audio  alsa -audiodev plughw:0,0 -midi seq -mididev
              plughw:0 -count 256 -preload 4 -port 5028 -voices 32 -channel 1 -rate 44100

       startBristol -explorer -voices 1
              Run a moog explorer as a monophonic instrument, using ALSA interface for audio  and
              midi.

       startBristol -prophet -alsa -channel 3
              Run a prophet-5 using ALSA for audio and midi (on channel 3).

       startBristol -b3 -count 512 -preload 2
              Run  a  hammond  b3  with  a  512 samples in a period, and preload two such buffers
              before going active. Some Live! cards  need  this  larger  buffer  size  with  ALSA
              drivers.

       startBristol -oss -audiodev /dev/dsp1 -vox -voices 8
              Run  a  vox  continental  using  OSS  device 1, and default midi device /dev/midi0.
              Operate with just 8 voices out of the 32 available.

       startBristol -b3 -audio alsa -audiodev plughw:0,0 -seq -mididev 128.0
              Run a B3 emulation over the ALSA PCM plug interface, using the ALSA sequencer  over
              client 128, port 0.

       startBristol -juno &

       startBristol -prophet -channel 2 -engine
              Start  two  synthesisers,  a  juno  and  a  prophet. Both synthesisers will will be
              executed on one engine (multitimbral) with 32 voices between them. The juno will be
              on  default  midi  channel  (1), and the prophet on channel 2. Output over the same
              default ALSA audio device. The 32 voices will never all get used as these emulators
              will  run  per  default  with  a lower soft limit. They can be run with more voices
              however that would require suitable values to the -voices option.

       startBristol -juno -jack -register juno -voices 32 &

       startBristol -prophet -jack -register prophet -channel 2 -voices 32
              Start two synthesisers, a juno and a prophet5. Each synth  is  totally  independent
              with its own GUI and own engine. Each engine will register separately with the jack
              daemon. They will respectively register the names 'juno' and  'prophet'  with  Jack
              and  ALSA  so  that they can be differentiated in the respective control programmes
              such as aconnect and qjackctl. The outputs will  be  visible  separately  in  these
              control  programs and can thus be routed independently. Each synth can use up to 32
              voices and there will only be CPU contention - these are  separate  engine  process
              with 32 voices each.

FILES

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

ENVIRONMENT VARIABLES

       BRISTOL
              This indicates the location of the bristol installation for the  binaries,  bitmaps
              and  related  data  reside.  The  default depends on the prefix used for the system
              build, /usr/local/share/bristol and /usr/share/bristol are typical.

       BRISTOL_CACHE
              The cache  is  where  memories  and  emulator  profiles  (keyboard  maps  and  MIDI
              Continuous Controller maps) are saved. The default is ${HOME}/.bristol

       BRISTOL_RC
              Location of the bristol runcom file.

       BRISTOL_LOG_CONSOLE
              Force  debuging  output  to  be  sent  to console without timestamping, log file or
              syslog.

       BRISTOL_AUTOCONN
              Attempt to automatically connect the bristol audio inputs and  outputs  when  using
              Jack.

       BRISTOL_AUTO_LEFT
              If  BRISTOL_AUTOCON is set to anything other than '0' this will be the default Jack
              port for the bristol left channel output. There is no default, if AUTOCONN has been
              requested this will be the first jack playback channel.

       BRISTOL_AUTO_RIGHT
              If  BRISTOL_AUTOCON is set to anything other than '0' this will be the default Jack
              port for the bristol right channel output. There is no  default,  if  AUTOCONN  has
              been requested this will be the second jack playback channel.

       BRISTOL_AUTO_IN
              If  BRISTOL_AUTOCON is set to anything other than '0' this will be the default Jack
              port for the bristol (mono) input channel. There is no default, if AUTOCONN is  set
              this will be the first jack capture channel.

AUTHOR

       Written by Nicholas Copeland <nickycopeland@hotmail.com>

REPORTING BUGS

       Bugs and enhancement requests can be submitted to the bristol project page on SourceForge:

       <http://sourceforge.net/tracker/?group_id=157415>

COPYRIGHT

       Copyright  ©  1996,2011  Nick  Copeland.  License  GPLv3+:  GNU  GPL  version  3  or later
       <http://gnu.org/licenses/gpl.html>. This is free software: you  are  free  to  change  and
       redistribute it. There is NO WARRANTY, to the extent permitted by law.

                                          Oct  29, 2011                                BRISTOL(1)