All posts by Everett -

Content Management Systems (CMS)

If you’ve been around the web block a few times and know a thing or two about putting up a web site, you’ve probably heard something about Content Management Systems (CMS). They can be real time-savers, and the basic premise is this: you forgo all the hand coding that you’ve been doing to keep your site going and you plug into the “already-invented-wheel” to get rolling.

CMS’s usually require a database (often MySQL) and a server side scripting language (often PHP). It’s a powerful combo: you can create templates that control how the content looks then add all the content you want. The templates go beyond the style sheets, they incorporate the html used by the pages that reference the CSS, and they can also include things like Javascript for controlling menus or fixed footers. Usually the templates rely on a placeholder that indicates where the content should be added.

There are a LOT of CMS’s out there, and it seems like every corporate code-monkey gets pegged to code a new CMS for in-house work at some point or another. provides a nice way to try out different CMS’s to get a feel for what they’re like. The site is a bit awkwardly laid-out, but you can get a long list of CMS’s on the left by opening the “portal” items under the “CMS Demo Menu” section.

One long weekend, I tried out a number of these… my choice? MODx — it’s free and it made a lot of sense to me. Still in beta, not a huge user base, but easy to work with (IMHO). But don’t take my word for it… you should evaluate what you need to do with your CMS. If it’s a quick and dirty blog you need, WordPress is hard to beat.

One big contender that costs about $100 is Expression Engine — it comes highly rated from people I work with who are in the know.

Here’s a list of the ones that have gotten the most air-play in my line of work (coding):

  1. Drupal — often recommended for people building “static” type sites with lots of fixed pages. Has a pretty good user base, but again, I disliked the boxy layout approach and the whacko documentation
  2. Joomla — made by most of the same people who made Mambo. Boxy layouts and weird vocabulary.
  3. MODx — My personal favorite. Nice AJAX back-end and easy compartmentalization between front-end and back-end contributions. It’s really easy to take an existing static site and drop in CMS functionality using MODx. It’s also bloody simple to add your own custom PHP scripts. MODx is a leader when it comes to an SEO friendly site.
  4. WordPress — quick and dirty, great for blogs, huge user base… but no so good if you have specific needs and the template system isn’t the easiest and adding custom PHP scripts can be painful

Here’s an intro video I made about MODx:

Using Sibelius to Play EWQL or Reason

This document describes how to use Sibelius to play Propellerheads Reason on a Mac

There are 4 primary things that need to happen in order to allow Sibelius to play samples from an external program (e.g. East West Gold):
1. A path (i.e. bus) between applications must be opened so that MIDI data can travel from Sibelius to the external sampler. (The “path” is known as a “bus”).
2. Send Sibelius’ MIDI data down this inter-application bus.

3. the gate must be opened in the sample program so that it can receive and play the MIDI data that has come down the bus from Sibelius.
4. Route the audio outputs of the sampler program so you can hear or record the performance.

(Enabling the IAC Driver)

Launch Audio MIDI Setup in your
/Applications/Utilities/ folder
OR launch it via Sibelius:
Play → Playback and Input Devices…

OS X\'s Inter-Application MIDI Driver Settings

If the IAC Driver icon is grayed out, select
it and press “Get Info”. Check the box
“Device is online”. Apple’s IAC Bus is now available for use. (To add multiple IAC buses, use the settings on the Ports tab).

With each port listed, you get 16 channels of MIDI, which will translate to 16 different instruments of EWQL per port. This is probably as many as you will need (or many as your computer will handle).


5. Back in the Sibelius “Playback and Input Devices” Window, select “Apple IAC Driver IAC Bus 1” so it is highlighted in blue (the name will be different if you changed the default settings).

*If you get a message from Sibelius about wanting to reset the default sounds, do it. If you had a document open and fiddled with the MIDI settings, the IAC Driver won’t show up in the Playback and Input Devices window until you reset the sounds.

