From what I understand, the Picasa application on Windows enables the download of all the photos contained in a given album but that isn’t the case on Mac. In addition, some prefer not to install the Picasa Desktop application for Mac and it shouldn’t be necessary to do so just to download pictures. There is the possibility, using the web interface, to download photos in an album (if the person who shared them thought of checking an option during the upload which often isn’t the case).

In any case, one way to always be able to download all the photos in a Picasa web album to your computer is to user the RSS feed of the album and the Firefox “Down Them All” extension.

Here’s how :

  • Install the Down Them All addon for Firefox (and restart the browser if necessary)
  • Browse to the Picasa album you wish to download the photos from
  • Click on the RSS link at the bottom right of the page
  • Launch Down Them All by going to Tools > Down Them All! Tools > Down Them All!…
  • By default, all the images are selected for download
  • Validate the destination for the download
  • Click Start

Nice and easy, enjoy your photos and keep in mind the flip side to this “trick”. Whatever settings you use when you upload your photos to the Internet, they are easily downloaded by whoever stumbles on them… As far as I know, there is no real privacy for your photos once uploaded on Picasa (or Flickr) which they both make clear in their terms of use.

About a year and a half ago, the price of Hard Drives (and their size) suddenly made it possible for us to imagine having most of our content (music, DVDs) archived on Hard Drives and easily accessible across devices. As it turns out, we are still in the process of importing some of our CDs and DVDs on digital media and tagging all of that information. What a job that is…

At the same time, we are constantly on the lookout for solutions to enjoy our music collection (and movies collection) across devices, wherever we are.

A lot of recent events indicate that we are not alone in this quest and that it will only get better and better in time.

Recently, of course, Apple introduced the Remote App for iPhone/iPad, AirPlay followed by iTunes Match… In the Unix World, a lot of things already exist as well : Pulse to stream audio across devices and projects like Music Player Daemon (which is nothing but new). Media Center are also making the news frequently (Windows Media Center, Boxee, Plex) and commercial solutions (Music streamingm VoD) like Spotify, Netflix and Hulu are slowly forcing DVD and Blu-Ray Discs pricing down.

Dematerialized solutions are the way of the future but several problem remain :

  • how to organize one’s library (how to merge dematerialized bought content and ripped content from CDs and in our case even vinyls that we already had)
  • how to make this content accessible across devices (especially in a multi-platform environment)
  • how to stream this content on various speakers in the same house
  • how to remotely control what we play in each room
  • finally, can we somehow enjoy our content even on the move
  • (I don’t even mention syncing across devices, the size of our collection makes that totally impossible, the content has to stay in one place)
  • (other issues include the ever needed backup management)

We are currently waiting to test some of these solutions (we do not have an AirPlay receiver for example though that will soon arrive).

For now, I’ll focus on one part of our solution : Music Player Daemon.

Music Player Daemon (definition) is a server side music player. It allows to queue and play music files (in various formats) accessible to it via the file system. MPD can be controlled remotely using a wide range of clients (desktop, mobile or web based).

An example ? We have several computers in the house. One of them is the “Media Center”. It has the Music Hard Drive hooked to it and is (mostly) always on. Because it is the “Media Center” it is the computer that has the good sound system attached (whether that means a 5.1 speaker set or a connection to a Home Amplifier System, whatever). Basically, this is the computer that should play music. Why would you listen to a song using your laptop speakers when you can play the same song on your great expensive speaker set ?

So what you do, if you are in your house and connected to your home network, is remotely control what song your “Media Center” computer should play. Using a MPD client, you can browse your Music Library (and your playlists) and just play any of them on your great sound system. The good news is that you can do this using Windows, Mac, Linux, iPhone, iPad and even AppleTV.

Of course, this only answers some of the problems mentioned above (there will more than likely be several more articles on related subjects in this blog in the future). MPD does not offer a solution to the online streaming (at least not directly) not does it solve the problem of playing music acrosse the house on various speaker sets (it only plays on the machine it is installed on). But that’s already a first step to our goal : an ubiquitous access to our Music and Movies Collections.

Some Technical Notes

Setting up the server

Debian

1
2
aptitude install mpd
#what else were you expecting?

Mac OS X

1
2
sudo port install mpd
#also works with fink and homebrew

Configure mpd by editing /etc/mpd.conf or /opt/local/etc/mpd.conf and set the path to your logs, music library, etc.

Start the server (either manually with mpd) or automatically with an /etc/init.d type script

More information

The MPD Community Wiki (new to me) reveals that the project has been pretty active lately which is excellent news.

MPD Clients

Now that I’ve described how to setup your MPD server, you will need a client to play your music from anywhere. I switched to Mac OS X about a year ago and this is now my primary system. We also run some Windows machine. I use Debian as well but most of the time, that’s only as a server (ie no graphical interface there)

