Bristol is an emulation package for a number of different 'classic' synthesisers including additive and subtractive and a few organs. The application consists of the engine, which is called bristol, and its own GUI library called brighton that represents all the emulations.

There are currently twenty something different emulations, each does sound different although the author maintains that the quality and accuracy of each emulation is subjective. One of the main reasons for putting together this site (host by Sourceforge which provides the rest of the services required by bristol) is to depict all the different emulations.
SourceForge.net Logo
This site contains a write-up of each of the emualated synthesisers. The algrithms employed were 'gleaned' from a variety of sources including the original owners manuals, so they may be a better source of information. Some of them were built just from descriptions of their operation, or from understanding how synths work - most of them were based on the Mini Moog anyway. Many of the synths share components: the filter covers most of them, the Prophets and Oberheims share a common oscillator and the same LFO is used in many of them. Having said that each one differs considerably in the resulting sound that is generated, more so than initially expected. Each release refines each of the components and the result is that all emulations benefit from the improvements.

All the emulations have distinctive sounds, not least due to that the original instruments used different modulations and mod routing. The filter, which is a large defining factor in the tonal qualities of any synth, is common to all the emulations. The filter implements 3 different algorithms and these do separate each of the synths: the Explorer layering two low pass filters on top of each other: the OB-Xa using different types depending on 'Pole' selection. The 3rd filter algorithm is a butterworth used by for the Leslie rotary speaker crossover.

The write-up includes the parameter operations, modulations, a description of the original instrument and a brief list of the kind of sounds you can expect by describing a few of the well known users of the synth.

All emulations are available from the same engine, just launch multiple GUIs and adjust the midi channels for multi timbrality and layering.

It is noted here that the engine is relatively 'dumb'. Ok, it generates a very broad range of sounds, currently about 15 different synthesisers and organs, but it is not really intelligent. Memories are a part of the GUI specification - it tells the engine which algorithm to use on which MIDI channel, then it calls a memory routine that configures all the GUI controllers and a side effectof setting the controllers is that their values are sent to the engine. This is arguably the correct model but it can affect the use of MIDI master keyboards. The reason is that the GUI is really just a master keyboard for the engine and drives it with MIDI SYSEX messages over TCP sessions. If you were to alter the keyboard transpose, for example, this would result in the GUI sending different 'key' numbers to the engine when you press a note. If you were already driving the synth from a master keyboard then the transpose button in the Brighton GUI would have no effect - the master keyboard would have to be transposed instead.

This apparant anomaly is exacerbated by the fact that some parameters still are in the engine, for example master tuning is in the engine for the pure fact thatMIDI does not have a very good concept of master tuning (only autotuning).

Irrespective of this, bristol is a synthesiser so it needs to be played, tweaked, driven. If you think that any of the behaviour is anomalous then let me know. One known issue in this area is that if you press a key, transpose the GUI, then release the key - it will not go off in the engine since the GUI sends a different key code for the note off event - the transposed key. This cannot be related to the original keypress. This could be fixed with a MIDI all notes off event on 'transpose', but I don't like them. This effect is also in part due to the Brighton model for the keyboard - you have to click a key 'on', and then click it 'off' again. There have been requests for key-off on button release, but this prevents you playing chords from the GUI. Perhaps it should be a GUI option, your input would be appreciated.