6. Next, open up Sibelius’ mixer (press M or select Window → Mixer). Here you can set which MIDI Channel each track will use to send its notes. Notice that the settings presented in the Mixer window change depending on which track you have highlighted (click the track’s name in blue at the base of each fader). Normally, each staff will use its own channel (i.e. instrument). If you don’t see the IAC bus in the Device list, then click the “Reset Sounds” button.

Sibelius Mixer Window


7. Now, launch your East West stand alone application, and you should see the notes on the keyboard play. Make sure to have your MIDI channels correspond with those in Sibelius. For example, if you have an Oboe set to MIDI Channel 2 in Sibelius. You’ll want to change the first track from OMNI to 2 and load the Oboe sample.

Note: When you want to use sounds from Sibelius, like GPO or Kontakt Gold/Silver, you will need to go back into the IAC (see Step 3) and uncheck the box in Step 4.
If you want to mix up the sounds used by your score, you do this in the mixer (e.g. use the Kontakt player for cello, GPO for viola, and EWQL for violin).

If you use the Kontakt player, you may have trouble balancing the audio levels (it often plays back much more quietly than other sounds) or it may use a different audio output (e.g. it might use your computer’s built-in output while EWQL might use your MOTU audio interface). To change the Kontakt player’s settings, open it’s window (Window → Kontakt player, or press the small keyboard icon in the Toolbar, or press option + Apple + O).

On the Kontakt player, there is a button on the left called “Audio Setup” – press it and you can change which driver is used for audio output (e.g. “built-in” or “MOTU 896”). There is also a volume knob on the Kontakt player. Turn it up to 0db or above to balance it against the other sounds you’re using. (Turning up the volume on the mixer won’t effect the sound as drastically as the control directly on the Kontakt player).


Open up the stand alone GPO application, load a patch, then choose a MIDI channel for it. Changing a patch will reset the MIDI channel and volume! So be sure to double check the MIDI channel and volume after loading a new patch. GPO also defaults to a Pan setting which corresponds to an instrument’s position in a traditional orchestra (e.g. contrabasses 70% to the right of the conductor), so you may want to adjust the pan setting for each patch as well.

Reason (3.0)

Reason in Audio Card Mode

Before you start trying to hook up Reason to Sibelius, please make sure that Reason is working normally with your standard MIDI keyboard (i.e. your “control surface”).
You’ll also need to make sure that you’ve enabled Apple’s IAC Driver in Audio Midi Setup (see above), otherwise the MIDI info can’t travel between applications.

Open up Reason and create the instrument(s) you want and load the patch(es) you want to use. There is no need to add a mixer, but you can add one if you want to fine tune groups of instruments or use Reason’s effects. Note that Reason will open as a stand-alone application and NOT as a ReWire application, although Sibelius does control Reason’s playback.

Open up Reason’s preferences and go to the Advanced MIDI section. For External Control of Bus A, select “IAC Driver Bus 1” and close the window.

Back in Reason’s main window, take a look at the very top of the rack, at Reason’s “MIDI IN DEVICE” and verify that Bus A is lighted. Next, decide on a MIDI channel that will be used to send MIDI data from Sibelius, e.g. Channel 5 (this corresponds to the Sibelius Mixer and the channel selected for that track/staff). In Reason, click the small triangle button next to the channel, and from the pull-down list, select the device that will play on that channel (e.g. NN-19). Note that if you have a mixer in your Reason file, it will also show up in the pull-down list because it too is a MIDI instrument that can accept and “play” MIDI data.

Finally, in Reason’s Preferences → Audio, make sure the “Play in Background” box is checked.

4. ROUTE THE AUDIO OUTPUTS OF THE SAMPLER PROGRAM (so you can hear or record the performance).

For playback purposes, it is usually sufficient to route all the samplers’ outputs to the same audio driver, e.g. built-in, or to an audio interface like a MOTU 828. Each sampler has its own way of setting this preference.

Setting the Output of Various Samplers

Kontakt Player (included in Sibelius): Open the Kontakt Player (Window → Kontakt Player), then press the “Audio Setup” button on the left side of the Player. Choose the Output Device.

