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 applica-
       tion consists of	an engine itself called	bristol	and a  graphical  user
       interface  called brighton. The graphical interface is a	bitmap manipu-
       lation library to present the diverse synth devices such	as potentiome-
       ters, 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 oper-
       ators required to generate the audio. The engine	and  GUI  are  started
       together	 with the startBristol script which sets up the	required envi-
       ronment 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  al-
       gorithm.

       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 sub-
	      set 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	 mono-
	      phonic  synthesisers  and	 all of	the note precedence affect the
	      legato playing style.

       -hnp   Select high note precedence logic. This only  applies  to	 mono-
	      phonic 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  cy-
	      cle. They	will not return	to zero	by default however some	of the
	      emulations  have that as a GUI control.  Without this flag trig-
	      gers 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  re-
	      spond.  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  sensitiv-
	      ity. 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 sen-
	      sitivity).  Values up to 100 are linear scaled maps.  The	veloc-
	      ity 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  ve-
	      locity values that are used in noteon/noteoff events. The	emula-
	      tion  only has a single table of gain levels for each key.veloc-
	      ity 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 qua-
	      dratic 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  al-
	      though  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	 loga-
	      rithmic  -  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. In-
	      voking  an  emulation  this was is currently the default,	it im-
	      plies extra parameters for voicecount, gain,  glide,  pitchwheel
	      depth,  detune,  etc. The	default	is hammondB3. The -emulate op-
	      tion also	implies	-register to the emulator name.

       -register <name>
	      Use a specific name when registering with	Jack and ALSA. By  de-
	      fault 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 welter-
	      weight 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 sampler-
	      ate. 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  af-
	      fected, 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  ef-
	      fects with some window managers.

       -rud   Constrain	 the  rotary  controller tracking to mouse up/down mo-
	      tion, 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  in-
	      terface 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 polyphon-
	      ics. 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 bot-
	      tom  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  al-
	      lows 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	termi-
	      nal. 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.  De-
	      fault  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 se-
	      lection  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  mes-
	      sages, remove the	timestampes for	readability purposes. This can
	      also   be	  configured   with  the  environment  variable	 BRIS-
	      TOL_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  re-
	      sult  in	termination  of	any GUI	due to active sensing although
	      that can be disabled. The	use case is to stop any	-server	 -dae-
	      mon  engines  running in the background. The back	end to the op-
	      tion is pkill.

       -exit  Stop all the running bristol engines and GUI.

       -kill <-emulator>
	      Stop all the running bristol engines and GUI that	have been  as-
	      sociated	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 sys-
	      tem/factory default directory /usr/local/share/bristol when emu-
	      lators 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 ham-
	      mondB3 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 spe-
	      cific 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 re-
	      sults will be indeterminate depending on the order  the  parame-
	      ters 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 key-
	      boards, control surfaces and/or sequencers. It will forward MIDI
	      events to	the GUI	for tracking. This option  disables  the  fea-
	      ture.  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  alterna-
	      tive  channel. This option is logically identical	to '-localfor-
	      ward -remoteforward'.

       -localforward
	      This will	prevent	the GUI	from forwarding	MIDI messages  to  the
	      engine.  This  is	 not to	prevent	MIDI message loops as the for-
	      warding 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  sur-
	      faces  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	possi-
	      bility 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  en-
	      gine 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 configura-
	      tion.

       -jackstats
	      Do not request audio parameters from the jack server,  take  the
	      bristol  system defaults or the configured parameters. The bris-
	      tol defaults will	invariably fail	however	the call  to  bristol-
	      jackstats	 is  sometimes	superfluous  and this can speed	up the
	      initial startup times. Using this	parameter will	typically  re-
	      quire  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 inde-
	      pendent 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  re-
	      sults.

       -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  sur-
	      faces.

       -nrpcc <n>
	      Maximum number of	NRP to map. The	default	is 128,	seen as	suffi-
	      cient  for  any  of the current emulators	but the	mixer will re-
	      quire 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 environ-
	      ment 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  -au-
	      diodev  plughw:0,0  -midi	seq -mididev plughw:0 -count 256 -pre-
	      load 4 -port 5028	-voices	32 -channel 1 -rate 44100

       startBristol -explorer -voices 1
	      Run a moog explorer as a monophonic instrument, using  ALSA  in-
	      terface 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  de-
	      vice  /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 to-
	      tally independent	with its own GUI and own engine.  Each	engine
	      will register separately with the	jack daemon. They will respec-
	      tively  register	the  names  'juno' and 'prophet' with Jack and
	      ALSA so that they	can be differentiated in the  respective  con-
	      trol  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 (de-
       fault value ${HOME}/.bristol/bristolrc) and the users prefered  options
       placed  as  the content.	The file will be read as a single line and in-
       corporated onto the command lines for both bristol and brighton.	 There
       is an additional	variable BRISTOL_RC which can point to	another	 loca-
       tion 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/bris-
	      tol 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 timestamp-
	      ing, 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)

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

home | help