Windows:

QMPDClient: our favorite client on Windows is QMPDClient. The client suit us best because it didn’t choke on the size of our collection and it handles both file system and tag views.

QMPDClient has been extended with another project QMPDClient-ne which should also run on Windows though I haven’t tested it on this platform.

Linux:

MPD being a project that came from the Linux world, most clients are aiming for this platform.

Currently, I have tested:

QMPDclient (so that Derrick and I can run the same software on both systems)
QMPDClient also has a package available via apt/aptitude for Debian.

QMPDclient-ne in order to see what enhancements have been added like the possibility to pull up lyrics.

QtMPC, another Qt4 based client.

Mac OS X:

Theremin is the most famous Mac OS MPD client as it is written in Cocoa and therefore has the Mac aqua style. Another plus, it has a growl connector.

About a year ago, I had tested Kea2 which was in an alpha stage. It seems to have disappeared.

iPhone / iPad

I’ve tested MPoD for iPhone and will probably try MPaD for iPad soon.

Where to go from there ?

There is a lot more to do on this Music system of ours. We are still looking for a great Music Client (iTunes doesn’t cut it for us at all, our collection is too big for the sorting and management offered) but we want to enjoy solutions like AirPlay. We also hope to see more AirPlay (or similar) received come out in order, one day, to have speakers in every room and a way to play music where we want. Stay tuned…

Today, I was tempted to take control of a Windows machine remotely in console mode as I’m trying to script the launch and use of VLC. A quick Google search reveleaed the existence of the sshwindows project which is a more lightweight solution than a full cygwin installation.

Here are the installation steps :

Download and run the sshwindows installer.

As the setup will tell you, some simple commands will be needed to complete the installation. Launch the windows command line tool (windows key -> type cmd -> press enter) and head to the directory in which you installed open ssh.

1
2
3
cd \
cd "Program Files (x86)"
cd OpenSSH

The steps needed to complete the installation are detailed in the docs folder in two files : quickstart.txt will quickly sum up the steps while the readme.txt is a more detailed setup and troubleshooting guide.

Below is a step by step process on what I had to do to get the server running :

1
2
3
4
5
6
7
8
9
10
11
12
# go to the bin directory of the OpenSSH folder
cd bin
# create the default groups
mkgroup -l >> ..\etc\group
#create the default users
mkpasswd -l >> ..\etc\passwd
# Note: for neither of the above commands did I bother with the domain version documented in the quickstart
# Now, if you look in ..\etc\passwd, you will see entries (one per line) for all your Windows users.

# Start the server in debug mode
cd ..\usr\sbin
sshd -d -d -d

According to the quickstart guide, everything should work at this point but that was not the case for me.
I had permission errors with the rsa and das key files

Below is the message I saw :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
debug1: sshd version OpenSSH_3.8.1p1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/etc/ssh_host_rsa_key' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /etc/ssh_host_rsa_key
Could not load host key: /etc/ssh_host_rsa_key
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/etc/ssh_host_dsa_key' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /etc/ssh_host_dsa_key
Could not load host key: /etc/ssh_host_dsa_key
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available -- exiting.

I solved that problem by using chown and chmod available in the bin folder to change the persmission on these files. As I found out trying to run chown, I needed a cygintl-2.dll file which I didn’t have on that computer. I ended up copying it from another computer running an up to date install of cygwin. In this up to date version, cygintl-2 was called cygintl-8, I renamed it. If you need to, download cygintl-2.dll and cygwin1.dll and place them in your OpenSSH\bin directory. Note that you will need to replace the existing cygwin1.dll.

1
2
3
4
5
6
7
8
cd ..\..\etc
..\bin\chown <username> *
..\bin\chmod 600 *
# ls -lsa to confirm that the permissions were changed
# run the server in debug mode again...
cd ..
usr\sbin\sshd -d -d -d
# If prompted, allow the service to accept incoming connections...

That’s it, at this point, the server starts. You can kill it (CTRL+C) and start it as a Windows service by running

1
net start opensshd

Time to test our SSH server with a client. On a different computer, run a SSH client (if the other computer is running Windows, you can use putty).

1
2
3
4
ssh <username>@<ip_windows_machine>
# You will be prompted to accept the authenticity of host, type yes
# You will be prompted for a password
# Enter your windows password

At this point, it worked for me ! Now I can connect to a Windows 7 using SSH and that makes Windows a lot cooler ! Thanks to the developer, Michael Johnson.

Going further, the public key authentication

Since my goal, with all this, was to script the use of VLC from a Unix machine on the Windows one, I could use the public key authentication to bypass the interactive authentication.