DLS Device (QuickTime): Apple Menu → System Preferences → Sound → Output
East West: File → Setup → SoundCard → Output Device
Garritan Personal Orchestra: File → Setup → SoundCard → Output Device
Reason: Reason → Preferences → Audio → Audio Card

Recording the Performance

If you wish to record the performance, you have several options.

Record to an External Device (e.g. DAT player, Mini-Disc):

Use the appropriate cables to hook up the recording device to the output that you have set.
Start recording on the external device, then play the Sibelius file. Stop recording when playback finishes.

Record to another Program (e.g. Peak, Audacity, Logic, Digital Performer):

Routing audio from all samplers used to another program is a bit tricky. Just as we needed to enable the IAC-Bus to send MIDI data between applications, we need to establish an inter-application bus for audio data. Unlike the IAC MIDI bus, this functionality is not built-in to OS X, so third party software must be downloaded. However, there is FREE software available that accomplishes this functionality for all PPC and Intel based Macs. Two programs are listed. Download and install one of them.

Jack OS X:

Refer to the application’s documentation for installation and setup. Once a routing application is running, you should be able to go to each sampler and choose that application as an output. Soundflower has a 2 channel bus for simple stereo recordings and a 16-channel bus for multi-channel recordings.

On your recording software, configure the input used for recording to be the routing bus (e.g. Soundflower-2).

It is unlikely that a multi-track sequencer would be used for recording a Sibelius performance in this way simply because the sequencer software would act as a much better host application for controlling and recording software samplers – simply import the MIDI file from Sibelius. However, the principle is the same as above: route the sampler outputs to the inter-application audio bus (e.g. to Soundflower 3,4) and set the recording inputs on the multi-track sequencing program to use those inputs for recording.

If digital distortion is audible in the recording, verify that all samplers (including Sibelius’s Kontakt Player) are using the same sample rate, then verify that the recording application you are using is using that same sample rate. Do not set the sample automatically; set it manually to the rate used by the samplers (e.g. 441000). Set the sample format manually, too (e.g. 16-bit). If the recording application has a clock source, you may need to set it to use an internal clock source, or set it to use a clock source that is external to all applications involved in the recording (e.g. a MOTU Digital Timepiece or an Alesis BRC).

When Reopening a Sibelius File that Uses External Samplers

There is no way for Sibelius to control all the external samplers used in one of its documents, so it is up to you to open up the necessary samplers and load the required patches. (Gulp. Hope your documentation was good).

Avoiding Noisy Recording: Tips for BEFORE you Record

Have you ever ended up with a horrible recording of a concert or wedding and wondered how it could sound so bad? How do you possibly clean up all that hiss and rumble? Well, most of us have been there… but I’ve also been in million dollar recording studios and worked with some pretty tight software, so hopefully I can help shed some light on this elusive topic.

Signal Path

Signal Path

The route that sound takes to get from its source to the recording device can drastically affect its sound. A weak link destroys the end result. It’s like fresh food: the freshest, most succulent, vine-ripened organic tomato tastes like crap if it fell into a pit toilet before ending up on your porcelain dinner plate. Here are the main stops in a signal’s path:

  1. The sound source (the thing you are recording)

  2. …the air between…

  3. The microphone (and the pre-amp)

  4. The cable(s)

  5. The Recording Device (e.g. your video camera)

You can and should try to adjust *every* element in your signal path to get the best possible sound BEFORE YOU RECORD. You can only do so much afterwards.

Mic Placement: Controlling the Air Between

Even an inch can make all the difference (no penis jokes please). Try to get the mic close to the sound source, and take the time to test different angles/positions. If you have ever mic’ed up a drum kit, you know what I’m talking about.

If you are recording with a camera, please remember that the location for the best shot is usually NOT the best location for the best sound recording. That’s why those cameras with an external mic input are golden.

The Microphone Itself

