Thursday, November 27, 2008

Happy Thanksgiving!

While I was getting ready for the Thanksgiving Day feast, it dawned on me that of all the holidays in the United States, Thanksgiving is the only major holiday without its own soundtrack. I don't know why this is, but it seems odd to me.

Christmas Music is a genre unto itself. Valentine's Day has any romantic songs as an appropriate soundtrack. St. Patrick's Day is the traditional stomping ground of any bawdy singalongs. New Year's Eve is filled with songs of reminisce, with "Auld Lang Syne" as the benchmark against which all others are judged. Even Independence Day, Veteran's Day, and Memorial Day have the canvas of patriotic songs that have been deemed "correct".

Yet Thanksgiving only has a few odd novelty songs that really don't do it justice, like Adam Sandler's "Thanksgiving Song". Why haven't we ever found a voice for Thanksgiving? Perhaps it has become so overshadowed by Christmas that nobody cares much about the spirit of Thanksgiving being expressed in song. We gorge ourselves on food, watch some TV, and get up before dawn the next day to fight the crowds and start our Christmas shopping in unison like so many lemmings racing off a cliff, leaving Thanksgiving as a faint memory of having extra time off work.

So what should Thanksgiving sound like? How do you express overeating, football, and the sneak preview of the family stress to come at Christmas? What suits it? Intimately happy songs like Christmas carols? Songs of gluttony and excess? Teen pop? Today the Jonas Brothers performed at a halftime show, which was strikingly odd - they were playing while surrounded by the Dallas Cowboys cheerleaders. It was jarring, but was it Thanksgiving music?

We need to find a voice for Thanksgiving. What does it sound like to you?

Read the full post here!

Saturday, November 22, 2008

Gear Review: Make Your Own Noise With SynthEdit

There is one major reason for the explosion of freeware VSTs available on the web: SynthEdit. If you've never heard of SynthEdit, you've no doubt been the beneficiary of the program. There are a huge number of plug-ins available that were designed with this program, many without any evidence that they were built in SynthEdit. And it's fairly easy to make it work.

What Is It?
SynthEdit, developed by Jeff McClintock, is labeled a "Modular Synthesizer" for Windows. Using a graphic interface, with a "connect the wires" interface, you can create pretty much any plug-in you desire, from a synth to an effects unit, or any sort of hybrid thing you can imagine. It also includes a Save-As-VST function that allows you to use anything you built in any VST host (pretty much any DAW).

How Does It Work?
Written in C++, SynthEdit comes with a battery of component types, ranging from oscillators, filters, math functions, MIDI controllers, memory functions, as well as a host of sliders, knobs, and other control objects. Every object has inputs and/or outputs, color-coded by the type of connection it needs. By connecting up wires between components, you are essentially doing the same thing on-screen that you would be doing with wires and solder if you were building a machine in the physical world. Except here you don't have to worry about causing damage from connecting the wrong bits together.

Is It Really That Easy?
Yes and No. First, it takes some time to figure out what the various pieces and parts do, and how to control them. Thankfully, there are a few examples (and links to more on the SynthEdit web site) to help get you started. I took a stab at following the instructions for the 3-Oscillator Synth posted under "Building Tips" on the web site. It was a good starter tutorial that let you start building simply, and then adding pieces one section at a time.

I say it is also NOT that easy, because there is such a range of options available with the initial download that it wasn't immediately obvious what they did and/or how to use them. (To be honest, some of them are still so foreign to me I haven't the foggiest idea how to use them) I would be willing to bet if you know something more advanced that I do about audio electric design, you'll probably be able to get more use out of it that I have so far.

Help! How do I...
The included Help files are absolutely wonderful. It gives straightforward answers to how to use the program and the features, though in some cases you might need to do some web searching to figure out the theory behind the uses. For the most part, if you are patient and read thoroughly in the help files you can get the explanations you need.

The SynthEdit Community
SynthEdit appears to have a very good community following. Their Yahoo Group has activity pretty much every day, with bug reports and feature requests usually answered within a few hours or so by Jeff McClintock himself. It is always a good sign when the developer is actively interacting with the users, which is something that a lot of the "big box" companies lack.

There is also a lot of sharing going on. Users post new bits of code and new modules they are working on all the time. Chances are fairly good that you can find extra pieces or examples of things you can learn from by looking at the files posted on the Yahoo Group.

For The Hardcore...
If you are a C++ programmer and want to design your own modules for SynthEdit, there is an SDK available on the site. This allows you to "roll your own" to enhance and expand SynthEdit to whatever level you want to take it. This add-on functionality really enhances the option, especially with the active user community.