The SSH public key authentication system is based on the private and public keys which are expected in the user’s home folder (in a folder called .ssh). So the first step will be to define the user’s home folder on windows.

Since I’m not using cygwin but open ssh for windows, it’s only the declaration of the home folder in openssh that I care for. I edited the file in c:\Program Files (x86)\OpenSSH\etc\passwd and changed the value before last (each value is separated by a ;) . I changed the home folder for my user to /cygdrive/c/Users/<username>. Now I can go in my c:\Users\<username> folder and create a folder called .ssh. I recommend creating this folder using the command window as I don’t think it is possible with the graphical interface.

1
2
cd c:\Users\<username>
mkdir .ssh

At this point, you need a public key which you should generate with the command

1
ssh-keygen -t rsa

Now, the idea is to place my user’s public key in this folder in a file called authorized_keys. Since I’ve already setup my public key, I simply add to place it in that folder and do :

1
2
3
4
5
6
7
cd c:\Users\<username>
cp id_dsa.pub authorized_keys
remove id_dsa.pub
# The public key authentication will not work if the permissions are not set right on this file so
"c:\Program Files (x86)\OpenSSH\bin\chown.exe" -R <username> .
"c:\Program Files (x86)\OpenSSH\bin\chmod.exe" -R 700 .ssh
"c:\Program Files (x86)\OpenSSH\bin\chmod.exe" 600 authorized_keys

Edit your ssh server configuration file and make sure the Public Key authorization is not commented (it was okay for me by default)

From your client computer, connect again using ssh <username>@<windows_ip> and you shouldn’t be prompted for a password anymore.

Now, I can simply launch commands on the windows machine by doing

1
ssh <username>@<ip_windows> <cmd>

Finally, moving on with my project which I’ll describe in this blog upon completion. ’till then, hope this tip helps

The problem :

The problem is famous : how to keep multiple computers in sync in order to have access to our data no matter where we are, no matter which computer we are using. It isn’t the first time I wonder about how to improve this aspect of my computer setup and I must say that Dropbox, Evernote, Google Calendar, GMail and a lot of other “cloud” solutions as they are called have helped tremendously over the years. Still, this week iMac incident once again brought the problem to the surface.

A little background :

My primary computer is an iMac based at home. I work as a software engineer so I also have a work computer. At the moment, this is a brand new MacBookPro. I also own a three year old MacBook which I use when we are away from home (unload photos, check emails, simple things like that).

When my iMac broke down earlier this week, I wasn’t without a computer. I had two more. Still, I felt left out because my various emails accounts were not setup on either MacBooks (my work computer doesn’t carry any of my personal data), my iCal wasn’t setup on any of these machines to track my appointments. My on-going projects on the iMac (personal development, Lightroom work, etc) was also stuck on the iMac’s hard drive.

A possible solution, making my Mac User portable :

The problem is known and a lot of people have solved it many different ways.

Apple tries to answer it with MobileMe, Microsoft created LiveMesh, etc. The problem is different for each of us as we all have a different setup. Some might decide to simply sync (using rsync for example) two computers to be exact replicas of each others. With today’s bandwidth, this is a solution just as valid as any other.Of course, the problem also depends on your setup : do you have several personal computers ? Do they all run the same OS ? Are they on the same network, etc ?

My situation has the following characteristics

  • I am the only person using these three computers (boyfriend is allergic to Mac somehow, he might launch Opera to check his emails on the MacBook when we’re away from home but that is an effort for him)
  • All three machines are running Mac OS X Snow Leopard
  • I usually do not use two of these computers at the same time. I work on the MacBook Pro in the daytime, turn it down in the evening and use iMac for personal stuff. If we’re going away, I’ll update the MacBook (load music and stuff on it) and pack it while I’ll switch off the iMac.

Because of my situation, it seems to me that I can carry my Mac User around without taking too much risks in terms of file conflicts.

Testing

While I had my iMac repaired, I went and shopped for a 1TB 2.5 external hard drive. I ended up with a Western Digital Element SE (80 euros).

Here’s the idea :

Using Carbon Copy Cloner, I will periodically sync my iMac’s Home Folder on the Western Digital Element. That simply means that my main Mac user will be available on this external drive with all my personal data (Music, Photos) and profile (Mail.app configuration, iCal configuration, etc).

On the MacBookPro, I renamed my user from samo (which I had used across all computers) to samowork. Then, I created another user called samo whose Home Folder is the Western Digital Element. I logged in with that user, fired Mail. It works, all my personal emails were there and the work emails were left out. So, from now on, if my iMac gets sick again, I can use another computer as a temporary replacement. Better yet, that will not leave any trace on that other computer (it’s all kept on the external drive).

