Wednesday, 5 September 2012

GarageBand '11 : Upgrade your instruments for free

I've been writing and playing music for a number of years and lately have been using Apple's GarageBand to capture my writing ideas. It's certainly not a fully fledged DAW, but I've found it to be more than adequate for getting an idea fleshed out to a demo quality recording.

Here are some example tracks to show what I've been producing with GarageBand lately:











The more I have used GarageBand, the more I have found its limitations (although these are not unreasonable limits for the application that it is). The main one for me is that the software instruments are  a minimal set, some of which are what I would consider novelty sounds (basically unusable) and others are flawed with pitch issues (e.g. Fretless Electric Bass). Coupling this with not being able to MIDI OUT to an external device (of which I have a few), the software instrument set can become a bit frustrating.

I really don't like the default Electric Piano instrument (sounds too crunchy like a clav to me), I want a sound like a classic Rhodes or a Yamaha DX7, so I decided to find out how to get one without throwing any money at it.


Audio Unit Instruments / Modules

The first solutions I found were from 4Front Technologies. I downloaded and installed their E-Piano (based on Yamaha DX7 e-piano), R-Piano (based on Rhodes Stage Piano) and the 4Front Bass since I was noticing some pitchiness on Fingerstyle Electric Bass (specifically playing A1). I'd recommend grabbing them all and the Upright Piano so you can install them all in one hit,

Here's the process to install and use these instruments:
  • Download the instruments you want from 4Front
  • Unzip the file and copy the .component file to Library/Audio/Plug-Ins/Components
  • Quit GarageBand if it is running
  • Open GarageBand and open a project 
  • Create a new Software Instrument track and open the Track Info pane ( ⌘+I )
  • Click the Edit tab and then the Sound Generator list, your new instrument(s) should appear in the Audio Unit Modules section
  • Select the instrument you wish to use
  • Adjust any instrument settings or Effects

Select your new instrument in the "Audio Unit Modules" section

If you want the instrument to show up on the Browse tab in the correct list, then follow these steps:
  • Select the instrument group on the Browse tab that you want the instrument to be saved into, and the select icon that you want to be used.
  • Click the Edit tab and select the instrument as the Sound Generator
  • Adjust any instrument settings or Effects
  • Click on "Save Instrument..." and enter the name for this instrument

Obviously the choice of free instruments available is not as broad as those available for purchase, but there are some good ones out there. There is a good freeware AU list at Don't Crack.com and an extensive list at KVR Audio, although many are only VST plugins, not AU. Just remember that you get what you pay for, so don't be upset if some don't work well.

UPDATE: You can also find a good selection of plugins which are available in AU format in "The 27 best free VST plug-ins in the world today" (2012) on MusicRadar.com


Soundfonts (.sf2)

Another option for expanding your instrument arsenal is Soundfonts. These files have been around since the 1990s, so there is a large variety in both instruments and quality. There are probably a lot more

There are a few quirks about using these for instrument sounds. GarageBand will use .sf2 files, but not the archive formats .sfark or .sfpack. Both these formats appear to be abandoned now and unpacking the soundfonts on OSX is next to impossible.

Although some soundfonts are available as "collections", these are a little less easy to use in GarageBand. Unless you can send a MIDI Program Change to the track, you'll be stuck using the first sound/voice in that collection. I tend to use single instrument soundfonts so that I can save them as an instrument once installed.

Some sources I have used for .sf2 soundfont files are HammerSound, ЯK Hive, NTONYX and  www.johannes.fr. Probably the largest soundfont archive is sf2midi.com, although it has some drawbacks: you need to register to download, the free downloads are slow (and require too many clicks in my opinion), and the zip files cannot be opened by OSX's Archive Utility (10.6)  - luckily they can be unzipped by the free app The Unarchiver. Nearly all of the .sf2 files I have tried to date have worked well, but some just don't work.


Here's the process to install and use a soundfont in GarageBand:
  • Find and download the desired soundfont .sf2 file
  • Copy the file to Library/Audio/Sounds/Banks
  • Quit GarageBand if it is running
  • Open GarageBand and open a project 
  • Create a new Software Instrument track and open the Track Info pane ( ⌘+I )
  • Click the Edit tab and then the Sound Generator list and select DLSMusicDevice from the Audio Unit Modules section
  • Double-Click the large button to the left of the DLSMusicDevice to edit the settings
  • Select your soundfont in the Apple Sound Bank Synthesizer list (QuickTime Music Synthesizer is the default value)
You can save the soundfont instrument so it is listed on the Browse tab by using the same steps outlined above for AU Instruments.



Pro Tip: If you want to organise your soundfont files into instrument types, or to keep a set of files together, etc. then you can create folders within Library/Audio/Sounds/Banks folder and this will be reflected in the Sound Bank list.

UPDATE 28-OCT-2012: I just found this post that links to downloads for "3.5 Gigabytes Of HQ Orchestral SF2" at newgrounds.com. I haven't tried them all yet, but those that I have tried are sounding pretty good. I also discovered freesf2.com which also has some great free SF2 files (although you'll need sfArk).