Alas, It Is Not Free...
Keep in mind, though, that SynthEdit is not a free program. It is shareware. The trial version has some limits (number of patches allowed, only 2 outputs, etc) and has "SynthEdit" plastered all over it. (The registered version will let you remove all traces of SynthEdit, and even let you add your own nag screen to your plug-ins) The registration fee, currently a modest $50, is very reasonable for a program of this quality. The trial is not time limited, so you can give it a good test drive before you decide to buy it.

Bottom Line
Between the quality of the program, the depth of options, the sheer quantity of user-created modules you can use to enhance the program, the great developer support, and the ability to make your own VSTs, it would be hard to argue against this program being a great value. The true deciding factor is how much time and dedication you want to spend on learning to build your own machines. It could be pretty consuming, but the end result is probably worth your while.

You can get it from the official site at http://www.synthedit.com.

Read the full post here!

Tuesday, November 18, 2008

Where is My Cowbell? (a.k.a. General MIDI Drum Assignments)

When you are first beginning to use Drum VSTs, it sometimes comes as a shock when try to actually find the notes that trigger the sounds. This is primarily because drums are attached to individual notes (unlike a synth that you can play up and down the range). It is also because not all Kits are created equal. Most freeware drum VSTs only offer support for a standard 8 drum kit, sometimes more, sometimes less. This makes the game of "find my drum triggers!" even harder, if you're just hunting and pecking.

General MIDI standards
Fortunately for us, this has been a problem from the early days of MIDI music. The General MIDI standard was developed in 1991, and expanded in 1999. In a nutshell, the General MIDI standard included several pieces, most notably the assignments of specific instrument assignments to specific bank slots. So, for example, instrument 10 is always a Glockenspiel on an instrument that adheres to the General MIDI standard.

Drum Standards
For the mostly software-based home studio, most of the General MIDI standard doesn't impact too much, since we are more likely to have pieces that are custom-written specialized for out gear. The portion that I think is more important is the General MIDI Drum Standards. According to the standard, Drums should always be on MIDI Channel 10 (and 11 if you have 2 kits in use at the same time). Even more useful is that specific drum sounds are identified by specific note numbers. Notes 35 to 81 are identified as very specific sounds.

Why Should We Care?
Simply put, it allows you to swap out full drum kits without having to tweak your music. If we didn't follow a common standard, that means to change from one drum VST to another might require you to re-write all the drum parts to connect the entered notes in your DAW to the actual notes the new VST wants. By using General MIDI Drum Assignments, everything is much more portable. And easier to find the sounds you're looking for. (In the piano roll in most DAWs, you should have the option to see "named notes" or "note numbers", so you can see exactly where these sounds should trigger from.)

General MIDI Drum Note Assignments
35 Bass Drum 2
36 Bass Drum 1
37 Side Stick
38 Snare Drum 1
39 Hand Clap
40 Snare Drum 2
41 Low Tom 2
42 Closed Hi-hat
43 Low Tom 1
44 Pedal Hi-hat
45 Mid Tom 2
46 Open Hi-hat
47 Mid Tom 1
48 High Tom 2
49 Crash Cymbal 1
50 High Tom 1
51 Ride Cymbal 1
52 Chinese Cymbal
53 Ride Bell
54 Tambourine
55 Splash Cymbal
56 Cowbell
57 Crash Cymbal 2
58 Vibra Slap
59 Ride Cymbal 2
60 High Bongo
61 Low Bongo
62 Mute High Conga
63 Open High Conga
64 Low Conga
65 High Timbale
66 Low Timbale
67 High Agogo
68 Low Agogo
69 Cabasa
70 Maracas
71 Short Whistle
72 Long Whistle
73 Short Guiro
74 Long Guiro
75 Claves
76 High Wood Block
77 Low Wood Block
78 Mute Cuica
79 Open Cuica
80 Mute Triangle
81 Open Triangle

Closing Thoughts
These are only applicable to instruments that adhere to the GM Standard. Not everyone honors the standard, and there are variations created by plug-in makers who are apparently blissfully unaware that they are making something completely incompatible with any existing drum standard. There are also a number of other accepted formats (mostly pricey "pro" kits) that don't necessarily adhere to the GM Standard. Keep an eye for GM Standards-compliant packages while building your discount studio. It will make transitions a lot easier, and you will always know where your cowbell is. (It's note 56, in case you missed it.)

Read the full post here!

Thursday, November 13, 2008

REAPER Tutorial: Multi-Out Drum Tutorial

One of the hardest parts of a home studio to "get right" is the drums (unless you happen to really be a drummer). In a world of free and/or cheap tools it is hard to find a good virtual drum kit that gives you the options needed to get a solid drum sound and have the ability to mix the drums off into separate channels.