On the MacBook, same procedure. I renamed my user to samobook and created another samo user whose Home Folder is the Western Digital. Now, when we are on the move, I don’t only have a Mac with me (which is cool) but I have MY Mac with all my stuff and that’s WAY COOL.

Also, the Western Digital Element also acts as an extra backup of my personal data (in addition to the Time Machine backup I make weekly)

I just completed this setup (doing a manual copy for now, not a CCC backup) of my Home folder and didn’t encounter a problem yet.

What’s left to do ?

  • Automating the sync (with CCC) or rsync and a cron
  • Making sure that, when running my profile on a different computer, I can sync my iPhone and not loose my media or apps (see also my article about having 1 phone and multiple macs)

Going all the way ?

I suppose, to go all the way, I should use the Western Digital drive as my Home Folder on the iMac as well. No need to sync anymore but that would mean always having that drive hooked up and not using it as a backup anymore. Also, if there is ever a conflict somewhere, I’d rather just be able to consider the iMac the master Home folder and the rest as a slave. For now, I’ll experiment that way.

What you need to know :

  • If you wish to use your main account on the other computers (in my case, on the laptops), I would recommend pluging the external drive BEFORE logging in your account. I do not know what would happen if I was to login and my Home Folder wasn’t found.
  • You SHOULD only use your main account on what computer at a time. If I am using my account on a MacBook, I’d better sync the WD back with the iMac before using my iMac (to avoid conflicts between files)
  • Changing account’s shortnames and home folder is possible (and seems to be very well handled by OS X). Still there are dangerous operations. Check out the following pages of the Apple support site before proceeding
    How to change the shortname or home folder name
    How to move the home folder
  • This setup doesn’t not synchronize the installed Applications. Now I can see my photos on the work MacBookPro but I would need to install my Lightroom there to work on them (which I probably won’t do) but I could easily edit a personal project on my work computer since Textmate is installed across all my machines (and setup exactly the same way every where thanks to DropBox)

Anyway, I thought the idea was worth sharing as it might really answer the problem for me for now (still wondering how MobileMe will evolve).

Procedure :

Source machine :

Here is how to setup the backup from the imac’s home folder to the WD external drive using CCC (Carbon Copy Cloner)

  1. Download and install Carbon Copy Cloner, launch the software
  2. On the left, select your Macintosh HD and browse to Users > <yourUser> (ie samo)
  3. On the right, select your external hard drive (I formatted the volume and named it samo)
  4. Click on Save Task button
  5. In the following screen, name your task and schedule it
  6. To run and test it immediately, press Run
  7. This will take a while…
  8. Check the content of your external hard drive, you should find all the files you have in your Home Folder
  9. Note that, next time, the backup will take a lot less time as only modified/added files will be transfered (CCC uses rsync which backups incrementally)

Some my prefer to use rsync manually and be more in control of their backup.

Here’s a working code sample to get your started :

Sync the whole samo Home Folder (dry-run mode + verbose move, will only list what rsync would have done)

1
rsync -r -v --dry-run   /Users/samo/ /Volumes/samo/

Actually launch the command

1
rsync -r   /Users/samo/ /Volumes/samo/

Delete the files that are on the external HD if there aren’t on the source computer anymore

1
rsync -r --delete   /Users/samo/ /Volumes/samo/

Do not delete the files on the external HD, do not touch the ones that were modified on the external HD

1
rsync -r -u   /Users/samo/ /Volumes/samo/

A lot more options and information about using rsync can be found in posts such as 15 rsync command examples.

Target machines :

Here is the procedure I followed on the two laptops to move my current user “samo” and create the main one (with its exterrnal data).

  1. Go to System Preferences and go to the Accounts section
  2. Create a new administrator user (ie login admin, password admin). We will delete it when we’re done, it’s just a user I create in case something goes wrong I can always log back with him as Administrator and solve the problem
  3. OPTIONAL: if you already have an user on this computer named like your main user, you need to edit its name and Home Folder name…
    Launch Terminal.
    Navigate to /Users (cd /Users)
    Rename your user’s Home Folder (ie mv samo samobook)
    Back in the Accounts management, click on the lock to allow changes (if necessary)
    Right click on your user’s name in the list on the left and enter the Advanced Options
    Change your user’s shortname (ie from samo to samobook)
    Change your user’s home directory (ie from /Users/samo to /Users/samobook)
    Restart or Logout and Log back in to make sure your user still works…
  4. Return to the System Preferences > Accounts section and create yet a new user. Enter the account name of your main user (ie samo)
  5. Right click this new user in the list on the left, edit the home directory and select the Home Folder you copied on an external drive
  6. At this point, you can delete the temporary admin user (created at step 2), then logout and back in as your main user to see if everything worked for you