You get what you pay for when it comes to mics. Built-in mics on a camera are generally low-quality. Radio Shack’s $10 cassette mic won’t sound as good as a $3,000 Neumann. Consider the following suggestions:

Neumann TLM103 Microphone

  • Avoid omni-directional mics if you can — they tend to be far noisier than their cardiod counterparts. They may have “better sonic clarity”, but they pick up all kinds of room noise, which is usually NOT what you want. More about pickup patterns…
  • Condenser microphones are generally much better mics and much more sensitive. More about types of mics…
  • Use a good pre-amp to ensure your mic gets the power it needs. The pre-amp built into your camera isn’t very good. You can find reasonable portable camera preamps. The Beachtek DXA-10 is no longer available, but there are things out there like it.

The best piece of advice I can give here is to TRY a few different kinds of microphones. Buy a couple, knowing that you will return one. If your ear can’t tell the difference, ask a friend. For recording a human voice, I recommend the Neumann 103, or if you’re on a budget, the Rode NT1-A.


These matter a lot, surprisingly. There’s a bigger difference in sound quality between good and bad cables than there is between good and bad mics. Wow. Read that again. I am not kidding. Again, tease your credit card and buy a couple good cables and listen to how they sound — if you don’t think they make a big difference, you can send them back. I unabashedly recommend MIT microphone cables. But they ain’t cheap. Monster cable also has a high-end line that’s much more affordable. The point is to avoid the cheap-ass cables because they will muddy up your sound.

The Recording Device

Make it the best possible. If you are recording to your computer, you’d better have a good audio interface. The little 1/8 inch input on your SoundBlaster does not qualify as “good.” DV tapes on cameras are good, but set it to use the highest bit rate possible (often there is a 12 bit and a 16 bit setting). More about bit rates…

Spend some time with these ideas and your recordings will improve. Look for a future post about software to help you improve the sound of existing recordings.

3 Little Perl Debugging Tips

I’ll do a little walk-through of the Perl debugger in a separate post, but here are a couple hard-earned morsels of knowledge that I thought I could share:

If your code is NOT compiling, the most common hard-to-find error is forgetting a semi-colon or a paren or brace in the lines above. The error message usually clocks in on the line AFTER the goof. Look above the line listed in the error message and see if you didn’t forget a semi-colon somewhere.

If your code IS compiling, but you’re still getting weird results, here are a couple tips to help you along:

1. Make sure your code is written in coherent, bite-sized chunks. If you can’t see an entire function/action on the screen, then your building blocks are too big. Writing code in smaller chunks lets you test each chunk individually. Alas, this doesn’t always happen, so…

2. If you are using a lot of hash references ( stuff like $my_hash_ref->{$some_id}->{'some_value'} ), then you are bound to run into the pitfalls of using hashes: namely mispellings. Oops. Misspellings. (Did you catch that?) TRIPLE CHECK YOUR SPELLINGS. Highlight your variable name/hash-key do a search for it — if it doesn’t show up somewhere else, then you know you have a problem. Perl happily will do this:
$my_hash_ref->{$some_id}->{'some_valeu'} = 1;

Note the mispelling — you just stashed a value in the wrong place in the hash. Perl auto-vivified without any warnings because that’s what it’s supposed to do.

3. Make sure you haven’t botched your reference arrows. E.g.

