Friday, August 2, 2013

Kitchen PC: Software Configuration

If there is one thing I've learned about my family computing projects over the years is the software makes or breaks the whole project. It can't take more than a few actions for PC to perform it's task, otherwise it isn't going to be used. My goal for the kitchen PC is for me or my wife to wake the thing up and have it playing music in one click. I don't think I'm there yet, but I'm on my way.

The Guts

As I mentioned in the hardware post for the kitchen PC, with an iOS device you can stream to a single Airport Express, the advantage to using a PC (or a Mac, for that matter) is it is possible to stream to multiple Airport Expresses simultaneously. The most straightforward way to do this is to use iTunes. Of course, using iTunes isn't exactly the most well regarded music software, and using it to stream will limit you to only music you can import or get from iTunes. My preferred technique is to run Rogue Amoeba's Airfoil, which allows you to stream audio from any program to multiple Airport Express units. It largely runs in the background, although you need to open it up if you want to change which Airport Expresses you want to broadcast to, or which application you're broadcasting from. I recommend enabling Airfoil's Instant On feature which can eliminate having to restart the applications to capture the audio in Airfoil.

The weak point with Airfoil, in my opinion, is you need to open it up and switch sources. One way around this is to stick to a single source. I'm trying to only use Chrome-web apps to keep to a single source. Opening a page in app mode eliminates the toolbars and tab markers, so the page looks like a standalone app. So far it looks promising, but I'm not 100% sold on the Spotify web app. Also, I haven't decided what to do with my local music, but I will probably use Google Music once I get it all properly tagged, right now my Google Music is a mess.

To open a page in Chrome app mode create a shortcut with the following (using TuneIn as an example)
c:\Program Files\Google\Chrome\Application --app=

 The User-Interface

Here's what I'm starting with

I imagine the user-interface for this project will evolve. To start off, I put the start menu at the top of the screen. It looks OSX-esque from an earlier attempt to see if I could make a mock-Macintosh and I can't remember how to undo it. There are also a few desktop icons. Once things are running smoothly I may hide the start menu and task bar and remove the icons. At the bottom of the screen I have Rocketdock running. I have the dock set to always be on top and to not autohide.  I also turned off, minimize to the dock. For icons, I got free Rocketdock compatible icons from Icon Database. I'm using the ICS Optics set by lostintortola.

In the middle of the dock I put the music apps, I think I will primarily use, on the left side I put video apps, I may occasionally use, and on the right side I put miscellaneous other apps. Here they are in order from left to right.
  • YouTube: I have this set to the YouTube Leanback TV-friendly interface.
  • Live-TV application: I have an old HD Homerun on my network, this starts the QuickTV application that will play broadcast TV via an antenna in my attic. It seems like the computer isn't quite fast enough to playback the mpeg2 video stream, but since other video files run decently, that could also be that I had bad reception at when I was testing it. I used CCCP to install an mpeg2 compatible codec.
  • Video Files: This opens a grid stack docklet that shows the contents of a video folder on my NAS.
  • Music: Currently this opens another stack docklet that points to my music folder, but the plan is to have this point to Google Music.
  • TuneIn: This site collects internet-broadcasting terrestrial radio stations. I set up favorites for the local stations we tend to listen to.
  • Spotify: The subscription music service. There is both a web app and desktop app, The desktop app seems to perform better, and gives you more options, but I am going to try the web app again, to see if I get used to it.
  • Skype: This opens the chat program in it's standard window. I don't foresee broadcasting this over the whole house. That might be a little quickly.
  • Chrome: Opens a standard Chrome browser window
  • Airfoil: Opens the Airfoil App
  • Recycling Bin: I'll probably get rid of this as soon as I figure out how to put it somewhere else.
Remote Control

Having the tablet screen is nice, but it's also nice to be able to control music playback remotely. I've installed Remoteless for Spotify on our iPhones to do that, at least with Spotify. Remoteless also has a version only for Airfoil, but so far I primarily use Spotify on this machine and Airfoil control is baked into that version as well.


A few odds and ends to make the system work better.
  • Autohotkey: This project is actually my first experience with this Windows scripting program. On startup, the screen is upside down relative to the user (it's actually right side up relative to the keyboard). I have a one line script that sends Ctrl + Alt + Up Arrow to rotate the screen. I believe this is particular to this tablet. Occasionally I'll do something that will cause the screen to rotate back (so it is upside down to me). I put a shortcut on the desktop and in the quickrun toolbar that will execute this hotkey. I am going to try Hybernate Trigger to try to run this script when the computer wakes up.
  • Standby at night: I set up a batch file (from this source) in the task scheduler so the computer will go into Standby mode at night.
  • TightVNC: It is much easier to configure things on another PC while I sit on my couch rather than trying to use the stylus and a mini-wireless keyboard in the kitchen.
  • Rainmeter: I'm playing around with the desktop customization program, Rainmeter. I'd like to put a clock, weather, and maybe a music player on the desktop. I haven't used Rainmeter before. Years ago I used Samurize, which is similar.
Upgrade Ideas

Software wise, I suspect it's going to take a while to converge on the right user interface. Ideally, I wouldn't have to open up Airfoil. Also, I'd like to set up the desktop to display useful information like the weather.

If you missed it, see my take on the kitchen PC hardware, here.

No comments:

Post a Comment