Last but not Least

Once your Mac user is following you everywhere, you can sync your iPhone/iPad (including the media ie apps, music, etc) from any of your computers without loosing data on your device.
Note: you still need to authorize each of the computers you use for purchased items so this trick won’t enable you to bypass the 5 computer limitation.

 

I hope this setup will work for me and hopefully help other multi-mac users out there…

On tuesday this week, my iMac started acting up. It would boot successfully, run normally for a while but sometimes hang from 20 to 60 seconds in a row with the spinning beach ball cursor.

I quickly identified two things :

  1. hangs would occur when launching apps or triggering the launcher (spotlight, Alfred) which meant “hard drive access”
  2. with the help of the Activity Monitor I could tell that the hangings were echoed by flatlines on the hard disk activity.

My hard disk was going out with all my data. Or maybe my whole computer was dying (of course, warranty had expired 3 months ago).

Next actions :

  1. insert my time capsule drive in the USB dock and made sure I would have a current backup
  2. managed (see below) to talk to a Genius from the Apple Store and had my diagnose confirmed : the hard disk was probably causing the problem

Side note : the Apple Store Geniuses are not to answer the phone. How did I get to talk to one ? My mother was shopping that day and spotted an Apple Store. That is one of the things that makes her think of me and call. She called saying “I’m at the Apple Store, did you need anything?” She implied something about the iPad2 my whole family knows I’d like to get but I just said “Yeah, fix my iMac”… Then I asked her to see if she could find a “Genius”. It was a week day, 11am. They were not too busy and one reluctantly agreed to take my mother’s iPhone and talk to me. He wouldn’t really garanty anything over the phone but he felt, like me, the hard drive was to be checked. He asked me to bring the computer to the Store. Little did he know I live 1000km away from my parents and am unlikely to bring my iMac to his store.

Now this was turning into a geek’s nightmare. My iMac was going out fast. The hangs got more frequent and lasted longer. Mail.app would crash more than anything else. No more emails, no more calendars, no more address book (well, on the iPhone right?) I could have changed the HD right away but somehow, I suddenly realized I didn’t even know how to open the iMac… A quick glance around youTube taught me that opening the iMac requires suction cups (whatever that may be) and looks like a pretty dangerous (for the iMac) operation.

I have built PC before but somehow, I didn’t feel like driving to the hardware store, ask for the French translation of suction cups and open the beast. I went back to my work (on the work MacBookPro) and left it at that.

Next steps (two days later). I took an apointment with the Apple Store Genius for the week end but still wanted to make sure the drive was at fault. I ran Disk Utility. It found errors. So I inserted the Snow Leopard Disk, pressed ‘C’ during bootup and launched the Disk Utility from there. I repaired the disk and that went well. Rebooted, the problem remained.

Another attempt, the Apple Hardware Check accessible by booting with the OS CD in and pressing ‘D’ during bootup. It found no errors.

Now, a quick Google search taught me that : replacing the drive at the Apple Store would cost 200 euros and take a week. That is another FULL WEEK without emails, calendars, todo list, music collection, lightroom, you know… no computer ;)

So, at this point, I cancelled the appointment with the Genius and went another route.The week end came and I took the iMac to a unofficial Apple Genius who claimed he knew how to change the drive and open the machine. I picked a 2TB 7200 rpm drive to replace the original 1Tb Seagate. This is where it’s going to get fun later : the hard drive model has changed…

Repair went well, I reinstalled Snow Leopard, it worked good, no hanging. TimeMachine backups are absolutely awesome. In 4 hours, I had all my data back, all my settings, all my applications reinstalled. TimeMachine has to be the thing PC lacks the most.

BUT, after a few minutes of “normal” use, a problem surfaced. The iMac was now noisy (another thing Macs do better than my home built PCs is running quietly). The fan was going nuts in there for no apparent reason. I installed the iStats widget on the dashboard (highly recommended) and realized that, even though the HDD temperature was read at 40 C, the HDD fan was spinning at 5400rpm. Insane !

Reading here and there, I realized this was due to the hard drive change. Either the temperature sensor has been messed with or damaged or, simply, the new hard drive is incompatible and the fan just doesn’t know what to do so it just spins at max speed. The first thing to do in that case is to reset the SMC. That didn’t do it for me though. I read about several fan control apps (most notably smcFanControl which seems to be famous) but none allowed to reduce the fan speed, they could only set the minimal fan speed or increase it. Finally, I found HDD Fan Control by Ben Surtees. Installed it and instantly, the HDD fan went back down to 1600 rpm and the iMac was silent again. What a relief!

What a week, I’m glad to have the iMac back. Many many thanks to TimeMachine and Ben Surtees for saving the week end.

