Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
BRISTOL(1)		     General Commands Manual		      BRISTOL(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, slid-
     ers, 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  to-
     gether.  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 re-
     quests 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 preallo-
     cated  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  li-
     brary  paths and executable paths. There are emulation, synthesiser and op-
     erational 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 en-
	    gine 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  '-re-
	    trig  -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 play-
	    ing 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 sub-
	    sequent 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 nor-
	    malise the signal levels from different synths when played together.
	    The default value is defined by the synth itself, this is  an  over-
	    ride.

     -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  sensi-
	    tivity).  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 granu-
	    larity. In the above range the value of 200 is linear, as is 510 be-
	    low:

	      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.  Invok-
	    ing 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  fre-
	    quency 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 con-
	    figured. 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 frac-
	    tion of the current window size.

     -antialias <%>
	    For some window sizes there will be pixelation of the rendered  ima-
	    gas 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  de-
	    fault  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  ad-
	    justed  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  inter-
	    face 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 emu-
	    lators.

     -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 in-
	    terexchange 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 en-
	    sure 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 sup-
	    port 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 ex-
	    isting engine on the host and port configuration (cq). If  the  con-
	    nection  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 con-
	    nect to the engine on the configured host and  port  values.  If  it
	    does  not respond then the GUI will exit with some rather terse mes-
	    saging.

     -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  en-
	    gine 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  wrap-
	    ping shellscript, per default this is not called due to the exec re-
	    quest.  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 run-
	    ning 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  associ-
	    ated with the given emulator. If bristol was started with '-mini' it
	    can  now be killed with -mini so that other emulators are not termi-
	    nated. If there are multiple mini running they  will  naturally  die
	    also. If the engine is running multitimbral GUI then the other asso-
	    ciated GUI will also exit in addition to the mini.

     -cache <pathname>
	    The default location for new memories and emulator profiles, the de-
	    fault  is  ~/.bristol and it will be searched before the system/fac-
	    tory 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 ex-
	    ists then no copy operation takes place but the directory  does  re-
	    place  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 com-
	    pute 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 speci-
	    fied 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  dis-
	    carded  and the script will look for a free port number for each in-
	    vocation. It is incorrect to mix this option with  -host  parameters
	    that  take a value host:port or unix:port as the results will be in-
	    determinate 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 iden-
	    tical to '-localforward -remoteforward'.

     -localforward
	    This will prevent the GUI from forwarding MIDI messages to	the  en-
	    gine.  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  addi-
	    tional 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 in-
	    terface 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 bris-
	    tol  system  defaults  or the configured parameters. The bristol de-
	    faults 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 in-
	    ternally.  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 man-
	    ager 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 indepen-
	    dent 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 vari-
	    able 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 overri-
	    den  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  de-
	    fault  is the value 0x534C6162 for historical reasons, this is not a
	    free development ID but it is not assigned so should not cause  con-
	    flict.

     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  re-
	    trigger 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 de-
	    fault with a lower soft limit. They can be run with more voices how-
	    ever 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 regis-
	    ter 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 acon-
	    nect  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  pro-
     vides  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 co-
     mand line.

ENVIRONMENT VARIABLES
     BRISTOL
	    This indicates the location of the bristol installation for the  bi-
	    naries,  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 out-
	    puts 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 A(C) 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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=bristol&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help