How to setup Bristol Audio Synthesis with 64 Studio

Submitted by stevea on Thu, 07/19/2007 - 15:06

By SteveA

Bristol Audio Synthesis is an excellent project written by Nicky Copeland. The project emulates twenty of the classic instruments from the 60's, 70's and 80's. The sounds are distinctive to the Bristol project and are not intended to be totally authentic, however they do sound great.

The project is in active development, and therefore the version being installed here does contain a number of bugs, however, it is playable for personal enjoyment. In addition, it now has JACK support which allows it to integrate easily with Ardour projects and with other 64 Studio packages. (note that JACK support by Bristol is considered experimental).

There is an existing Debian package available, however, this is very old (January 2006), lacks JACK support and to my knowledge does not function well on x86-64 platforms. The low latency 64 Studio distribution is an ideal platform for exploring Bristol, and this HOWTO will hopefully give enough information to provide a workable Bristol implementation on both x86-64 and i386 processors.

Before proceeding, please remember that Bristol is currently in development, and may behave unpredictably on your system. If you are not comfortable experimenting with development systems from sources, please do not proceed.

1. With Synaptic Package Manager, install the following development packages:

 xorg-dev
 libasound2-dev
 libjack-dev

xorg-dev will probably need to come from the debian etch repository, so that will need to be enabled and the list reloaded. (Once xorg-dev is installed, the etch repository can be deselected and the list reloaded)

1. Goto Bristol download page on sourceforge
http://Bristol.sourceforge.net/

2. Download version 0.9.6.212 As far as I know, this is the most recent version which supports both x86-64 and i386

3. Unpack to desktop

tux@64studio:~$ cd Desktop/
tux@64studio:~/Desktop$ tar -xvzf bristol-0.9.6-212.src.042707.tgz

4. Important: If you unpacked using gnome/fileroller, go to the Bristol-0.9.6 directory and create two additional directories bin and lib.

4.5 check bin and lib directories are present:

tux@64studio:~/Desktop$ cd bristol-0.9.6/
tux@64studio:~/Desktop/bristol-0.9.6$ ls bin
tux@64studio:~/Desktop/bristol-0.9.6$ ls lib

6. change directory to the src

tux@64studio:~/Desktop/bristol-0.9.6$ cd src

6.5 edit the build script to enable JACK support -

tux@64studio:~/Desktop/bristol-0.9.6/src$ gedit build

6.6 Within the editor, change line 11 from JACKPKG=no to JACKPGK=yes, save the changes, exit the editor

7. clean out any previously built components to ensure compilation is fresh

tux@64studio:~/Desktop/bristol-0.9.6/src$ ./build clean

8. build Bristol

tux@64studio:~/Desktop/bristol-0.9.6/src$ ./build

The build should complete with no errors, and ask you to run the application from the bin directory

8.5 do NOT install the project (./build install) - this has given very odd problems in the past due to the installed application not being able to see all of the other proejct components.

8.6 change to the bin directory

tux@64studio:~/Desktop/bristol-0.9.6/src$ cd ..
tux@64studio:~/Desktop/bristol-0.9.6$ cd bin
tux@64studio:~/Desktop/bristol-0.9.6/bin$

9. execute Bristol package from the bin directory. The parameters shown here tell Bristol to use JACK and select the instrument "pro5"

$ ./startBristol -audio jack -pro5

A window should open, showing the Prophet 5 synthesiser.

10. Start a Virtual MIDI Keyboard, or connect an external MIDI keyboard.

11. Using JACK control / connect / MIDI, link the MIDI input device to Bristol. Note that there is also a port called brighton. Bristol is the sound engine, and brighton is the gui. The GUI can also accept MIDI input.

12. play the instrument (hopefully!)

13. Study the readme.release and readme.synths files to get more information about the synths available in Bristol


Known issues:

o) Do not install the Debian Bristol package - it can cause conflicts with the locally installed version
o) When quitting the GUI, or CTRL-C'ing Bristol process, please wait 10-15 seconds for the daemon to completely shutdown and the $ prompt to be given. Failing to do so will result in multiple daemons running and no sounds
o) Resizing the instrument window is slow and does not always redraw accurately
o) Switching to/from the B3 parameters window sometimes crashes the GUI
o) The maximum gain (volume) level of some instruments can be low. You can try experimenting with the -gain n parameter
o) the application reports its version as -213
o) The process of building and installing Bristol is not currently straight-forward (this HOWTO seeks to overcome the building problems)
o) installing into a common directory (such as /opt) causes occassional problems where some instruments (such as ARP2600) do not sound by default, and any settings/patches are not remembered

This HOWTO has been prepared on 64Studio 2.0pre1 for AMD64, but should work on i386 and on other versions of 64Studio. Bugs or queries about Bristol should be reported to the Bristol forum (linked from the sourceforge homepage).

Further reading:

readme.release and readme.synths in the main Bristol directory

Bristol homepage : http://Bristol.sourceforge.net/

Wikipedia synthesiser homepage : http://en.wikipedia.org/wiki/Synthesizer#Classic_synthesizer_designs

Comments