Oh by the way, if you didn’t do it already, take a minute in this three day week end to setup your time machine backup. Hardware doesn’t last forever.

This is a follow up to my most active post ever about connecting my Yamaha DTXPlorer kit to Rock Band and Guitar Hero running on XBox 360. About a year after this post was published, I finally got Rock Band 3 but it took me until recently to get my hands on the Mad Catz Midi Adapter for Xbox here in France (stocks were scarce).

Once you have the Midi Adapter, you can play Rock Band 3 in Pro Mode using your drum kit and that is the ultimate experience. Rock Band 3 is all about learning to play music “for real”. I have yet to test the keyword and guitar mode but on drums, it’s wonderful. The whole kit comes alive as songs are mapped in full including snare, kick pedal, all three toms, crash, ride, hi hat and even hi had pedal. Now this is getting serious. Playing a song in pro mode at expert level really is playing the song.

As you can see in the above picture, this is the symbol to hit the blue cymbal as opposed to the blue tom (the blue cymbal actually is the crash). Jumping from Rock Band II/Guitar Hero World Tour to Rock Band III in Pro-Mode I actually had a lot more to handle : the cymbals and the hi-hat control. I didn’t start learning the hi-hat control yet but the jump to the cymbals was surprisingly easy. In my first session, I could play the easiest songs at expert level. And that felt pretty cool.

How does it work ?

If you are coming from my previous setup using a computer and a GH:WT module, you know that the GH:WT module was needed to send the signal to the console while the computer was used to map the midi signal sent from the drumkit to the midi signal expected by the GH:WT module. The Rock band 3 Mad Catz Midi Adapter pretty much acts as a all-in-one-box GH:WT + Computer. It receives the midi signal from the drum kit, maps it to the known midi notes of the game and send the signal (via USB) to the console.

Because the Mad Catz Midi Adapter is more advanced than the GH:WT module, it enables the mapping of several more notes enabling the use of snare, toms and all three cymbals. Somthing one could not do with the old setup since we had to map all of our cymbals to play and register as one of the recognized pads in the game.

What will you need ?

  1. Mad Catz Midi Pro Adapter for Xbox 360
  2. Midi cable

Connecting it all together

Using the Mad Caz adapter is very simple. All You’ll need to connect your DTXPlorer kit is a Midi to Midi cable. I grabbed one from Amazon myself. Connect your kit’s module Midi port to the Mad Catz Adapter Midi port. Connect the Mad Catz adapter to your XBox USB port. Finally, on the Midi Adapter itself, place the instrument selector on D for drums. Turn on your console and everything is ready.

The mapping

This time, the mapping of the midi notes is dictated by the Midi Adapter and you can not change it.

Here are the values of the implemented mapping :

Midi Note Kit Pad Game Pad
38, 31, 34, 37, 39, 40 Snare Red Pad
48, 50 Hi-Tom Yellow Pad
45, 47 Low-Tom Blue Pad
41, 43 Floor-Tom Green Pad
22, 26, 42, 46, 54 Hi-Hat Cymbal Yellow Cymbal
51, 53, 56, 59 Ride Cymbal Blue Cymbal
49, 52, 55, 57 Crash Cymbal Green Cymbal
33, 35, 36 Kick Pedal Kick Pedal
44 Hi-Hat Pedal Hi-Hat Pedal
CC#4 (foot controller) Hi-Hat Pedal position Allows Hi-Hat pedal to be held closed

Luckily for DTXplorer owners, our kit has been tested with the adapter and is known to work.

Here is the result for us of this mapping in the game :

As it shows in the table above, the Mad Catz Midi Adapter maps the blue cymbal to the ride, the green cymbal to the crash. Personally, and it seems from the image above that Yamaha’ default setup matches my expectation, I placed the crash on the left and the ride on the right.

Here are the midi notes sent out by our DTXplorer

The crash sends out the 49 and 57 notes, the ride sends the 51 and 52 (depending on whether they’re hit in the center or on the edge). Using these values and comparing them to the table above, we can see three problems :

  1. the 49 and 57 (crash) is mapped to the game crash pad (green) although I would like it to be the ride pad (blue)
  2. the 51 (ride) is mapped to the game ride (blue) although I’d like to the be the green
  3. MORE IMPORTANTLY the 52 (ride edge) is mapped to the game crash (green). That means that the ride is mapped to blue but the ride edge is mapped to green. Conclusion, do not hit your ride edge or your hit won’t be registered !

So here is a more precise view of the default mapping :

There is nothing I could think of doing to fix the problem of the ride’s edge but I really wanted to reverse the position of the crash and ride as I got used to playing the other way around.

The solution is both “quick” and “dirty” as it simply involves inversing the cables in the DTXPlorer brain module.

