Correspondence with Nick Copeland
Hi,
I really like your killer app! I had purchased Native Instruments B4 five years ago and played on Cubase, but always wanted to play on a Linux system. So, now I have Ubuntu 10.04 Studio, and use Jack to patch (including shell script to automatically connect multiple instances).
I'm using bristol 0.4 and will upgrade to current version, but was wondering the maximum instances of organs allowable to play. I have a pretty up-to-date computer system, and notice when I have automatically "patched" one instance of Qsynth, and then 4 instances of bristol (B3, Vox, Rhodes, Rhodes Bass) the 4th instance (regardless of which one) gets terminated due to some sort of midi write error.
Was wondering if others had this problem or if there is a fix. If I'm able to use approx 7 instances of keyboards, then I'll stick to Linux for live performances.
Also, is there a table of keys that indicate control of the keyboards (eg. in native instruments, pressing SHIFT x toggles rotor. I will eventually get a better keyboard/MIDI controller.
Any suggestions or directions would be greatly appreciated. I will add anything I learn to my Ubuntu WIKI ( http://zenit.senecac.on.ca/wiki/index.php/Ubuntu_Guide ) and my blog: ( http://murraysaul.wordpress.com/ )
Thanks for all you have done! Rock on!
Murray Saul
Hi Murray Saul,
The cause of the processes getting terminated is probably Jack complaining about CPU utilisation. Some of these synths ran to 10% CPU per voice, that is on my Xeon 2.2GHz machine. When Jack cannot keep up due to process load then it terminates processes. Somewhere in the 0.50 stream I finally got around to filter optimisation and the results were what I was after, the CPU utilisation per voice comes down to below 2% on the same CPU: it has been tested with a 32 voice Prophet-5 running as a Unison synth, 64 oscillator all running together slightly detuned, it took 65% CPU to do it admittedly.
Bristol does not raise any limit on what you do. You can run 7 different bristol emulators over Jack (use the -audiodev option to separate them) or if you use the -engine feature then you can run 7 emulators on the same bristol engine. The difference is a bit like having lots of synths or having one multitimbral synth with 32 voices. Bristol supports both methods of use, the default is multiple synths rather than a multitimbral synth.
Now how far that will get you depends a little on what you want to do. If you want 7 synths running at the same time then typically each synth engine will get 32 voices, depending on your Jack version then all of the synths may have to run on a single core so if you stay within a limit of, say, 48 voices total it will work. Check out JackDMP/Jack2, whatever it is called these days for distributed processing where you can get multiples of the 48 voices as Jack will use multiple CPU cores.
I am pretty certain you will get better results if you go for 0.60.5, the most recent release. I would be interested in seeing an example shell script for how you start all of these, it would show which method you are using and I could also give some feedback on other options you could use.
Kind regards, nick.
Hi Nick,
Attached is a rough shell script showing launching of bristol apps. You asked me to send a shell script so you can look at it...
Also 2 other questions:
1. Is there a way to place different organs on different locations on screen? (I tried -geometry +#+#, but didn't work - I'm using 0.4)
2. Are there keyboard commands as shortcut to control the parameters of the organs?
Thanks, Murray Saul
Hi Murray Saul,
I will have a look at the script presently, bit bogged down in work at the moment.
1. Currently there is no way to get the -geometry to work so window position is still dependent on what your window manager wants to do. Now I was avoiding the use of -geom because of issues with 'WxH' since the windows actually want to impose their own aspect ratio on the window. If you want to see the issue try the following:
startBristol -mini -ar
Then change the size of the window - make it really wide. It works but it eventually doesn't look right. So, if I honour WxH+X+Y then aspect ratio will almost always be broken. Having said that I am quite interested in just +X+Y as an option and will look into how easily that can be integrated for you.
2. There are not a great deal of keyboard shortcuts to the GUI - are you looking to change parameters? If you place the mouse over a drawbar and press <Shift><Up> it will move the control but the only other keyboard control was to play the synth.
This is actually another pretty cool idea of yours though. At the moment if you put the mouse over a potmeter or slider and press the middle mouse button, then move a control on your midi surface it will link them together. That could be done,
theoretically, for the ASCII keyboard. If you don't want to play the synth from your QWERTY then <middlemouse><ASCII KEY> could also map to the control such that the key is down and <Shift><Key> is up?
Now as an alternative, try using the -cli option. This opens a CLI for the synth but it only works for one synth per command line window. It does have key
mappings for controller movement though.
kind regards nick.
Hi Murray Saul,
The next release will include a -geom/-geometry option which will allow you to do window placement. The following should be honoured:
-geom +100+100 will do just window placement
-geom 800+100+100 will scale the width to 800 pixels, adjust height to maintain aspect ratio and place the window
-geom 800x200+100+100 will take the literal size you request and place it on the screen, aspect ratio is lost.
The interface will also configure antialiasing if the window size changes by more than about 10% from default.
kind regards. Nice feature by the way, am glad your requested it as I had never considered the option and it seems pretty useful.
nick.
I think that is the first time, I have request a mod and it was implemented! Wow!
I teach at a College in North America (Toronto, Canada). In late October we have a conference on open source software. I would like to offer a one hour workshop on home recording with Linux, and was wondering if possible if we could invite you to speak via video conferencing regarding Bristol organ...
Here is a link to the website: http://fsoss.senecac.on.ca/2010/
Murray
Hi Murray,
Good ideas should get implemented. When developing software I find myself being a bit focused on a few ideas and the 'big picture' stuff about how this can be used functionaly often gets missed.
I am not sure about the workshop. Developing is something I squeeze into the few free hours I get from work and familly, getting together a presentation on top of that would be a bit of an effort, and also because of work I really am not sure that if I commit to a date that I could actually keep it - things come up at last minute
and I cannot push them back. Maybe for 2011?
Kind regards, nick.
Hi Nick,
I absolutely love your Bristol Organ, and will be learning (in more detail) how to play keyboards like the B3, Vox and Rhodes.
I was wondering if you had any documentation on how to use settings or work with the presents when using Brighton (Graphical Interface), or if you recommended any links. I see a lot of technical information, but can't seem to locate any information on how to use the graphical settings. I'm trying to switch over from Native Instrument applications from a Windows system to a Linux system this new year.
If you can any sort of documentation more for the user, that would be greatly appreciated :)
Keep up the excellent work!
Murray Saul Orangeville, ON Canada
Hi Murray,
Not sure what kind of information you need but I do acknowledge at the same time that there is not a lot of documentation available for the B3 - I was more wound up in the implementation.
If you just take the main panel (not the options) then you have at the top left:
Leslie On/Off
Reverb On/Off
VibraChorus speed/depth. This does not work too well, use 0 or C3 (chorus)
Bright - this should use different tonewheel waveforms for more higher frequency harmonics.
In the middle you have
2 drawbars for the foot pedals
9 drawbars for the lower manual
9 drawbars for the upper manual.
At the top right you have:
Percussive on 4" pipe
Percussive on 2 2/3" pipe
Slow attack
Slow (long) percussive decay
The level of the percussive 'ping' depends on the settings of the two percussive drawbars. This is not according to the original which actually disconnected these 2 drawbars when the percussive was active. The slow attack was also not on the B3.
On the Left you have
Master Volume
Options panel
Leslie Slow/Fast - you can better leave this on Fast and use the ModWheel to manage the rotational speed.
The reverse keys are memories. This is almost true to the original however here you recall all settings, the original could have a number of presets per manual. For the upper manual there was one memory that enabled percussive for example. Here you get 23 memories, the lower manual black B will save the current memory (you should have to doubleclick). It is just a fast way to recall memories but you can also use MIDI PRG_CHANGE too.
Now, if you select the options panel you have a whole load of parameters that affect the emulator. They are kind of documented in the README file in the distribution. The text may not be completely up to date: I change the reverb algorithm a while ago and I am not sure I updated the README.
Hope that helps a little,
Kind regards, nick.
Thanks Nick, that helps.
If you could just describe how to use the "load" area on the brighton settings interface how to store and reload settings, that would be helpful. When using Native Instruments for the B4, what I like is the ability to quickly load types of general settings, although I know what you are saying about the reverse keys was well...
I teach and write notes on HOWTOs. I will be learning how to use Bristol and Brighton. I have not problems documenting it, and if you like what you see, you can link to it, or use/modify to your heart's content.
I believe performing / recording in Linux very feasible and would like to contribute to "getting the word out there". Bristol is truly awesome, and I appreciate all that you do...
Thanks
Murray
Last question. What do you recommend to generate a "dirty" overdrive sound like with "smoke on the water", "hush", or "gimme some loving"...
Any suggestions would be greatly appreciated...
Thanks, Murray
Hi Murray,
To get a good overdriven hammond sound you would get the best results by piping bristol through a valve amp emulator: guitarix, rackarack, caps all spring to mind, you should be able to connect them up to jack and then route the organ through them. Bristol has a distortion control but it sounds ripped rather than a
typically creamy overdriven tube sound.
You will probably get results off the 'bright' control. There was also another gearbox I once defined that was very 'dirty' - the engine allows you to redefine things like each toothwheel shape, the amount of crosstalk in the comparments and everything. I was thinking of resurrecting the gearbox definition though and posting it on the website for those who did want the more grungy sound. I quite liked the result - the lower harmonics had a real hollow tone due to flattening out the teeth to be more like the original hammond design but without the shaping filters.
Will let you know if I find it.
The request to have a pulldown menubox will have to be pushed out, the GUI cannot do this very easily. It can be done: the memories have fields for patch names and author names but I do not fill them in. Perhaps it is something that could go into one of the bristol management apps like monoBristol?
Regards, nick.
Sorry to bother you.
I was renovating my basement, and stepped away from using my Ubuntu Studio system.
When I run my script, I notice that Bristol organ is NOT displayed in ALSA tab anymore, but in MIDI tab. I can't seem to get my TASCAM US122 device to connect to Bristol organ like before (using the aconnect command).
Even when running aconnect -io
with Bristol organ running, there is no display at all (i.e. no port 129). Has there been a recent change - i.e. did I somehow get clobbered since it was working perfectly in the summer and Fall.
I'm using Ubuntu 10.10...
Any suggestions or information would be greatly appreciated. I want to connect my TASCAM USB device to play the Bristol organ like before...
Murray
Hi Murray,
This is correct, when the Jack MIDI interface became more widely tested and stable (my part, not necessarily Jacks part as that probably already was stable) then I correct my default settings:
-alsa give you ALSA audio and MIDI
-jack gives you Jack audio and MIDI
-oss gives you OSS audio and MIDI
Having Jack with this exception was only a temporary solution. The options you now give are correct. There are a few things you can do here to make life easier for you: create a file ${HOME}/.bristol/bristolrc and add one line as follows:
-jack -midi seq
This will be used as default switches every time you start bristol, now you don't have to type them in every time. There will be some changes to this in 0.60.8 to give some more flexibility but this method will still work. All the changes will be documented in the ChangeLog.
Additionally, attached are some new gearbox files, there are two of them. One is the original 0.30 release which is very grungy - I still think you would need something like rackarack to give you a valve overdrive and speaker cab emulation to get a decent Steve Winwood sound though. The second one is a very clean gearbox - smoother waves and less crosstalk. You might find this works well with external effects processing, I quite like it, the sound is a lot sweeter.
Take this file and put it in ${HOME}/.bristol/memory/profiles/tonewheel and then start bristol. You can load them dynamically but they are really intended for startup. If you don't like them then just delete this copy and you will get the 0.60 default gearbox back. You may have to create the 'profiles' directory but I should do that for you whenever you save a memory.
Kind regards, nick.
Hi Nick,
I upgraded your version, but when I run from command line it gives error regarding jack:
/usr/local/bin/startBristol -b3 -channel 4 -gain 3 -jack -midi seq & [1] 17945 msaul@studio:~$ Requested Jack drivers, not compiled into bristol exit: 437: Illegal number: -1
Now, it just solved a problem with wineasio in order to play the Ninjam application with wine. I had to revert to jackd1 instead of jackd2 in order to allow me to configure audio to jack using Ninjam application.
It was working perfectly!
But, unfortunately, I just can't seem to stay put. I installed your version to test out -geom option, but when running command to startBristol it indicates above message. It seems to me, I have tried everything.
It does state (when running ./configure):
| Build with JACK Session support ................ : false
(I don't know if this is the problem).
I do have libjack-dev installed I have tried this both from zipped tarballs and Ubuntu Synaptic package manager, but to no available.
Are there any additional suggestions you can make?
Murray
Hi Murray,
A quick question, I will give this some more thought later but am kind of wrapped up in family stuff at this time of year. Many seasonal greetings to you and yours.
Can you start bristol as follows, then send me the output along with your config.log?
startBristol -b3 -channel 4 -gain 3 -jack -midi seq -debug 1
You can find your config.log in the directory where you did the ./configure
Kind regards, nick
I will do as you suggest later today. Yes, family is more important at this time - I agree totally! We will be watching the Dr. Who special tonight! Big fans...
Cheers and happy holidays...
Murray
Here is output from your suggested command:
msaul@studio:~$ /usr/local/bin/startBristol -b3 -channel 4 -gain 3 -jack -midi seq -debug 1 Requested Jack drivers, not compiled into bristol exit: 437: Illegal number: -1
Attached is the log file...
Cheers, Murray
I un-installed release 0.6, and installed bristol-0.50.8
using jackd1 and works perfectly...
I will check to see if any earlier versions under release 0.6 to see if that works...
FYI, Murray
I have narrowed down the error to "bristol-0.60.7.tar.gz"
This is where the error occurs. The last version that works is: bristol-0.60.6.tar.gz
FYI, Murray Saul
Hope you had a nice X-MAS holiday with family - I did as well :)
I know that Netbooks are not the best candidates for running Ubuntu studio and keyboard emulations, but I did get it working quite well with my Acer Aspireone A0715h computer, an Maudio 61-keystation, and (with or without) my Tascam US122 USB device.
It nearly works perfectly - although when I press many of keys simultaneously, there is a slight distortion (faint clicking - even if I set voices to 8). I suspect that when running Jack (with RT kernel), it is approaching 86% which is causing that situation.
I was wondering if there were any "tweaks" that could help I recall that I tried the -lwf option . I know I may be limited by the Atom processor, and I could upgrade my RAM from 1GB to 2GB - would a RAM upgrade make a difference?
Anyways, my configuration is "good to go" in my opinion. I will be trying it out over the next few band practices. The multiple pressing of keys using a piano sound font with Qsynth does not create that slight clicking, but I suppose that it becomes more complex with emulating an organ...
Anyways, any suggestions would be greatly appreciated. I suspect I will be using Ubuntu Studio to performing live. I will be creating a full tutorial on how I am performing live using Ubuntu Studio... mentioning Bristol organ of course!
- )
Murray
Hi Murray,
So I would not put the clicks down to memory, much more likely to be CPU load or potentially digital overload, ie, exceeding the resolution of the 16bit audio sample space. Lets see:
CPU load: The -lwf option will have no effect here, these are filter banks for the synths only, I don't use them on the organs. Now I am not sure why the organ should suffer from this, the algorithm (there are two discussed below) is that when you press a single key I run all 92 tonewheels - that is a fat piece of CPU activity. After that taking single keys is actually very efficient. In short, if you can do one voice then you already have the gearbox running and should have pretty unlimited polyphony. Now there are two algorithms I use, one is the above, I call it the Jimmy Smith gearbox - it does emulate all the wheels but uses a big pretty constant lump of CPU. The other is to just use dynamic voice allocation and have each voice generate just the tones it needs. This will have a CPU profile that really does depend on the number of keys. You can select between the two algorithms from the 'Preacher' button in the Opts window.
What kind of CPU profile do you see? With one key pressed I get about 25% load on my company laptop but 100% (over)load on my N900 phone with the Preacher enabled but on the laptop the load does not change much if I press a whole load of keys. Without the preacher I get a few percent per voice but that does change a lot as I press more keys.
You mention an RT kernel: I take it you have cpu speedstepping disabled? That also causes this kind of problem but I know people normally disable this as a normal part of turning the PC into a realtime audio system.
If this is digital overdrive then you can lower the digital gain on the B3 Volume control and increase the offboard gain on your amp however you should be able to hear this by just having a strong signal from the B3 emulator. I do check for this situation as well, ie, if the internal floating point numbers exceed +/-32K I limit the signal level and occasionally display 'Clipping' messages.
Kind regards, nick.
Hi Nick,
I have a Maudio 61 keystation usb MIDI controller keyboard, and was wondering if the b3 organ's gain (or volume) be controlled by that volume slider (it works for Qsynth).
Just curious. I will be testing out Bristol setup live on next week's performance :)
Thanks, Murray
Hi Murray,
You should be able to put the mouse over the volume controller and click the middle mouse button = click both buttons on a laptop. You then move the volume slider on the MAudio, at this point the B3 should connect them both together to give you volume control. You might want to have Qsynth volume on one control and Bristol on another, that way you can do some basic mixing during the performance.
The controller settings are saved when you save a memory, you should be able to double click on the lower manual highest reverse key 'B'. The reversed keys are memories, you can select them quickly here and this B key can save changes if you want to keep them.
Kind regards, nick