Open main menu

CDOT Wiki β

Changes

Correspondence with Nick Copeland

12,689 bytes added, 11:15, 2 February 2011
no edit summary
Hi,
I really like your killer app! I had purchased Native Instruments B4 5 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.
<span style="color:blue">Hi Murray Saul,<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />Kind regards, nick.</span>
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 doHi Nick, Attached is a rough shell script showing launching of bristol apps. You can run 7 different bristol emulators over Jack (use the -audiodev option asked me to separate them) or if you use the -engine feature then send a shell script so you can run 7 emulators on the same bristol enginelook at it. 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.Also 2 other questions:
1. Is there a way to place different organs on different locations on screen?(I am pretty certain you will get better results if you go for 0.60.5tried -geometry +#+#, the most recent release. but didn't work - I would be interested in seeing an example shell script for how you start all of these, it would show which method you are 'm using and I could also give some feedback on other options you could use0.4)
2. Are there keyboard commands as shortcut to control the parameters of the organs?
Kind regardsThanks, nick.Murray Saul
"we have to make sure the old choice [Windows] doesn't disappear”.
Jim Wong, president of IT products, Acer
<span style="color:blue">Hi Murray Saul,<br /><br />I will have a look at the script presently, bit bogged down in work at the moment.<br /><br />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:<br /><br />startBristol -mini -ar<br /><br />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.<br /><br />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.<br /><br />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?<br /><br />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 keymappings for controller movement though.<br /><br />kind regards nick.</span>
<span style="color:blue;font-weight:bold">Hi Murray Saul,<br /><br />The next release will include a -geom/-geometry option which will allow you to do window placement. The following should be honoured:<br /><br />-geom +100+100 will do just window placement<br />-geom 800+100+100 will scale the width to 800 pixels, adjust height to maintain aspect ratio and place the window<br />-geom 800x200+100+100 will take the literal size you request and place it on the screen, aspect ratio is lost.<br /><br />The interface will also configure antialiasing if the window size changes by more than about 10% from default.<br /><br />kind regards. Nice feature by the way, am glad your requested it as I had never considered the option and it seems pretty useful.<br /><br />nick.</span>
Murray
 
<span style="color:blue">Hi Murray,<br /><br />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.<br /><br /> 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?<br /><br />Kind regards, nick.</span>
 
Hi Nick,
Canada
<span style="color:blue">Hi Murray,<br /><br />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. <br /><br />If you just take the main panel (not the options) then you have at the top left:<br /><br />Leslie On/Off<br />Reverb On/Off<br /> VibraChorus speed/depth. This does not work too well, use 0 or C3 (chorus)<br />Bright - this should use different tonewheel waveforms for more higher frequency harmonics.<br /><br />In the middle you have<br /><br />2 drawbars for the foot pedals<br />9 drawbars for the lower manual<br />9 drawbars for the upper manual.<br /><br />At the top right you have:<br /><br />Percussive on 4" pipe<br /><br />Percussive on 2 2/3" pipe<br />Slow attack<br />Slow (long) percussive decay<br /><br />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.<br /><br />On the Left you have<br /><br />Master Volume<br />Options panel<br />Leslie Slow/Fast - you can better leave this on Fast and use the ModWheel to manage the rotational speed.<br /><br />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.<br /><br />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.<br /><br />Hope that helps a little,<br /><br />Kind regards, nick.</span>
Murray
 
<span style="color:blue">Hi Murray,<br /><br />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.<br /><br />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.<br /><br />Will let you know if I find it.<br /><br />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?<br /><br />Regards, nick. </span>
Murray
 
<span style="color:blue">Hi Murray,<br /><br />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:<br /><br />-alsa give you ALSA audio and MIDI<br />-jack gives you Jack audio and MIDI<br />-oss gives you OSS audio and MIDI<br /><br />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:<br /><br />-jack -midi seq<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />Kind regards, nick.</span>
Murray
 
<span style="color:blue">Hi Murray,<br /><br />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.<br /><br />Can you start bristol as follows, then send me the output along with your config.log?<br /><br />startBristol -b3 -channel 4 -gain 3 -jack -midi seq -debug 1<br /><br />You can find your config.log in the directory where you did the ./configure<br /><br />Kind regards, nick</span>
 
Murray
 
 
<span style="color:blue">Hi Murray,<br /><br />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:<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />Kind regards, nick.</span>
 
 
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
 
 
<span style="color:blue">Hi Murray,<br /><br />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.<br /><br />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.<br /><br />Kind regards, nick</span>
13,420
edits