Notice how the crash and ride wires are plugged in the “wrong” place.

Once the wires are switched, here is the mapping we finally get in the game :

The ride’s edge problem remains but I am much more comfortable with both green cymbals and tom placed on my far right and both blue cymbals and tom in the center. Anyway, this is just a preference easily achieved by switching the wires.

The sound

When I would play Rock Band 2 or GH:WT with my old, computer-based, setup I would usually turn off the sound of the intrsument in the game and listen to the sound of my drum kit using the headphones (I would bring the rest of the song to my kit’s input using a jack running from the console audio out to the DTX aux plug). That way, if I decided to play a given “color” say green using the ride instead of the tom, I could hear the result of that decision.

Anyway, I do not relay on this anymore in Rock Band 3 since the game truly acknoledges the differences between toms and cymbals.This really makes it simpler to set the whole game up and also makes the sound a lot more balanced altogether.

Awesomeness

Rock band 3 Pro Mode really delivers the ful drumming experience I was hoping for when I started connecting my kit to the game. The Mad Catz Midi Adapter, in addition to unleashing the use of a real kit as opposed to the game’s kit, is the ultimate version of my computer-based setup. The adapter doesn’t go in sleep mode when inactive (okay, that could be fixed by installing caffeine on the MacBook) and, more importantly, it seems to correct the lag issues I was sometimes having on fast drum sequences (like in GH Metallica). And, to really make it better, it’s a whole lot easier to setup. Just connect the kit and the adapter, no need to bring in the computer and a trillion of extra cables.

Questions ?

Can I use the old computer-based setup in RB3 ?

Yes, it works. Also, since I realized now with the release of the midi adapter that my original mapping was more GH:WT/Metallica oriented, I made an alternative one to be used with the Rock Band games which is exactly the one showed above (except of course than in RB2, there is no distinction between toms and cymbals)

Can I use the old computer-based setup in RB3 ProMode ?

No. RB3 detects the presence of the Mad Catz Adapter or the Mad Catz cymbals kit to enable pro mode. So, when using the old computer based setup (and the GH:WT module) you can not enable this mode. And yes, this is a shame as I would have loved to be able to use my Mad Catz Adapter on the guitar for a guest while using the old setup on the drums. Now I know I will need to get another Midi Adapter as soon as my kid brother moves near by :-)

Can I use the Mad Catz Midi Adapter with Rock Band 2 / Beatles ?

Yes.

Can I use the Mad Catz Midi Adapter with Guitar Hero : World Tour / Metallica ?

Short answer : yes but it’s not as good.

Long answer soon to be published.

Recently, I was given a Virtual Machine development appliance to work with. The machine was running Debian which I like but it had been installed in French which I … dislike. First, I find Debian to be not so well translated and I’d rather use it in English. Second, I use qwerty keyboards so the French keyboard layout didn’t suit me at all.

Anyway, just as a reminder, here are the commands to edit these settings :

Change the language with

1
dpkg-reconfigure locales

Change the default keyboard layout

1
2
dpkg-reconfigure console-data
dpkg-reconfigure console-setup

That’s it, much more comfortable…

As I understand, this post might soon be outdated if the next version of Virtual Box does manage to natively run VMWare Player appliances. Still, this version hasn’t be released yet and, since the VMWare Player doesn’t exist for OS X, I had to convert an appliance from VMWare player to Virtual Box.

Here are the steps (OS X)

  • download and install the latest version of Virtual Box
  • download and install the latest version of qemu
  • Run the following commands in your terminal (assuming that your vmware appliance is called vmwareapp.vmdk)
1
2
3
/Applications/Q.app/Contents/MacOS/qemu-img convert vmwareapp.vmdk raw-file.bin
/Applications/VirtualBox.app/Contents/MacOS/VBoxManage convertdd raw-file.bin virtualboxapp.vdi
/Applications/VirtualBox.app/Contents/MacOS/VBoxManage modifyvdi virtualboxapp.vdi compact

Run Virtual Box, in the disk management section, add the existing disk and select the virtualboxapp.vdi file. Then, create a new machine, and make it use this drive you just created.

Finally, boot the virtual machine…

My appliance was CentOS based and, at startup, I was getting a nasty kernel panic. After trying a lot of solutions provided on Google, I realized the kernel panic was simply caused by my VM settings. In Virtual Box, I edited the settings so that the virtual hard drive appeared to be mounted as Primary IDE and not as a SATA drive… That fixed it for me, so if you are facing a kernel panic in Virtual Box, check this out.

If you are a Mac user only, you might not be aware of the trail of files our OS leaves in every folder you open and browse but as soon as you share data/external hard drives or network drives with a Windows or Linux user (or if you use multiple OS) they become a bummer appearing in every folder.

