M-x Kelsin

A Hacking Blog

Decision Made - Macbook Pro bought

Now I can’t wait for it to get here.

I finally decided to set my priorities for an audio interface (and upgrading my desktop computer in general)

  1. I wanted it to just work. No more googling to find out if a certain PCMCIA card had a certain revision of a certain firewire chipset.
  2. I wanted it to be portable. One of the reasons to upgrade is to get a laptop and be able to play my Zendrum live (hopefully)

Once deciding on this I decided a 2 channel interface is ok. I’ll upgrade and buy a nice multiple channel thing if the need arises later on. For now I only record vocals and guitar so no need for anything complicated. I now started googling for “[audio interface] driver issues” and see what comes up. Two interfaces stuck out as having very glowing reviews and almost no issues coming up in google. Echo Audiofire and Apogee Duet.

When doing more research the AudioFire turns out to not be good with virtual instruments. While being VERY stable it has too much latency. Just a design decision by the makers. The Apogee reviews however have been great. This seems to be the interface to get if you can afford it.

So now things are pretty much set. Apple laptop (I can NOT see myself buying a windows laptop for music, can you?) with Logic Studio (instead of Cakewalk Sonar) and an Apogee Duet.

The plan so far had been to wait until after wedding but I found a loop hole to follow as long as I’m smart. I did the financing option with no interested for 12 months by signing up for a new card. Now if I make small payments on it on time and pay it off in a year, I’m good. Caitlin said she will help me and now I have a new laptop ordered!

Audio Interface Problems

So a long time ago I had a Echo Gina 20-bit audio card. I recorded my first album with it. It was great. I upgraded it eventually for a Layla 20-bit. This card was also great. Both of these were PCI card devices and worked flawlessly.

Then college hit and I decided that I need a true 24bit high khz audio interface so I sold the Layla and bought a MOTU Ultralite. Into the world of Firewire audio I go. For the most part this card worked ok. I was annoyed at a couple of the problems I had with it. First it would never work in WDM mode for Sonar, only ASIO. At random times it also wouldn’t work but not too often. I was using it with a HP Firewire PCI card that had a VIA chipset.

Then I decided that when I got my Zendrum I would need to get a portable solution. I decided to use my new work laptop that was a Intel Core 2 Duo machine with 4 gigs of ram. Much better than my 2 gig Intel Pentium 4 desktop. I bought my zendrum and BFD2 and took my work laptop home to install XP and a bunch of software. Software all installed fine until I tried to install the MOTU drivers. I got a blue screen of death. I was incredibly mad. I barely used this card and now it won’t work? For the life of me I couldn’t get the Ultralite to work right even when I got around the Blue Screen of death by rebooting the computer a bunch of times and praying. Fed up I decided to sell it and a bunch of other audio gear in order to buy a new sound card and a new Line6 Pod (Upgrading my Pod Pro to a Pod X3 Live).

Ebay stuff worked out and I decided I would buy a Presonus FP10 since they were selling really cheap and it meant I could sell off my Mic Pre-amps as well. This is another Firewire card. When I first installed it I was thrilled. It installed fine and had really low latency. As I played Zendrum more and more the sound card would sometimes not work at all. No sound, no midi, no anything. I eventually found out that these symptoms can mean a bad firewire chipset. I ordered a new Firewire PCMCIA to replace the crappy Bestbuy Dynex card. I also tried plugging the Presonus into my desktop. Even on the desktop some things wouldn’t work the way they should. I also discovered that BFD2 chokes on my desktop as well. Latency was high and CPU usage was higher. My desktop is seriously dead as far as sound production goes.

As I began to look at my situation I realized another big problem. The FP10 isn’t portable at all. One of my reasons to record on my laptop is the Zendrum might mean playing live somewhere other than my apartment. The FP10 really doesn’t solve this issue in a nice way. This and all of my firewire issues (and the fact that Apple doesn’t even have a Firewire port on the new Macbook’s) made me decide to return the Presonus using Musician’s Friend’s return policy. I haven’t even gotten my new PCMCIA card yet but I’m pretty sure this is the right choice.

I’m also trying to figure out what I want to replace my Desktop with when the time comes. Right now I have my Asus laptop (running Debian, going great) which I love to work on and my work Laptop is a lovely Lenovo x61s with Debian. My desktop mainly used to server as my music studio and also my gaming machine. My gaming recently has largely come down to ONLY World of Warcraft (on the computer at least). This makes me want to go Mac. If I switched my desktop for a Mac laptop, I’d have a portable music studio that could play wow. My entire computing life could be in a posix world. This sounds very enticing.

