User Tools

Site Tools


Towards Maximum Strings

In addition to development on the Supermega Rumblic Organ, I have been enjoying Strings sounds for a long while. My favorites have been called “Strings” and “Strings Section” and the like, on a variety of keyboards.

But I have steadily realized that I want a rather extreme range of tonality and expression under my fingers. First of all, I want toilet-seat-rumbling bass available like for the S.R.O.! It also has to be very controllable, so the black-velvet-pillow effect is very close at hand. But it should have a beautiful low-midrange of celli, and highs which can range from gentle to powerful but never screechy; the highests needs to be playable as soft but very very very clear.

This is quite the tall order for one 88-key spread, or even three or four, and I had never been convinced it was practical. But one day the band leader at the church came up with a really profound song which just begged for all of it, so I began looking at the problem yet again.


For this purpose, over the years, I have tried quite a few different toolsets, and many different standalone keyboards. For a long while I could not get strings up to the quite nice bar set in my Yamaha MO8 and similar instruments. But then there was an architecture change :-)

In other words, my venerable AMD second-generation X4 box was wearing out. It was starting to get just a little unpredictable, boot times changing without straightforwardly identifiable cause, occasional weird and thoroughly unknown sounds out the audio, et cetera. So finding the Creator having given satisfactory wherewithal, I spent the same amount which some pay at retail electronics stores for an ordinary office desktop at 3B Tech, for an eight-core AMD, 4GHz without overlocking (!). And began studying what could be improved. As it happens, there was lots of room for improvement :-)

First step: Lots of tone

The first thing I tried was throwing as much good strings-tone as seemed to make some kind of sense, into the mix :-) So looking around a lot, I found and obtained the Sonatina Symphonic Orchestra soundfonts, which includes more than twelve different strings, ranging from double bass to violin, several in sets. The SSO originals ship in SFZ form, and after much study it appeared that the only current Linux SFZ player is LinuxSampler, so I set it all up, and tested. Glorious bass, with a very nice friendly personality, omitting the flat roar element of previous setups. Midrange very nice indeed, the best I had tried; mid-highs excellent. Highs still screechy.

Second step: 96KHz

Dealing with the screech was tough. The third or fourth big thing I tried, was changing from 48KHz audio to 96KHz audio. Quite the big change actually, because relatively few people are using 96KHz, it puts quite the added load on everything, software and hardware. But that gave me the most beautiful feather-highs, the like of which I have never heard from anything else, and this hardware can take it with room to spare!!!

But then a dose of reality.

But I noticed that after playing for short whiles, between 5 and 15 minutes, static was creeping in. This was quite mysterious, I had never seen this before; it was not xruns, no errors showing up anywhere, just a bit of static every so often, increasing very slowly over time. I searched far and wide, and asked a number of people excellent in the field; the best suggestion was that 96KHz was just too much for some of the elements of my software chain. So I started switching out components a bit. And then a lot! The same thing happened with many different variations on LinuxSampler running the SFZ's, so I began using an SF2 version of the SSO, and tried that in QSynth, FluidSynth by itself, LinuxSampler, and Carla. Carla I had the most hope for, it is a very nice concept and generally great implementation; but the static problem remained. So then I tried the Calf FluidSynth plugin – and voilà. Lovely!

And the pesky overload problem.

I'm not sure whether other Linux musicians face this as much as I do. It may very well be that I do tend to try to stuff more audio signal into the stream than most – I do remember managing to get a hexagonal peg in a round hole in nursery school :-) But regardless, this is a case where every MIDI trigger note is going to result in cascades of signal out, and we do have to be careful to handle it well. Happily, the first thing I tried for this has been working very well: jack_mixer. I now have a jack_mixer input channel for each of my twelve Calf FluidSynth soundfonts, and all of them are gently and gracefully mixed into the default jack_mixer output channels. Wonderful!

towards_maximum_strings.txt · Last modified: 2015/05/19 13:13 by jeb