With most free drum VST instruments, if you want to be able to treat each drum separately (i.e. if you wanted to do something like add some extra reverb to ONLY the bass drum), you would be forced to use multiple instances of a standard drum VST, and program each drum sound as a separate instrument. This causes 2 problems: it increases your processing overhead by running 8 or more versions of the same VST (eating your CPU power like candy), and it is really hard to lock in your drum pattern when you're dealing with so many separate MIDI tracks feeding the sound of your drums. Notice I said "most free drum VST instruments"?

GTG Drum Sampler I
GTG makes some absolutely wonderful drum sampler VSTs (and some pretty good synths, too). Most of them feature a stereo out, but the GTG_DrumSampler I features a total of 9 outputs; 1 main output and 8 individual outputs for each piece of the drum kit. The UI has a nice picture of a Drum Kit, and the drums vibrate when they are played, which is a frill, but it's a nice touch.
Configure Your Outputs
First we want to configure the track itself for the drums. Since we know GTG Drum Sampler I has a total of 9 outputs (8 for individual drums), we will need to reconfigure our track for 8 channels. On the track where you want the drums, click on the "io" button on the left of the track panel. This will open the routing window for that track. There is a field in the top left labeled "Track Channels". This usually defaults to 2. Change that to 8.


Configure the Drums
Now that we've expanded the channels that this track will control, let's go to the UI of the DrumSampler I. In the top right of the window, there is a button labeled "9 Outputs". Click this to get the routing matrix for the drum kit. You will get REAPER's attempt to do what you want, which is a stair-step appearance, and completely useless as it is. It is useless because as is you will ONLY hear the bass drum. Here is where the labels take some getting used to. If you just want to hear all the drums together, you need to fill in the boxes for outputs 2 through 9 across the top row (Channel 1). This will play all the sounds through the left channel.

For our purposes, we want all the drums isolated. So instead, let's make the routings in this order: 2->Channel 1; 3->Channel 2; 4->Channel 3;etc. Your routing diagram should look like the one shown here:

