brighton(1)


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)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.