UPDATE 25-FEB-2014: Blogger's stats tell me that this post is getting quite a bit of traffic and that a chunk of that is coming from thegaragebandguide.com :)

Tuesday, 14 August 2012

How To: Connect Your PS3 To Mac Internet Sharing WiFi

Recently I moved to a new house and had to make changes to the way I set up my network to extend WiFi coverage. Part of the solution I employed was to enable Internet Sharing of the ethernet connection on my Mac Mini so other devices could use it as a WiFi connection point.

My Mac Mini is still running OS X 10.6.8 so I had to solve the problems of connecting non-Apple devices to a Mac using WEP. Even when I had other devices connecting, I couldn't get my Playstation 3 to connect. Thankfully the PS3 connection test gives some specific indicators of what is failing, so I could see that the problem was related to getting an IP Address assigned.

When you enable Internet Sharing on your Mac a file is created at /etc/bootpd.plist which should contain something like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Subnets</key>
  <array>
    <dict>
      <key>_creator</key>
      <string>com.apple.nat</string>
      <key>allocate</key>
      <true/>
      <key>dhcp_domain_name_server</key>
      <string>192.168.2.1</string>
      <key>dhcp_router</key>
      <string>192.168.2.1</string>
      <key>lease_max</key>
      <integer>86400</integer>
      <key>lease_min</key>
      <integer>86400</integer>
      <key>name</key>
      <string>192.168.2</string>
      <key>net_address</key>
      <string>192.168.2.0</string>
      <key>net_mask</key>
      <string>255.255.255.0</string>
      <key>net_range</key>
      <array>
        <string>192.168.2.2</string>
        <string>192.168.2.254</string>
      </array>
    </dict>
  </array>
  <key>bootp_enabled</key>
  <false/>
  <key>detect_other_dhcp_server</key>
  <integer>1</integer>
  <key>dhcp_enabled</key>
  <array>
    <string>en0</string>
  </array>
  <key>reply_threshold_seconds</key>
  <integer>4</integer>
</dict>
</plist>

To get your Playstation3 to connect (or other device that is timing out while waiting for an IP Address), you need to change the integer value for the key reply_threshold_seconds from 4 to 0 (zero). Note: You will need an Administrator password to complete this process.

Here are the steps you'll need to follow to get this to work:

  • Turn on Internet Sharing so that the file mentioned above is created.
  • Open the Terminal application (usually found in Applications > Utilities)
  • Type this command and then press return to copy the file into the tmp directory:
    cp /etc/bootpd.plist /tmp/bootpd.plist
  • Turn off Internet Sharing. This will delete /etc/bootpd.plist
  • To open the copied file in TextEdit, type this command in the Terminal window and press return:
    open -e /tmp/bootpd.plist
  • Find this section near the end of the file
    <key>reply_threshold_seconds</key>
    <integer>4</integer>
  • Change 4 to 0 (zero).
  • Save and Close the file and Quit TextEdit.
  • To copy the file back to the original location, type this command  in the Terminal window and press return:
    sudo cp /tmp/bootpd.plist /etc
  • You will be prompted to enter a Password. Enter your Administrator password and press return.
  • Turn on Internet Sharing.
  • Try and connect with your PS3 (or other device).

You can also find details on how to fix this issue at Apple Support Communities and PlayStation®3 Technical Solutions.

Sunday, 12 August 2012

Internet Sharing WiFi with WEP encryption from OSX to non-Apple devices

I almost entitled this post as "How To Use Your Mac As A WiFi Hot-Spot", but hopefully the title I used will help more people find the article and get the simple answer on how to connect to Airport via Internet Sharing when using WEP as security.

There are a lot of simple articles about how to use your Mac as a WiFi Hot-Spot by sharing your Ethernet connection. If you don't know how to do that yet, then I recommend reading "How to Use Your Mac as a Wireless Router" which covers the general setup process nicely, although it does not address the problems you can face when using WEP and trying to connect from non-Apple devices (e.g Android phone/tablet, Windows PC, PS3, Wii, etc.)

The Mac Mini that I was using to share WiFi was running OS X 10.6.8, so the setup screens are slightly different from those in the article above. Here's a screenshot if you want to compare:



Mac OS X 10.6.8 only supports WEP security on Internet Sharing so you either have to use WEP or no security. Nobody wants uninvited users on their network, so using WEP is recommended. Unfortunately using WEP is what usually causes non-Apple devices to fail to connect to the network.

There is a "trick" to get it to work that I will clearly outline for you here, so you don't have to cobble together the solution from a half-dozen sources that all point in the direction but never actually have all the required steps (as I had to do).

This is the process that worked for me:

  • Set a Network Name that does not include spaces or special characters, you may need to reduce the name length (my actual Network Name is 9 characters long)
  • Leave the Channel as automatic unless you need to use something specific
  • Check the box for "Enable encryption (using WEP)"
  • Set the WEP Key Length to "40-bit (more compatible)"