Oops. Notice I forgot a ‘>’ there between the id and value. This actually compiles! But it’s not what you want! Do yourself a favor and search your code for any instances of ‘-{‘ — you may be surprised by the horrors you find.

Basic OS X Hardening

apple-logo.jpgBasic computer setup and security compiled for Mac OS X 10.3 (Panther), 10.4 (Tiger), and 10.5 (Leopard)

I spend a lot of time with computers… it’s my job. Most of the time, people worry about patching up their Windows machines — and for good reason! Similar to our (slightly dated) Windows Security Guide, the purpose of this page here is to list the steps for securing a Mac OS X computer, including commands for lab managers and network admins who have to manage a large number of these computers. In the last week, there have been 3 security exploits / viruses for OS X. No OS is completely secure! So it begins…

4 simple things you can do to protect your computer

1. For everyday use, run as a limited user!

I don’t care if you rigged an election, aggressively invaded a foreign country, or slept with an intern — you simply don’t need to run as the Admin of your computer, no matter what OS you use! If you just bought your Apple computer, don’t let their glitzy setup fool you! It’ll ask for your name and and password, but this is to setup the Admin account, and it should be treated accordingly. After you’ve set up the Admin account, you can always go back to System Preferences and add a standard account for everyday use.

Trust me. You don’t want the computer booting automatically into an account with full Admin privileges. If nothing else, it’s far, far easier to find and backup all your files if you’re running as a limited user; all your files will all be in your home directory. If you’re Admin… who knows where you could have stashed them… good luck finding them all. What if you already set up your account, and whoops! It’s an admin account? What do you do? In Mac OS X, changing this is really easy. I appreciate the ease of it because this same thing is a holy pain in the arse on Windows.

I’m assuming you’ve got one account on your computer and it’s an admin account. Go to the Apple Menu → System Preferences, and open up the Accounts panel. Click the (+) to add an account, and check the box to let that user “Administer this computer.” You are temporarily creating a second admin account. Be sure you give it a good password and that you remember it! It’s the ultimate in rookie computing to forget your admin password.

Now, log out. Don’t just do a fast user switch. Log out completely, then log into the new admin account you just created. Go back to System Preferences → Accounts, and find your original user. Uncheck the box for that account that allows it to administer the computer. Poof. You’ve now changed your regular account into a limited user account and you’ve created a new admin account that you’ll hardly ever use. That’s the point: only use the admin account when you absolutely need to.

2. Turn ON your Firewall!

It’s under System Preferences → Sharing. Microsoft got ridiculed for shipping Windows with this turned off, and Apple should be next in line for a kick to the groin. If you need to open a port for some service, that’s always possible later, but TURN IT ON AND LEAVE IT ON.

3. Turn ON Automatic updates!

If you are the only person using your computer, and you are its administrator, you should turn this feature on by going to the Apple Menu, System Prefs, and find the Software Update panel. Check the box so this runs, preferably DAILY, if your internet connection can handle it.

4. Turn OFF “Open ‘Safe’ Files After Downloading”

The most recent security hole (as of this writing) exploits the fact that many people leave this checked. Go to the Safari menu → Preferences, and on the General tab, uncheck this box. That will prevent any nasty code from auto-executing.

This particular hole is not so much a problem if you are running as a limited user because the malicious code executes with the privileges of the current logged-in user. A limited user can’t do that much damage, but your computer can be completely hosed if you were dumb enough to be logged in as an admin.

Oh, and one more thing – Block Pop-ups in Safari! Again, why the @#$& this isn’t turned on by default, I don’t know, but there’s no reason to let those maggot-sucking, pop-up-producing advertisers ruin your browsing.

Phinally: Photoshop Express Online

Adobe did some things good with the release of Photoshop Express. It’s a free web-based editor that offers tools for one-click cropping, color adjusting, and sharing. Pretty much, that’s all you need most of the time, and I hate to think how many pirated copies of Photoshop are out there causing the Adobe execs to lose sleep at night.

All that’s required is a login to the site. Adobe hopes to tap the shutterbug crowd posting images to Flickr and Facebook and lure them to their site as a way to share their photos. We’ll see how it goes, but it looks promising. I can’t tell how many times I’ve needed to do some basic photo editing while on the road, and it just can be painful to try and find some cheap tools to do basic editing.

What Adobe did WRONG was to put in some fine print that said that Adobe basically would get to do whatever they want with the users’ photos. Watch out! Read the article on CNET:
Complaints trigger rewrite of Photoshop Express terms. Well… I’m gonna wait for the legal @!^%-storm to pass before trying this out.

UPDATE: Adobe dropped those nasty legal terms. “If you decide to terminate your Photoshop Express account, Adobe’s rights also will be terminated.” See CNET.