I will not go into the details of why Apple implemented the Finder with the use of these files (or whether this was a bad idea) but I will simply list some solutions I found around the Net to fix the “problem”.

The free and incomplete solution

It is possible to prevent OS X from writing these files on network drives (SMB/CIFS, AFP, NFS and WebDav to be exact). If this is the only way you and Linux/Windows users share access to the same data, this might be good enough for you.Note that it will not prevent OS X from writing these files on USB mounted drives if oyu happen to share data that way as well.

  1. Open Terminal.
  2. Execute the command
    1
    defaults write com.apple.desktopservices DSDontWriteNetworkStores true
  3. Either restart the computer or log out and back in to the user account.

Source: Apple Support

 

There is also a software way to acheive the same goal for those who do not wish to use Terminal or might be curious as to what other options are hiding in their OS

Tinker Tool is a software that lets you tweak the guts of OS X including the option to write or not write the DS_Store files to your network drives.

Of course, by deciding to not use these files you will loose the features they are responsible of like the saving of your window position, custom view, etc.

Now, if you chose this path, these files will not be created on your network drives anymore though you might still need to remove the existing one.

Still using the terminal, you can do so by running the following command :

1
find /path/to/share -name .DS_Store -exec rm {} \;

The rich and complete solution

Another software, called Blue Harvest, enables you to decide whether these .DS_Store files should be written on network drives or USB mounted drives and will also handle the cleaning of these files in drives where they have already been written. There is a 30 days trial available so you can check this solution out and decide if this is worth it to you.

Sources:

Well, unfortunately, we just found out that OS X is not 100% awesome, but we can still make it look like it is to our “Windows users friends”.

The plugin used on the homepage of this blog to display featured articles is called Related Posts with Thumbs. It will display the last X posts published in a given category. For flexibility, I created a categoruy called “Editorial” for the posts which should be displayed with the plugin. The problem was : I didn’t want this category to appear anywhere else. That is, this category shoulnd’t appear in the category list (in the left sidebar) or on the Archives Page. It should also be excluded from the post metadata… As I worked on this, I decided to also hide the “Uncategorized” category.

In order to accomplish this, I studied WordPress hooks. WordPress hooks are small functions customizable in one’s WordPress theme which will be called by WordPress core code. The reason behind hooks is to enable some custom code to be called in a given theme, plugin or widget, without modifying the WordPress core code which will be erased every time we upgrade our blog to the newest version of WordPress.

Hiding a category from the post metadata:

The post category at the end of a post are displayed using the following method : the_category(). This method is defined in wp-includes/category-template.php. This method calls get_the_category_list(), itself defined in the same file. This function gets the category list by calling get_the_category() also defined in this category-template.php file. Now, the important part is that this method get_the_category calls a custom filter named get_the_categories.

1
2
3
4
function get_the_category($id = false) {
....
return apply_filters( 'get_the_categories', $categories );
}

Let’s enable the filter get_the_categories and use it to skip the “Editorial” category. We will do that by editing (or creating) the functions.php file of the blog’s theme file.

1
2
3
4
5
6
7
8
9
10
11
12
// We enable the filter
add_filter('get_the_categories', 'hideCategories');
// The filter method (it hides the Editorial category, but you can change that to suit you rneeds
function hideCategories($categories) {
if (is_admin()) return $categories;
$resCategories = array();
foreach ($categories as $category) {
if ($category-&gt;name == "Editorial") continue;
$resCategories[] = $category;
}
return $resCategories;
}

Notice that we will not skip the category if we are logged in as super admin (that is to let the category appear in the administration panel)

Hiding a category from the category widget :

The same solution applies to the category widget. After identifying the method used by the category widget which is Walker_CategoryDropdown in the same wp-includes/category-templates.php file, it is clear it calls the list_cats filter somehwere down the road (in start_el). The only problem was, if the category was filtered out in the apply_filter method, it would display an empty line. Therefore, I submitted the following patch to the wordpress team.

In functions.php (in our blog’s theme folder)

1
2
3
4
5
6
7
8
9
// Apply the filter
add_filter('list_cats', 'hideCat');
// The filter code
function hideCat($catName) {
if (is_admin()) return $catName;
if ($catName == "Editorial") return '';
if ($catName == "Uncategorized") return '';
return $catName;
}

If you wish to use this code, download and apply the patch (tested on WordPress 3.1) I hope the patch will make into the later versions by the WordPress dev team.

 

I hope this example of use of hooks and filters will enable you to create your own custom code for WordPress. Happy coding ;)

 

References:

Below are great articles about WordPress development in general and WordPress hooks in particular


<< Previous PageNext Page >>