The following output is from 'startBristol -v -h', the verbose help text. It is unfortunately quite out of date and you are referred to the actual code for an up to date listing of the emulations and options.

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

    Emulation:

        -mini              - moog mini
        -explorer          - moog voyager
        -memory            - moog memory
        -hammond           - hammond module
        -b3                - hammond B3
        -pro5|-prophet     - sequential circuits prophet-5
        -pro52             - sequential circuits prophet-5 with chorus
        -pro10             - sequential circuits prophet-10
        -rhodes            - fender rhodes mark-I stage 73
        -rhodesbass        - fender rhodes bass piano
        -obx               - oberheim OB-X
        -obxa              - oberheim OB-Xa
        -mono              - korg monopoly
        -poly              - korg poly6
        -axxe              - arp axxe
        -odyssey           - arp odyssey
        -2600              - arp 2600 (default)
        -juno              - roland juno-6
        -dx                - yamaha DX-7
        -vox               - vox continental
        -mixer             - 16 track mixer (-libtest only)

    Synthesiser:

        -voices <n>        - operate with a total of 'n' voices, default 16
        -channel <c>       - initial midi channel selected to 'c', default 1

    User Interface:

        -quality <n>       - accuracy of color selection 20..100% (95)
        -opacity <n>       - opacity of the patch layer 20..100% (50)
        -load <m>          - load memory number 'm' (default 0)
        -logo              - do not display watermarked logo on startup

        Gui key strokes:

            'l'            - show/hide logo transparency
            't'            - toggle opacity
            'o'            - decrease opacity of patch layer
            'O'            - increase opacity of patch layer
            'p'            - screendump to /tmp/<synth>.xpm
            'k'/'UpArrow'  - controller motion upwards (shift key accelerator)
            'j'/'DownArrow'- controller motion downwards (shift key accelerator)
    Operational:

        General:

            -engine        - don't start engine (connect to current invocation)
            -port <p>      - connect to engine on TCP port 'p' (default 5028)
            -libtest       - just display a GUI
            -quiet         - redirect diagnostic output to /dev/null
            -oss           - use OSS defaults for audio and MIDI
            -alsa          - use ALSA defaults for audio and MIDI (default)
            -jack          - use Jack for audio, ALSA SEQ for MIDI
            -o <filename>  - Duplicate audio output data to file

        Audio driver:

            -audio [oss|alsa|jack] - audio driver selection
            -audiodev <dev>        - audio device selection
            -count <samples>       - sample period size, default 256 samples
            -gain <gn>             - digital output signal gain (default 4)
            -ingain <gn>           - digital input signal gain (default 4)
            -preload <buffers>     - configure preload buffer count (default 8)
            -rate <hz>             - sample rate (44100)

        Midi driver:

            -midi [oss|alsa|seq]   - midi driver selection
            -mididev <dev>         - midi device selection
            -seq                   - use the ALSA SEQ interface (default)

    Audio drivers are PCM/PCM plug or Jack. Midi drivers are either OSS/ALSA
    rawmidi interface, or ALSA SEQ. Multple GUIs can connect to the single
    audio engine, which then operates multitimbrally.

    Examples:

    startBristol
        Print a terse help message.

    startBristol -mini

        Run a minimoog using ALSA interface for audio and midi seq. This is
        equivalent to all the following options:
        -mini -alsa -audiodev plughw:0,0 -midi seq -count 256 -preload 8
        -port 5028 -voices 16 -channel 1 -rate 44100 -gain 4 -ingain 4

    startBristol -alsa -mini

        Run a minimoog using ALSA interface for audio and midi. This is
        equivalent to all the following options:
        -mini -audio alsa -audiodev plughw:0,0 -midi alsa -mididev hw:0
        -count 256 -preload 8 -port 5028 -voices 16 -channel 1 -rate 44100

    startBristol -explorer -voices 1

        Run a moog explorer as a monophonic instrument, using OSS 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 buffer size of 512 samples, 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.

    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 16 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.

    startBristol -juno &
    startBristol -port 5029 -audio oss -audiodev /dev/dsp1 -mididev /dev/midi1

        Start two synthesisers, a juno on the first ALSA soundcard, and a
        mini on the second OSS soundcard. Each synth is totally independant
        and runs with 16 voice polyphony (looks nice, but not been tested).



All names and trademarks are property of their respective owners. Bristol is in no way representive of any of the original products and none of the companies represented in any way endorse this product.

Bristol is only available on your favorite Linux platform. It will not work on any windows release, nor will compile on any version of BSD without considerable effort - on your part.

Bristol is free.
The author, Nick Copeland, can be reached at

nickycopeland@hotmail.com

Home | About |  News | Emulations | Futures | Sourceforge | Wiki | Download | Forum