Thursday, March 1, 2012

Goal and Outcome




For live gigs, I've always used hardware-based keyboard/synthesizers and that's always worked well. I can only recall having to open a keyboard chassis to fix a loose connector a couple of times, it's a rock solid setup. Hardware-based synths are surely solid and reliable, but are not really upgrade-able... at least for the synthesizers I've owned.  I'd have to buy another keyboard to get any substantial upgrade of sample libraries. Over the past 10 or so years, with the advent of VST-based software synthesizers, it's been really hard to leave those sounds home and go to the gig with my less-liked sounds.

A few months ago, I decided I'd go ahead and take the plunge into PC-based VST hosts. I did quite a lot of research and found that the marketplace is fairly limited. I had always wanted a Muse Receptor, but finding that the company wasn't really focused on those anymore (working on MuseBox) and seeing that the Receptor had a lack of support for the latest VSTs,  I started looking elsewhere. I stumbled upon the OpenLabs SoundSlate. Sounded like something I wanted... hosted VST plugins, was 1 unit high; however, it was for all intents and purposes, discontinued (more about that later).  They did offer a 3 rackunit "music computer", but it had no MIDI or A/D interfaces which would mean I'd need to get a bigger rack... to use that solution, I'd have had to invested in a dolly.

Without options for a lightweight, roadworthy rig, I decided to go ahead and buy the Original SoundSlate.  It was an incredibly questionable and costly investment, but I figured having the VSTs with me would be worth the cash and I was anxious to get something working.

I paid full, original price for the SoundSlate ($2000); however, Guitar Center shipped a used model that wasn't even functional (not pertinent to this Blog, but quite a heralding experience that I will not deal with them on again). Had it been operational, I probably would have stuck with it, but since it wasn't.....

I went out on a limb: I decided to spend a ton of time and energy putting together a lower-cost, reliable solution. I spent a ton of time researching and learning and so I thought, I'd document my new setup and create a bit of a how-to.

Hopefully, if you're looking for a similar solution and are willing to put a little effort into it, this will help you to spend less time at it than I did!  I hope you enjoy and find it helpful.

Buildout : Hardware


Well, the first thing I needed was a rackmount PC. I was dead set on a single rack space unit. Surprisingly, it was difficult to find one that was low-cost and had the horsepower I needed. I wound up going with a PC from SuperLogics. Here's the specs on the one I bought:

Rackmount PC:
Model number : SL-1U-3-H67CF-GC which includes
Rack Mount Industrial PC - 19" 1U, 11" Deep
Intel® Core™ i3 (3.1GHz dual core)
Intel Motherboard with H67 Chipset
8GB DDR3 1333MHz RAM
Onboard 10/100/1000 LAN,
500GB SATA 2.5" 7200RPM HDD,
Onboard graphics subsystem with integrated DVI-I,HDMI, and DisplayPort video outputs,
2 USB 3.0 ports
6 USB 2.0 Ports (2 Front, 4 Rear) - 2 in the front will be handy if you have MIDI via USB controllers,
1 PCI Express x16 Expansion Slot via riser card,
150W Power Supply
1 Year Warranty (Part/Labor -Depot)

Audio Interface:
I had a USB audio/MIDI interface laying around, so that's what I used. It's a Focusrite Saffire USB 6. Nice thing about it is that it's powered by USB, so I don't have to carry around or mount another power supply.

MIDI:
I have two keyboards, but the Focusrite only has 1 MIDI input, so I also purchased a MIDI Solutions Midi Merger. This device will take two independent MIDI inputs (one from each of my keyboards) and merge them into a single output. If you have only one MIDI controller or your controllers have MIDI via USB, you could skip this piece of hardware.

WIFI:
This is optional. I don't want to carry around a keyboard, monitor and mouse to gigs, so I'll need a means of accessing the PC from my Android smartphone in the event (fingers crossed) anything goes wrong.

I had a Belkin 802.11g USB adapter laying around, so that's what I used.

Rack:
For ease of transport plus protection of the equipment, I purchased a Gator GRB Rack Bag (2 rack-space)

Buildout : Operating System