Now comes the arcane step that will allow your non-Apple devices to connect
  • You must use a Password containing five HEXADECIMAL values prefixed with a dollar sign ($). The $ prefix tells your Mac you are entering a hexadecimal value. You do not need to use the $ prefix when connecting to the your Mac
  • Hexadecimal values contain of a pair of characters which are limited to 0-9 and A-F, so you need to enter a password which starts with $ and then has ten characters which must be numbers or the letters A, B, C, D, E or F. (examples $A1B2C3D4E5, $1234567890, $2FACEDBABE )
  • As soon as you enter the $ in the Password field, the WEP Key Length and the OK button will be disabled. When you have entered the same value in Confirm Password (including the $ prefix) then the OK button will be enabled for you to click.
  • If you want to use 128-bit encryption, you must enter 13 hexadecimal values, which equates to 26 characters plus the $ prefix. As soon as you type a password longer than described for 40-bit, then the disabled WEP Key Length field will change to 128-bit. (Note: I have not tested that 128-bit actually works)
  • Click OK and then check the Internet Sharing box, and then click Start.

You should now be able to connect your non-Apple device (and your Apple devices) to your HotSpot using the new password. Remember, you do not need to use the $ prefix when connecting to your Mac.

If you are still unable to connect to your Mac, it may be because your device is failing to receive an IP Address. This is a common problem with Playstation3 consoles, and there is a fix for that which I will detail in my next post How To: Connect Your PS3 To Mac Internet Sharing WiFi.


Note: This is a follow-up post to Dealing With WiFi Dead Zones.


Friday, 10 August 2012

Dealing With WiFi Dead Zones

This month we moved to a new home. Some things about the new place are better, other things are worse, and some things are just different. One of the "different" things is the property layout, it's much longer and narrower. This does cause a problem because the router is located at one end of the property, conveniently near my desk, but too far away from the living room for any usable WiFi.

I didn't want to install long ethernet cables here, so my first response was to look into signal boosting. I even tried the Windsurfer foil parabola reflector which didn't really work for me. Another inexpensive option I considered was to relocate the router to a more central position by using a long modem cable.  This approach didn't really work due to our property layout and the position of power outlets.

In the end I stumbled across a completely different approach which was fairly inexpensive and has provided WiFi signal across the whole house, although with two hotspots.

"TP-LINK's TL-PA211 powerline adapter takes advantage of your home's existing electrical wires to transfer data while simultaneously transferring traditional power. That means, with no additional wiring required, users can simply plug the TL-PA211 into existing power sockets and instantly establish a networking infrastructure."


I'd never used powerline adaptors for extending my network before, but I took a punt on these which has worked out to be a good solution for my set up. I plugged one powerline adaptor in next to the router and connected the ethernet cable, and then plugged the other adaptor at the other end of the house and connected it to my Mac Mini which is currently connected to the TV.

I then enabled Internet Sharing on the Mac Mini running 10.6.8, so that it acts as a WiFi hotspot. This worked great for connecting with an iPad and iPod Touch, but needed some special tweaks to connect non-Apple devices including an Android phone, Dell laptop, Wii and Playstation3. I'll detail the tricks for connecting those devices in my next posts.

Monday, 25 June 2012

Playing/Converting AVHDC .MTS files on OSX

Lately I've been using AVHDC (Advanced Video Coding High Definition) .MTS video files on OSX a bit. This video format is not greatly supported on OSX at this point in time. This HD format was developed by SONY and Panasonic and is considered to by a high quality format. My video files are coming from a Panasonic Lumix DMC-TZ10.

Playback
OSX does not currently natively support playback of these files. I recommend installing VLC http://www.videolan.org/vlc/index.html which is both free and has a large enthusiastic usage community.

Conversion 
If you want to use these files in iMovie then you have to import them directly from the camera. This can be both slow and reduce the video quality. If you are not wanting to use iMovie and just want to convert to MPEG-2, DivX, H.264, etc. then you will probably have noticed most search results end up pointing to an expensive piece of conversion software with a heavily crippled trial version.

VLC (see above) does include conversion/export functionality, but its results are a bit unpredictable and is best suited to stream capture.

The best option I have discovered which is fast, reliable and free is Handbrake http://handbrake.fr/ This application is commonly used by some to rip DVD content to a playable file, but it has a great video transcoder at it's core and really does a great job converting .MTS files on OSX for free :)

Wednesday, 23 May 2012

Introducing TheToolbox.cc

I was recently introduced to TheToolbox.cc which is a handy site for web developers. TheToolbox is a collection of best-of-breed tools and helpers for a wide range of jobs: Animation, Bookmarklets, Colors, CSS, Editors, Grids, Icons, Images, Javascript, Lorem Ipsum, Markup, Patterns, Photoshop, Reference, Regular Expressions, Responsive Design, Sprites, Starter Kits, Time & Date, Typography, Unicode, and Web Performance. Definitely worth checking out and bookmarking if you have to deal with those sort of things on a semi-regular basis.