The problem I’m struggling with is justifying the cost. For the cost of a Apple Macbook (or Macbook pro) I can build a SCREAMING windows system (top of the line Nvidia card, 8 gigs of ram, etc). Is paying a ton of money for a Apple laptop worth it? My co-workers say it is if I put a non-zero value to my time. That’s a good point. I’ve spent a lot of time and money into trying to get an audio card working nicely in windows and been having many issues. Most are not huge but I’m VERY sick of googling firewire cards to see what chipset they have.

My current setup: I’m now using the crappy audio interface that’s in my Line6 Pod X3 Live. It can record my vocals and guitars (what I need anyway) and playback latency is great. No problems when using my laptop. My desktop still can’t handle BFD2 so I’m afraid the current desktop really is dead to me as far as music goes. I’m using my Korg Padkontrol as my midi interface. Ridiculous but it works. This doesn’t solve my long term problem of Zendrum playing live though. I really don’t want to bring my guitar pedal and midi pad controller to a gig to function as a audio interface and midi interface. It will work for now since I don’t have anything better but eventually this needs to change.

What I’m thinking about: A Apple laptop with a nice small portable audio interface. This does mean that I have to ditch my Sonar/Project 5 software which would be very sad. I would want to keep using Rapture and Dimension of course but since they have VST, AU and RTAS versions I feel pretty confident that I’ll be able to use them on anything. My current thoughts are pointing me towards the Digidesign Protools LE series and getting a MBox2 maybe? I’ve heard these things work really nice (and are stable) and then I’d have a Protools system if I wanted to keep using Protools. I’m also heavily looking into Ableton and Logic as other options. Clearly if I don’t go Protools I would be able to try out other audio interfaces. I’m looking at Edirol and Echo ones. Echo doesn’t make a non-firewire interface (pci but that’s not portable for a Macbook) but I’m hoping that on the Macbook I’d have better luck.

Any advice? I’m looking for any options for audio interface and recording software to use with an Apple laptop. I’m also open to going back to MOTU for audio interface. Anything that’s solid and works well with the Apple Laptop. Solid enough to gig with!

Flogging Molly at the House of Blues in Boston, MA

Flogging Molly is great. They are my favorite Irish-Punk (or whatever you want to call it) band that I’ve heard so far. Before too many comments fly my way: I haven’t listened to very many.

The show was excellent and I think I heard every song I wanted to. Most off of Float and Drunken Lullabies as is expected. They sounded great. Lead singers voice was excellent and they definitely showed a ton of energy. I can’t think of anything really negative to say about their performance. It’s what I expected.

I did hate the venue. After looking at the seating layout I assumed it would be like the Palladium and we could go up to the 3rd floor and sit in seats. Turns out the GA tickets don’t let you up to the seats. I don’t know if those tickets were cheaper and I just didn’t know, or if they were more expensive but I don’t think I’d see a show at the House of Blues without getting seats again. We got directed up to the 2nd floor which is just a big U around the main floor. The problem is that due to it’s height above the stage, only people in the first row could see anything (unless you were very tall) and there were about 4 rows of people there.

We eventually found a place to sit where you could only see through the bar railings. There was wall above them creating a awkward area to sit and watch. I guess I’m getting to old for concerts but I was pissed the whole time that I was paying to sit on concrete and watch the band through bars. If the people in front of us didn’t move I would have been crouching the whole time very uncomfortable trying to peer through bars.

Oh well, not to harp ont he venue too much but it’s no Paradise. Like I mentioned above, I will not be paying to see a band here again unless I got seats or the band was a could-not-miss opportunity.

Bottom line is Flogging Molly is really great and I’m very happy that this recent album was so good. I’ve wanted to see them live at some point and I think I got very lucky with the time frame cause I enjoyed the set list a lot, even if the venue sucked!

My variation of Git branch in bash prompt

After reading another cool blog post about putting your current git branch in your bash prompt I decided I needed to try this out. Once I got it working I added in color coding to see the status of the current checkout as well!

First off, you need bash-completion and git installed on your server (bash-completion and git-core on Debian/Ubuntu). Once installed you can enable bash completion in the system wide bash file (/etc/bash.bashrc) or in your own ~/.bashrc by adding these lines (Clearly if you are not on Debian/Ubuntu double check file paths):

# Completion

if [ -f /etc/bash_completion ]; then

    . /etc/bash_completion

fi

Once this is all set you should have a function called __git_ps1 available. Try it out by just running “__git_ps1” on your command line from a git repo. You should get the branch name returned inside parenthesis’s.

Now comes my variations on how to include this in your prompt. My entire ~/.bash_prompt file can be found on my git repo. I source this file into my ~/.bashrc. The two most interesting parts are the function that determines the color of the branch based on git-status output and the function that gets the branch name. Branch name is pretty simple. We check that the __git_ps1 function is available and if it is, check that we’re in a branch using it. If we are we echo the branch name. Pretty clean.