Since all of the modern VSTs support Windows 7, that's what I went with. The particular PC I bought, didn't have a CD/DVD drive, so I used PenDriveLinux (http://www.pendrivelinux.com/) to put the Windows installation on a USB stick. Next, I booted to BIOS and set it up to boot to USB.

After installing Windows, I tweaked it a little. I disabled the following services :
Background Intelligent Transfer
Offline Files
Print Spooler
Windows Update (if you're going to keep this thing plugged into a network, you'll want to manually update periodically.... problem with leaving this service running is that it'll want to download, install and reboot your PC all the time... even when you don't want it to). UPDATE: In order to use Update manually, you'll need to temporarily enable this service in order to do so.
Windows Search
Windows Media Player Network Sharing

I disabled the screensaver and under Control Panel->System->Adjust the appearance and performance of Windows, I selected "Adjust for best performance".

NOTE: I had installed Microsoft Security Essentials, but found that it added another 15 seconds to boot time. It's a gamble, but I uninstalled it. I won't be browsing the Internet or installing any questionable software on this PC.

Since I don't have keyboard/video/mouse attached to the PC, I've assigned the power button to "shut down". This is under Control Panel->Hardware and Sound->Power Options->System Settings

I also disabled all of the system sounds. This is in the Control Panel and is called "change system sounds". Set the Sound Scheme to "No Sounds" and uncheck "Play Windows Startup Sound"

Disable SuperFetch service.  In a live performance you're only going to be loading 1 application : your VST host.  You don't need Windows spending time trying to figure out and pre-load applications it thinks you might like to open at some point.

Disable ReadyBoot : This service knocks off 20% of your boot time; however, keeps the hard drive thrashing for 30-40 seconds after boot.  Definitely not worth it... especially if you're loading tons of sounds into memory at boot up.  To disable, launch the "Reliability and Performance Monitor" program (under "System Tools" inside "Computer Management"; or via any of the other routes to launch this program). Then on the lefthand side of your screen click "Data Collector Sets", and underneath that heading click "Startup Event Trace Sessions". Now on your righthand side you'll see a list that includes ReadyBoot, and you'll see the word 'enabled' beside the word 'Readyboot'. Double clicking the list item brings up the ReadyBoot Properties dialog. This dialog has a number of tabs. Pick the "Trace Session" tab. Finally, uncheck the "Enabled" checkbox on that tab.  IMPORTANT: you have to disable the SuperFetch server or else, Windows will just re-enable ReadyBoot next time the PC starts up.

Buildout : VST Host


In order to use VST plugins, you'll need a VST host. There's a lot of options here. I've actually used Sonar in the past to host a few plugins that I controlled from MIDI keyboards, but there's Ableton, Cubase, "VSTHost", Cantabile etc...

Having tried out many of these, Cantabile is the one that easily won out. For a live setup, where you don't want to have to 1) touch any software or 2) be limited to 16 sounds because that's all the MIDI channels you have or 3) have to wait for your VST to load, you should definitely take a look at it. It loads all of the VSTs on startup, allows you to create programs (songs) that automatically map your MIDI input to whichever VST (and VST MIDI channel) and sets all of this up so that all you have to send from the keyboard are program changes.

You can download a 30 day full-featured trial at www.cantabilesoftware.com

Cantabile Setup
Here are some configuration settings I had to make in order to use Cantabile in a live setup :

Options->General
Saving and Loading-> Save Modified Sessions = NO. This is a MUST because if you don't set this, the program will prompt you to save each time you switch programs (songs). You'll be stuck on the same sound if you have no way of interacting with the software.


Options->Startup/Shutdown

Uncheck "Scan VST folders on startup" - this is just an effort to reduce loading time
Check "Prevent Power Suspend"


Options->Resources

Check "Don't prompt to reload configuration after crash". This is important if you use the Power Button on your PC to shut it down. For some reason, Cantabile doesn't exit gracefully, so if this isn't checked, when Cantabile starts next time, it'll prompt to reload the last session and you'll have to log on to the PC in order to click "YES".

Much more to come on using Cantible....

You'll want Cantible to load at boot.  You can either set this up in the Cantabile settings OR you can create a startup script like I did.  Here it is :

You can name it whatever you like, but you need to put it under the Startup folder so that it's loaded on boot. 

-----------START start_cantible.bat------------------
TIMEOUT /T 10
START "" /HIGH "C:\Program Files (x86)\Topten Software\Cantabile Performer 2.0\CantabilePerformer20.exe"
TIMEOUT /T 15
START "" /HIGH "C:\Program Files (x86)\Topten Software\Cantabile Performer 2.0\CantabilePerformer20.exe" "/config:Alt Config"
------------END SCRIPT---------------

NOTE:  this script loads two instances of Cantible.  I won't get into it now, but for a 2 keyboard setup, where you want each keyboard to be independent, you'd set each keyboard to transmit on different MIDI channels.  Then you can set up each instance of Cantible to load either the same or different session files and set up a global MIDI filter to only receive from the expected keyboard.  More on this later....

Buildout : Disaster Recovery


Once you have your rig setup, you'll want to create a disk image so that you can re-roll your PC in the event of some disaster. Check out DriveImage XML at www.runtime.org/driveimage-xml.htm

DriveImage XML is free for personal use. You have two options when using DriveImage XML. Which one you use depends on how paranoid you are. :)

Create a clone of the internal hard drive to an external drive. This would come in handy if you wanted to carry around a backup in the event of a HD failure... if something went wrong with the internal HD, you could just plug in the USB/SATA external drive and boot from that.
Create a copy of the internal hard drive to a folder. This can go anywhere, but it's probably best to put it on an external hard drive.

Buildout : Remote Access


Since I don't want to carry around keyboard/video/mouse, I've taken another approach. I've installed a WIFI USB adapter to connect to my home network and have set up an "Ad Hoc network" that starts when the PC is booted.

Setting up your home network is a cinch; however, it took some doing to figure out how to automatically have the Ad Hoc network start at boot.  Here's what you have to do:

Create a batch file (I named it "start_network.bat" and put it under my documents). Contents of the batch files need to be :