This configuration means that the first drum (bass drum) will be output on channel 1, the second instrument (snare drum) will be output on channel 2, and so forth. To see a complete list of the outputs, click on the INFO text in the to middle of the Drum Sampler interface, and it will change to a drum assignment listing. With the way it interfaces with REAPER, these numbers are 1 below the way the output is numbered in REAPER. (BD = 1 actually comes out on output 2, according to REAPER's routing).

Make the Targets
Now we need to make the target tracks for all the drums to go to. We will need 8, and you should probably name them according to the drum to avoid confusion later on. In order, they are: Bass Drum, Snare Drum, HiHat, Tom High, Tom Mid, Tom Low, Cymbal Crash, Cymbal Ride. These new tracks will be IN ADDITION to the track that you have the drum kit installed on.

Lock The Feeds
Now that we have the channels isolated, and somewhere to send them to, we need to enable the sends. Go back to your original Drum pattern track, and click the "io" button again. The first thing we want to do is disconnect this track from the master. We do this because we only care about the drums coming through the individual channels, not from this pattern directly. Disconnect this by removing the check mark from the "Master/Parent Send" option in the top left of the window.

Now click on the drop-down "Add New Send", and select the track you named "Bass Drum". This will create a new block in the window about the send to the track named "Bass Drum". Below the sliders are a couple of drop-downs labeled "1/2 => 1/2". These are channel numbers, and it defaults to paired sends. "1/2=> 1/2" means "send channels 1 and 2 from this track to tracks 1 and 2 on the track I'm sending it to". In our case, we know that the Bass Drum is on Channel 1, since that's what we set up on the Output Routing in the VST. So change the FIRST "1/2" to "1". We will leave the target as "1/2", because that will put the drum as a stereo track in the target track. That's all we need to configure this send.

Now go back to the drop-down "Add New Send", and select the next track, "Snare Drum". Go to the new section it created, and change the send to "2=>1/2" so we send channel 2 to the Snare Drum track. Repeat this process for each of the drums.

Try It Out
That's it! Now insert a new "Empty MIDI Item" on your original drum track, and build a drum pattern. As it plays, you will notice that the mixer controls will show that the levels are coming from the individual drums as they are hit. Build a pattern with all the drums, and play it in a loop. Now you can start playing with adjusting the levels on each drum individually, as well as adding "fx" to individual drums (like the reverb on the bass drum example).

This is a fairly simple example, but by using simple track sends, you can also simulate mic bleed between drums (by adding a send between the drum tracks, with very low volume), among other ideas.

Other Notes
I should also mention that this wonderful drum kit comes with a pretty decent single kit of drum sounds. As far as a standard drum kit, they drum samples that come pre-loaded are pretty solid and will work great for quick drums without the need to sift through samples to build a kit. If you don't like the sounds, you can still load your own through the interface.

Also, the one drawback to using this drum VST is that you are limited to an 8 piece traditional setup. So if you want a double-bass kit, heavy cymbals, extra toms, etc., then you'll need to either use multiple instances of this VST with alternate drums, or upgrade to more serious software. But for simple drum tracks, it's still a great place to start.

Read the full post here!

Friday, November 7, 2008

REAPER Tutorial: How To Save A Project From A Bad Plug In

One of the risks of using virtual instruments and effects is that not all are created equal. You will run into compatibility problems with certain plug ins in certain hosts. I'm pretty much a VST/VSTi user, so I'll focus on those plug-in types, but the tricks I will suggest should work for any plug-in type.

I write this from experience. Recently, I've been working on a new version of an old song of mine, so I've spent a lot of time fiddling with VSTs trying to recapture the original sound and feel of the old song. And I will freely admit I have a lot more plug-ins than I have had time to fully test. This is the perfect scenario where BAD THINGS CAN, WILL, AND DID HAPPEN.

So What Happened?
Everything was fine when the last few times I worked on the song. Everything was running smoothly and I was making a lot of progress. Tonight, I loaded REAPER (and it auto-loaded the project), and instead of gracefully fading out from the splash window, REAPER crashed. I tried it again, it crashed again, but at a different part of the loading process. Third time's a charm, right? Wrong. Third time it loaded most of the way, the splash window got to the "Fading out" status message, and the entire computer froze. I had to resort to a hard reset (hold down the power button until it forces a shutdown). For the sake of full disclosure, I went through this same process (including the forced reboot!) TWICE before I decided I was being stupid.

Option 1: Go To A Backup
REAPER keeps backup copies of the last time you saved the project, so all is not lost. Find the file in the same directory as your project that has the same file name with a .RPP-bak extension. This is the backup made of the next-to-last saved version of your project. Rename it to something with an .RPP extension, and try loading it. If you're lucky, the bad plug in was not included in this version. More likely, it is still in there, and you crash again. If it doesn't crash, you are left with the problem of losing any changes you made since that save. Not ideal, but if the changes are minimal, this might be a viable option.

Option 2: Disable Suspect VSTs
If you have a pretty good idea of what new VST you added before the project went south, you can disable the suspect VST in one of two ways. One: Find the .dll file for that VST and rename it with a different file extension, like .dll_disabled. Two: Move the entire VST out of the path that REAPER looks at. This can be a good idea if you know exactly what you've been playing with, and can isolate the one "problem child".

Option 3: Kill Em All
In my situation, I had been working with so many VSTs, I had no clue what was in and was not in my project. So I instead renamed my root VST folder to another name, so REAPER wouldn't find any of my VSTs. When REAPER loads, it will not find any VSTs under the path it is looking at, so it will present you with a clear list of all plug ins it couldn't find. Copy down this list. Rename your VST folder back to its original name. Now you can try the same steps I outlined in "Option 2: Disable Suspect VSTs", since you now know every VST in your project. I can almost guarantee one of them doesn't play nicely. Move one out (or rename the .dll), try it. If the project works fine, then keep that VST separate/out of your toolkit. Newer versions of REAPER might work with it, so I'd recommend having a "doesn't work with REAPER yet" folder to drop all of these into.

Safe At Last
In an ideal world all VSTs would work with all hosts. I've never been "under the hood" on a VST host before, so I'm really not sure why some plug-ins are stable in one program and totally corrupt in others. But the fact remains that this is a reality. Since there are so many free/cheap VSTs out there, I know I don't really have too much to complain about if one doesn't work correctly in my DAW. For just about any type of plug in you want, you can probably find dozens of others out there that might work better.

If You Like Testing...
If you're the type of person that likes to have all the bugs worked out before you start, then you should test each and every plug in before you put it in your "real" toolkit. I have seen plug ins that crash on saving the project, crash on loading the project, crash on loading the plug in itself, as well as aberrant behavior when twiddling knobs in their UI, and even the occasional situation where using the same plug in multiple times in the same project will cause a meltdown. Frankly, there are so many parameters, I can't even imagine how rigorous the testing should be to declare a plug in "stable".

If You'd Rather Live on the Edge...
I'd rather spend my time playing than testing, so most of my "uh-oh" crashes come during real projects. So if you're like me, you'll need to get used to recovering quickly from a total project collapse. Once you step back, take a deep breath, and look for the unruly plug in, things will sort themselves out pretty quickly. I have also seen quite a few references in the forums to "pro grade" (i.e. expensive) plug ins that are also temperamental and will crash out your DAW, so the problem is definitely not just because you're using "the cheap stuff" like I am. These problems come with the territory, so get used to it.

Good Luck and Happy Bug Hunting!

Read the full post here!