prompt_git_branch() {

    if type -p __git_ps1; then

        branch=$(__git_ps1 '%s')

        if [ -n "$branch" ]; then

            echo -e "$branch"

        fi

    fi

}

The next function has to grep stuff out of git status to determine what state the repo is in. If we are completely up to date we use green. If I have local changes it’s blue. If we have files in our index ready to be committed I use red. This is really great with my home directory cause it helps remind me to add new dotfiles that I don’t care about to .gitignore (or commit them if they should be public config files).

prompt_git_branch_color() {

    if type -p __git_ps1; then

        branch=$(__git_ps1 '%s')

        if [ -n "$branch" ]; then

            status=$(git status 2> /dev/null)



            if $(echo $status | grep 'added to commit' &> /dev/null); then

            # If we have modified files but no index (blue)

                echo -e "\033[1;34m"

            else

                if $(echo $status | grep 'to be committed' &> /dev/null); then

                # If we have files in index (red)

                    echo -e "\033[1;31m"

                else

                # If we are completely clean (green)

                    echo -e "\033[1;32m"

                fi

            fi

        fi

    fi

}

It took some playing but I finally found the right final line to correctly tell bash which characters in the prompt are visible. If anyone has a good way of making these functions smaller or faster I’d love to hear it. I had some trouble making sure that the functions were always executed (not just on a new shell’s creation, but on every display of PS1). The delay this causes is not noticeable on all of my computers but more speed never hurts.

iPhone is bought

We bought iPhones. We did it only and surprising the process was easy. I selected that we wanted to upgrade both of our phones and chose 8gig Refurbished Black iPhones for both Caitlin and I and it helped us through it. We kept our family plan exactly the same but added the $30/month data plan for each of us. The phones were only $100 each though and came without any scratches. We were very please and probably lucky in this regard.

Now I have the issue of how to sync up everything. So far I’ve only talked Mail, Contacts and Calendar. My main mail accounts (I’m thinking of reworking this) are GMail (which ALL of my personal accounts forward to) and my Berklee account. Luckily both allow IMAP access. Unfortunately this means no pushing so I only get mail every 15 minutes on the phone if I’m not running the mail app. I have a feeling I’m going to be backgrounding the mail app a lot (more on this in a minute).

For Contacts and Calendar I’m using Google. We were using Google Calendar anyway as our main calendar so this just makes sense. Google’s sync for iphone uses an exchange server so contacts / calendar data IS pushed to the phone and the syncs are pretty instant. Google lays out the instructions very clearly which is nice cause this process DOES CLEAR OUT your contacts on the phone.

My process:

  1. Put iPhone sim card in old phone.
  2. Save contacts onto sim card in old phone.
  3. Put sim card back in iPhone.
  4. Use contacts settings menu to load contacts from sim card.
  5. While doing this clean up Google Contacts so everyone I care about is in the "My Contacts" group.
  6. Export (for backup) Google Contacts.
  7. Using iTunes sync contacts with Windows Address Book just for a backup.
  8. Sync.
  9. Switch contact sync to Google Contacts.
  10. Sync.
  11. Turn off contact syncing in iTunes.
  12. Clean up "My Contacts" list again. I had lots of contacts with only emails (from Gmail) and a duplicate named contact with phone numbers (from phone).
  13. Export (for backup) Google Contacts.
  14. Follow Google instructions on enabling their exchange server in iPhone.
  15. Go to http://m.google.com/sync on you iPhone to choose which calendars to sync.

The syncing to Google Contacts from iTunes is very important cause ALL of your phone contacts get removed when you add the exchange server to your iPhone. Please read the Google sync site a lot before doing any of this. Their docs are very clear on the limitations and the process to help you not lose data. It’s worth your time especially if you have a lot of contacts.

My plan with email is probably to run my own imap server so all my mail ends up somewhere that I own. I’m sick of Dreamhost webmail going down and my mail being stored on Google’s servers. Though I feel it’s safe, I just want one place that I own to be my main mail server. We should see if I do this soon.

My plan is to also run my own LDAP server for contacts. If I do this I’m probably going to have to role my own syncing app between my LDAP server and the Google Calendar API. I’m lazy but I do hope I get to this at some point.

There is a Thunderbird extension that syncs your Google Contacts into your Thunderbird database. I’m going to be using that. I also need to figure out how to get Mutt to use Google Contacts. I think the best way will be to use the LDAP GCalDaemon tool but I will have to do more research about this later. Since I largely use GMail and iPhone for personal mail this won’t matter that much. Berklee has a LDAP server I have Mutt using for work contacts.

On a side note, the phone is already jailbroken using the windows version of QuickPwn. It was really easy and works great. I can ssh in, and have installed a number of 3rd party apps to help complete my app collection. The best so far is the backgrounder app. This allows me to keep different apps open in the background and definitely one of the best features of jailbreaking so far!