8 comments posted
Version
I just compiled and installed the latest version on x64 even though the architecture is shown as i386. The configure script found my architecture correctly, and also enabled jack automatically. The install was a classic tux@64studio~/source/bristol-0.10.6$ ./configure tux@64studio~/source/bristol-0.10.6$ make tux@64studio~/source/bristol-0.10.6$ sudo make install It seems most of the problems Steve described are still present. Interesting stuff
Posted by Quentin Harley on Sun, 07/22/2007 - 23:10
make fails
I just downloaded last version 0.10.7, ./configure worked well, but I had a lot of error messages during the make. Actually not working here.
Posted by stanlea on Fri, 08/24/2007 - 13:22
Bristol installation
The current release of Bristol is 0.10, the actual version depends on when you are reading this howto. The HOWTO given above is an installation process for any version that precedes 0.10, and the previous couple of messages give the process since 0.10 - it finally included the GNU autotools configuration and installation processes. A default install would be ./configure make install /usr/local/bin/startBristol [options] Typically options might just be '-jack' to start the jack server and start a hammonnd B3, the default emulation. Somewhere above here it is mentioned that jack support is experimental. That is no longer the case however the interface is extremely basic. It will be extended in a future release to have separate outputs per emulation and to correctly request the buffer sizes and samplerates. The initialisation sequences require that the bristol midi channel is opened before the audio channel - the GUI then directs the engine to emulate one of the synths. At the moment this means that certain values are needed apriori, such as the samplerate. It can be resolved however for now it may mean that the samplerate be specified on the command line: startBristol -jack -samplerate 48000 -count 128 -gain 30 -vox This would give you a period size of 128 and raise the output gain by a factor of 30, a requirement for many of the emulations as the output has always been rather weak. Since 0.10 was release there was a submit for a number of 64 bit changes. The code is not 100% 64 bit clean though so millage with vary. There are still numerous warnings during the compile process due to same rather stupid mixing operations. They should be taken out as well however since they are warnings then they have not been too critical.
Posted by ncopeland on Mon, 09/10/2007 - 11:52
GUI issues with version 0.1
I have just compiled bristol 0.10, and all seemed to go well. Unfortunately when I launch it, all of the GUIs come up blank and a string of "failed to allocate image" messages display in my terminal window. From what I can tell, this seems to be due to an issue that has been flagged in a couple of mailing lists with X11 relating to the XCreateImage function which has now been patched, but the thought of recompiling X11 doesn't really appeal to me - has anyone else had this problem?
Posted by ausnick on Sun, 10/07/2007 - 03:01
not with jack
Bristol starts ok with /usr/local/bin/startBristol [-alsa], but the gui doesn't show up with [-jack] :(, only a white field... not a organ...
Posted by alidh on Fri, 12/07/2007 - 17:15
GuiIssue
Same problem as you but on 64 bit suse 10.3 w/ 4gb mem. xorg7.2 with nvidia drivers, 2.6.23... kernel. Tried the how to (http://www.64studio.com/howto_bristol), tried a normal ./configure, make , su, makeinstall, tried pre-built x86-64 and 586 rpm packages built for suse. All gave me the same result, blank gui window with the "failed to allocate image" message. I realize this is a studio64 list but just thought I'd let you know the problem isn't with a specific distro, but is apparently a 64bit problem from what I've been able to find out. Be glad to here if a solution is found. see ya dh
Posted by mesamoo on Fri, 01/04/2008 - 06:21
GUI Issues
Most of the failures to display the GUI are caused by the XImage accelerations implemented during the 0.10 stream. You should be able to work around them by specifying '-pixmap' on the command line. This will use the previous interface to X11 avoiding the XImage accelerations. I did integrate a fix to the problem of the XCreateImage call however I have not tested it (no 64 bit system) so all I can say is that it works here. There are some open questions regarding Jack support. The code is reasonably short and has not had any direct problems opened against it. There are problems with how to compile bristol with jack and officially it should happen automatically from the 'configure' process - it will search for a jack.pc file in the PKG_CONFIG_PATH directories and if it is found then bristol should compile with jack support enabled. From experience I know that the location of this file is a moving target - I have a feeling that if the jack install did not find /usr/lib/pkgconfig then it will save this file in something like /usr/local/lib/jack, and you have to find it. Finding this file is a little beyond the remit of the bristol build scripts, but something like 'find /usr/. -name jack.pc' might help you to know what to put into the PKG_CONFIG_PATH to get things working. Once it does build with jack then the correct options would be something like: startBristol -jack -obxa -gain 4 -pixmap You can use the "-audio jack" but then you lose some other default flags that get included with the '-jack' option. The use of pixmap depends on how it works without the pixmap flag - the pixmap code is pretty slow however your 64 bit system will probably mask that anyway. Be careful with the -gain options. The emulations have always been quiet however each release should rework the internal mixing code to improve the signal levels of each synth. The profuse warning messages during compilation are being cleaned up slowly. Removing the -pedantic helped considerably.
Posted by ncopeland on Wed, 03/12/2008 - 09:35
Bristol walkthrough V2.1 pre1
Bristol 0.20.4 has been successfully installed with AMD64 / V2.1 pre1 Install is now simply: Synaptic prerequisites: xorg-dev libasound2-dev libjack-dev g++ cpp x11proto-core-dev libx11-dev Download bristol from sourceforge and unpack As root, build package: ./configure make make install To use: startBristol -jack (instrument type, use -h to get list)
Posted by stevea on Sat, 03/29/2008 - 15:24