Being a sick and twisted person I actually enjoy some amount of limitations in my musical tools. Limitations can be frustrating, no doubt about it, but they can also be inspiring and, for me, strangely liberating. I’m a tinkerer if there ever was one and anything that forces me to keep things simple and get things done — instead of spending hours and days exploring endless possibilites — is a good thing. I’m guessing this helps explain why I’m still using decades-old sample libraries on an ageing quad core machine and don’t even have the decency of apologizing for it.
Anyway, I picked up a netbook for €20 late last year, a circa 2010/11 Acer AspireOne. In case the “netbook” designation hasn’t made it clear already, this is not a powerful machine by any stretch of the imagination. It has a 1.6GHz Atom processor (with two logical cores, though whether that makes any difference for audio processing tasks I’m not sure), 2GB RAM, a 160GB hard drive, and runs Windows 7 Home 32 bit. There are smart phones around these days that can run circles around this machine in terms of processing power.
As always when I get my hands on some hardware, I can’t help myself. The question needs to be asked, and answered: can you make music on this thing?
I know that REAPER is as lean as it gets. It will literally run on anything with the right processor architecture and OS, so that didn’t worry me overly much. The question was whether it was possible to load anything useful into REAPER without the little computer burning to a crisp?
I went about exploring this possibility, which resulted in Winter’s Call. The project had three instances of sfz+, 48 midi channels, 25 audio channels (8 outputs per sfz+ instance and ValhallaRoom as a send reverb) plus various insert plugins like EQ and midi tools. Not too shabby for a machine that couldn’t stream HD video even if its life depended on it, right?
So yes, you defintely can make music on it. Working on Winter’s Call made a few things clear to me though. sfz+, old as it may be, was a tad too heavy for the netbook. During the denser parts of the arrangement the CPU was hovering around 90-95%, making the interface very sluggish and I would get intermittent crackles and dropouts. All this using the WASAPI driver in W7 with a 11ms latency. Needless to say, I couldn’t use a higher buffer as that would make live playing impossible.
So, looking at the project as a stress test, this little computer could handle a lot more than I thought. Was it a pleasant working experience? No. I realized that if I’m going to do this, I would need to trim off even more fat where possible.
First of all I would need an alternative to sfz+. Preferably with the same features, only lighter on CPU. The answer came in the form of Jeskola XS-1, an old multitimbral soundfont player that went freeware a few years ago. XS-1 has the same basic functionality as sfz+ (and even some nice stuff that sfz+ lacks, like selectable filters, portamento, built-in EQ) except for one major thing: XS-1 has only a single stereo output per instance.
I did some thinking and realized that this isn’t really a big deal as long as I put some thought into what instruments go into which instance of the plugin. All string sections sharing the same reverb level isn’t really a problem. Brass and winds together — yeah, it’ll have to do. Percussion together with various solo instruments that won’t fit into the main strings/brass/winds instances… not really optimal, but what the hell. This is all a compromise between sound quality/realism and resource usage anyway.
So, this is what the template looks like so far:
REVERB (ValhallaRoom)
STRINGS (Jeskola XS-1 #1)
1. 1st Violins sus (p/f)
2. 1st Violins stc
3. 1st Violins piz
4. 2nd Violins sus (p/f)
5. 2nd Violins stc
6. 2nd Violins piz
7. Violas sus (p/f)
8. Violas stc
9. Violas piz
10. Cellos sus (p/f)
11. Cellos stc
12. Cellos piz
13. Contrabasses sus (p/f)
14. Contrabasses stc
15. Contrabasses piz
16. Full strings trm (section panning preserved)
LAYER STRINGS (SFZ Player)
1-16 Matching the above
BRASS & WINDS (Jeskola XS-1 #2)
1. Trumpets sus (p/f)
2. Trumpets stc
3. Horns sus (p/f)
4. Horns stc
5. Trombones sus (p/f)
6. Trombones stc
7. Tuba sus (p/f)
8. Tuba stc
9. Flute sus
10. Flute stc
11. Clarinet sus
12. Clarinet stc
13. Oboe sus
14. Oboe stc
15. Bassoon sus
16. Bassoon stc
PERC & MISC (Jeskola XS-1 #3)
1. Bass drum (hits/rolls)
2. Snare (hits/rolls)
3. Cymbals (hits/rolls)
4. Toms
5. Timpani (hits/rolls)
6. Glockenspiel
7. Small percussion
8. Solo violin
9. Solo cello
10. Solo trumpet (p/f)
11. Solo horn (p/f)
12. Solo trombone (p/f)
13. Piccolo
14. Harp
15. –
16. Male/female choir (split L/R)
And this is what it sounds like. Not bad for ~1GB of samples, right?
As for libraries used, the strings are Roland (except for the contrabasses, which are Advanced Orchestra) subtly layered with Miroslav. The brass is AO, winds are Miroslav. Bass drum, snare, cymbals and Timpani are Roland, the glock is the old Ethan Winer freebie, small percussion and solo trumpet are Westgate, choirs are Miroslav. The harp is some samples that came with Kore Player originally that I mapped into a standalone patch. Everything, of course, in sf2 format.
Finally it should be mentioned that this template is of course not intended for any serious VO productions. I lug the netbook around a lot and it’s very nice to have a passable orchestral setup with me wherever I go, for getting ideas down or just composing for fun. But the challenge of squeezing all the basic orchestral building blocks through a tiny window of RAM and CPU power is in itself very educational and satisfying.
Fascinating what you got to work there. What I’d like to know, how did you get all those samples into sf2, did you re-record/map them yourself or did you use a tool for that? Also, what was the bottleneck of this setup eventually? Was it RAM or CPU?
I’m running projects on my rather netbookish notebook myself (Aspire E3-111 with Intel Core N2930/8GB RAM), but since I use it to carry my projects to university everyday, I just mirror my software setup from my workstation. That means Cubase 7.5, Halion Symphonic Orchestra (4 Instances with ~12 instruments each), Valhallaroom and a couple of channelstrips for the groups. I mostly reach around ~80% CPU. Until there’s a tutti part, that’s when everything overloads and I need to freeze things.
I’m sure it would help to get rid off the heavier samplers (Halion for example is such an incredible CPU beast) , but is it even possible to “convert” a patch that smoothly transitions between dynamics using the mod wheel?
However, great sounding demo and great article too!
A friend of mine has converted a lot of stuff for me to either sfz or sf2 format, though I don’t remember exactly what software he uses, I know he has Extreme Sample Converter but he has other stuff as well. For converting from sfz to sf2 and general patch editing I used Polyphone:
http://www.polyphone.fr/
As for bottlenecks, it’s mainly the CPU. I have a few hundred MB of RAM to spare and I could technically load more samples if I make sure to use smaller ones, but the overhead of adding another instance of XS-1 and 16 midi channels would probably be too much for the CPU to handle. I prefer having a relatively snappy setup with fewer instruments than a more full-featured template that teeters on the brink of breakup. Like I said above, it’s all a compromise.
I doubt that it will be possible to convert Halion patches to a different format with features like mod wheel transitions intact. Halion isn’t really a very common format so I’m not sure how many converters will even be able to read it.
It made me think again about buying a new notebook to make my songs. Very nice tips as always, thanks!
Pingback: A musical fantasy suite |