-----------------------------------START-----------------------------------------
net wlan set hostednetwork mode=allow "ssid=YOUR_GIVEN_NAME_FOR_THE_NETWORK" "key=ANYPASSWORD" keyusage=persistent

netsh wlan start hostednetwork
 ------------------------------------END------------------------------------------

One would think they could just put this file under the "startup" folder in the start menu... WRONG. Won't work, you need admin privileges to run this. The only option is to add it to the Scheduled Tasks. Here's what you have to do:

Go to Start->All Programs->Accessories->System Tools->Task Scheduler

So, in the Task Scheduler, I created a new task that runs my batch file. Here's the properties of the new task:
General->Run whether user is logged on or not, Run with highest privileges
Triggers->At system startup
Actions->(this depends)"C:\users\YOURUSERNAME\Documents\start_network.bat"
Settings->"run task as soon as possible after a scheduled start is missed" should be checked.

Connecting via RDP or VNC :

I have an Android phone that I carry with me everywhere. So, that's my keyboard/video/mouse for my VST PC when in a pinch. Having set up the Ad Hoc network means that I can connect to that network (the one from the batch file, YOUR_GIVEN_NAME_FOR_THE_NETWORK) and RDP or VNC to connect to my PC at 192.168.173.1.   RDP is much faster than VNC, but VNC is more supported.  Both are supported under any Android or even iPad/iPhone smartphone or tablet.

Also of note, having set up an Ad Hoc network doesn't exclude the VST PC from connecting to my home network. The home network is my most desirable means of connecting to the VST PC; however, when the home network is not available (i.e. at a gig), the Ad Hoc network is always there just in case.

Buildout : Rack Mounting

So, I mounted the PC on the bottom space of the 2 space rack.  The other two pieces of equipment I needed to mount were the Focusrite A/D unit and the MIDI Solutions MIDI Merger.  Since neither of these have rackmount abilities, I used Industrial Strength VELCRO.  The kind I bought his 4 x 2 inches and is pretty solid.  Should be find for many years to come.

Finale




So, that's it in a nutshell. I'll be taking pictures and adding more configuration information about the rig and posting those as well.

Here's the monetary break down :
PC : about $900
Focusrite : about $200
OS : I really wish these VSTs would simply run on Linux... that would bring the total cost down and performance up.  As this blog might suggest, I've spend umpteen hours trying to figure out how to make Windows more efficient for VST-only hosting.  The original reason I wanted a Muse Receptor was because it DID run Linux... a scaled back version that was built just to suit VSTs... a petal-to-the-metal setup.  Alas, that unfortunately doesn't work.  So, you'll need Windows at this stage in the game.  And, if you have to actually pay for Windows, then rack up another 160+ dollars to this total.

Of course this doesn't include VSTs (but then again, neither do the other hardware solutions).  To date, the pay-for VSTs I'm running are :

  • Kontakt
    • Vienna Grand (from Galaxy Pianos).  I like it very much.
    • Vintage Organs (from Native Instruments).  Nothing better for B3 sounds
  • Lounge Lizard Electric Pianos.  It's okay, but for Rhodes, I've never encountered any VST plugin that comes anywhere close EVP73 that was made by eMagic, bought out by Apple and thereby ruined.  Lounge Lizard ain't bad.
  • Cakewalk
    • SI-String Section - not  bad.  not bad at all.  Map the "attack" controller to one of your MIDI knobs on your keyboard and you'll be surprised at the available dynamic.
    • Rapture - LOVE IT - really cool "sequence" sounds.  Map one of your MIDI knobs to Cantible's tempo.  
    • Z3ta+ - lots of very cool sounds.  Still can't figure out how to map the modulation wheel to the chaos needed for 80s Saw Wave sounds.  Here too, make sure you've mapped a MIDI Controller to the tempo of Cantible... most of the sounds have tempo-delay/slap-back.
    • Dimension Pro - Here too, lots of decent sounds.  Definitely worth keeping in the arsenal.
  • Guitar Rig 4
    • Some good amp sounds.  I've been routing my Rhodes sounds into this... lots of interesting sounds.
  • I've been on the lookout for a good all-inclusive VST library.  Hard to find.  Aside from the sounds I have, I really need good Pop Brass Section sounds, good harmonica, good accordion, but can't seem to find the solution.  I've tried Colossus and I really liked the Brass sounds but was not impressed with much else.  I've tried Kontact, was impressed with some things, but certainly not the Brass.  :)  Crazy.... why can't someone just create a very playable and believable sound library?  UPDATE: Purchased Komplete 8 - it's a pretty good collection of sounds.  In particular, the Vintage Organs and Vintage Electric Pianos are very good.  The Rhodes and Clav sounds are very detailed and sound extremely authentic.  The MBass plugin is also very good and detailed.  Kontakt has a pretty good mix of sounds.  It's not as well rounded as most hardware synths on the market, but the sounds it does have are pretty good.  

Barring that, I'm very happy with the VST sounds that I have.  All so far, far exceed what I had previously with my hardware-based synthesizers.  

I do hope that if you have any questions or suggestions about my setup, you'll let me know.  I look forward to hearing from you.


Thanks,

Donnie Guedry