The Music Library Management blog has moved!

Please visit:
http://www.blisshq.com/music-library-management-blog/
and update your bookmarks.

Tuesday 30 March 2010

Automatic digital music workflow with VortexBox - (part two) integration

I'm a process automation obsessive. Last week I started a three part series on improving my digital music workflow. I wanted to automate more parts of my workflow, from this:
To this:
Five steps down to one!

Recognising that VortexBox will do a large part of this for me, I installed VortexBox in my home network within a VMware 'virtual machine' and got VortexBox up and running. This is all pointless without having any music to play of course, so this week I integrate VortexBox into my existing music network by linking my digital music files to VortexBox. I then describe where bliss fits into the workflow, and finally and most importantly I get to play some music!

A quick warning: this post contains some specific Linux related techie language! All this is possible within Windows and Mac environments too, but my chosen home network technologies tend to be Linux based ones.

We already know from my previous post that VortexBox contains a Squeezebox Server for distributing music around the home. A Squeezebox Server is a piece of software that plays music from a directory on your computer's hard disc. So, to integrate my newly installed VortexBox with internal Squeezebox Server with my existing music, I need to link the nominated directory with my music. My music is already available from my NAS via NFS, so all I need do is 'mount' the NAS's music directory to the nominated directory on the VortexBox. To do this, first I make the music available from the NAS, then I perform the mount on the VortexBox to access the music.

To make the music available from the NAS I add an entry to /etc/exports, which lists all directories made available via NFS:

/mnt/media/music 192.168.0.5(rw,async,no_subtree_check)

This means: make the '/mnt/media/music' directory available to the computer with IP address 192.168.0.5 (the VortexBox, since I've configured it to have a static IP). The music files are available for reading and writing. More on the /etc/exports configuration file here. Then, I reload the configuration file as so:

sudo /etc/init.d/nfs-kernel-server reload

The music is now available from the NAS. Now, I need to mount this music. The directory that the VortexBox assigns to play music from is, by default, /storage/music/flac. So, to mount the music within the VortexBox:

mount 192.168.0.3:/mnt/media/music /storage/music/flac

This means: mount the '/mnt/media/music' filesystem on 192.168.0.3 (the NAS) at /storage/music/flac. Listing the contents of /storage/music/flac lists our music successfully! Now, I don't want to re-issue that mount command every time the VortexBox starts, so I add a line to /etc/fstab:

192.168.0.3:/mnt/media/music /storage/music/flac nfs rw,noatime 0 0

Now, every time VortexBox starts, it will mount the /storage/music/flac directory automatically so my music plays with no effort.

With the directory mounted, and the music files visible on the VortexBox, we can now tell the VortexBox's Squeezebox Server to 'rescan'. Rescanning is the process the Squeezebox Server undertakes to update its internal database and make music available for playback.

Rescan for victory


Where does bliss fit into this? bliss isn't dependent on Squeezebox Server or VortexBox, it works on the digital music files directly. As a result, I have kept bliss running on the NAS, co-located with the music files, rather than install it in VortexBox for now. That said, either configuration would be acceptable. Whenever I move music onto the NAS, bliss recognises the music and conforms the album art against my rules automatically. For instance, if I move an album over with no embedded album art but with a co-located image file, the image file gets embedded into the music files without me doing anything.

Now... the important bit - listening to the music! I started up SqueezePlay to test my work. After choosing the new Squeezebox Server with the 'Choose source' function I soon had music streaming in full FLAC quality.


And there we have VortexBox streaming my music around my house once more. Next week we complete the final steps in our digital music workflow when we setup ripping from CD, automated tagging and album art, and automatic rescanning of the Squeezebox Server.

Sunday 28 March 2010

New release: build 20100320 - large album art resize options

A couple of new features this week. First I've added a 900x900 option to the art sizing options. A few people have suggested this size would be better when viewing art on their (upcoming) iPads!

Secondly, an option to control whether art is automatically overwritten if bliss decides existing art is uncompliant now means you can always choose to manually confirm art, if that is how you like it.

Finally, the tabs have been replaced with a drop down chooser to decide between all albums, just compliant or uncompliant ones. By default all albums, compliant or uncompliant, show on the home page.

Download from http://www.blisshq.com/download.html. Remember that all existing fixes transfer to this new version.

Tuesday 23 March 2010

Automatic digital music workflow with VortexBox - (part one) installation

I love being able to listen to my entire music collection throughout my home, in each room of my house. I can even listen to it at work, over the Internet. To get music throughout my house, I run Squeezebox Server. Squeezebox Server is jukebox software that distributes your music library and Internet radio across your home. The software is installed on my home server. A variety of music players in different rooms of my house connect to the Squeezebox Server to play music.

This works great, but listening to music is only part of a digital music workflow (albeit the most fun part!). I can find and play music easily, but what about the process of purchasing, ripping, tagging, organising, finding album art etc? Well it's less easy. My typical workflow at the moment is:

There's too much manual work in my digital music workflow. Most of it is related to ripping, using the manual ripper and tagger 'abcde'. To automate more of the process, I decided to try VortexBox. VortexBox is a combined automatic ripping and jukebox system that actually includes Squeezebox Server. It is essentially a full music operating system and can be installed on a bare-bones computer, replacing the existing operating system.

This is the first part of a three part series on, respectively, installing, configuring and integrating VortexBox into my home network and digital music workflow. By the end, the workflow I described above will (hopefully!) have changed to:
That's five manual steps down to one! Fingers crossed...

Part one - installing VortexBox
A quick warning: this section contains computer nerd jargon! Feel free to ask questions in the comments and I can attempt to explain further.

Currently, my home server runs Squeezebox Server in a virtual machine. Virtual machines are computers (also called 'guests') that run inside other computers (physical computers called 'hosts'). Virtual machines provide flexibility (they can be moved and power cycled separately to other virtual machines, even though they are running on the same physical computers) and lower power usage (in my case only one computer is required for all virtual machines; this server runs more than just a music system). The virtualisation software I use to run the virtual machines is VMware Server, on a headless Ubuntu Server 8.04 host.

So I created a new virtual machine for VortexBox. As far as VortexBox is concerned, as it is installing and running, it sees this virtual machine just as it would see a real, physical computer. First, then, we create a virtual machine in which we will install VortexBox:

Creating our VortexBox virtual machine

An important step is to configure networking for the VM from 'NAT' to 'bridged'. A bridged network makes the VM appear to be just like any other computer on the network and makes it easy for other computers and music players to connect directly to the VortexBox.

The network card should be 'bridged'

VortexBox is downloadable as an ISO that normally you would burn to a CD and then insert into the real, physical computer you intend to install VortexBox on. However, in our case we can skip that step and link our new virtual machine directly to the ISO. VMware does the work of making the ISO look like a CD to the virtual machine ('VM'). So, when the virtual machine is powered on, the VortexBox installation process starts just as it would with a real, physical machine. The linking of the VM to the ISO is done via the CD/DVD Drive options.

Linking the VM to the ISO. The ISO must be inside VMware's 'datastore'

Now we are finished setting up the VM, it's time to power on (virtually, of course!). We are greeted with the standard VortexBox installation menu:


VoxtexBox has a special option for installing to virtual machines. In the installer, choose "Install VortexBox on VMware or <30gb here="">". The difference is that this form of installation uses up much less space, and instead of repartitioning a virtual hard disk, it creates a directory in which music is stored. This is ideal in my use case, because I intend to link this directory to my NAS.

From here, the installation is simple. Once complete, VortexBox reboots itself, and starts successfully. When the startup is complete, we get:


See that URL in the terminal? Navigate to that URL in your browser of choice and you get the VortexBox web based interface:


(Eagle-eyed viewers will notice the IP addresses above are different - this is because I shutdown my server over night and finished this blog post the next morning by which time VortexBox had a different IP address. Shoot me.)

From this interface, you can access the Squeezebox Server, monitor the progress of automated ripping, configure MP3/FLAC mirror directories and more.

VortexBox is now installed, but there are more setup steps to go. We haven't improved our digital music workflow yet, but this will come when we link VortexBox to our existing music and enable automatic ripping. This will all be discussed in part two: integration.

Saturday 20 March 2010

New release: build 20100313 - update ID3v1 tags to ID3v2 to embed art

This weeks main new feature is the ability to update ID3v1 tags in your library to ID3v2, and have bliss install the album art it has selected. If you have selected to embed art, when bliss encounters an ID3v1 tag it will mark the album art as uncompliant because ID3v1 tags do not support embedded images. The album will appear in the 'Not installed' tab.

However, next to the album a new shortcut enables you to update the tag to ID3v2 and embed the art semi-automatically. Here's the UserVoice suggestion.

I also fixed a general problem with the Google search - this was manifest on Flickr results inparticular. Again, here's where it was suggested in UserVoice.

I also added an extra filter to filter by albums starting with non-alphabetic or numeric characters.

You should also notice the status indicator updates and appears a bit quicker after making changes to your album art rule.

Download from http://www.blisshq.com/download.html and remember that all existing fixes transfer to this new version!

Tuesday 16 March 2010

From iTunes to Winamp: album art transfer

Why don't they make things easy for us?

I've heard a lot of good things about Winamp and wanted to try out some of the interesting music library information features. I decided to move a small iTunes music library into Winamp to give it a go.

The album art in my iTunes library was reasonably complete. I say reasonably... well it wasn't totally satisfactory:

Four out of six ain't bad... I suppose...

Remember the golden rule for finding iTunes album art:
Album art is found in the iTunes Store ONLY
I had already set up an iTunes Store account and so some of the album art had been found and displayed. Unfortunately this didn't include music not in the iTunes store, such as my rarer albums. I decided to see if Winamp would use my existing art and maybe even fill in the blanks.

So now it was time to install Winamp and take a look. I installed it, started it up and fantastic! It recognised I had an iTunes library and offered to import it. "Great", I thought, "this will import all my art too".

Now, the reality: this is what I got:
One out of six is a lot worse

Alas, the import was not all it could've been. After importing my iTunes library I was greeted with one measly album art cover. The rest of my albums displayed an unwelcome although initially humorous monochrome image of a llama.

Earlier I gave you the main rule for finding album art in iTunes. Now there's the rule for managing album art in iTunes:
Album art is not stored in your music collection, art is stored in the iTunes database
This makes moving album art from iTunes elsewhere difficult. So: time to break out the big guns. I installed bliss, pointed it at the same music library, and told it to manage my album art.

A few seconds later, bliss had found and installed all four of the mainstream releases, fully automatically, and had found the correct art for the remaining two releases, for which it asked for my confirmation to install (presumably it found them on Google and so wasn't totally sure they were correct).
Six out of six!

I restarted Winamp and, joy of joys, the album art bliss had found was visible:

Sometimes the journey is more interesting than the destination

I'm not sure why Winamp won't import album art from iTunes, and I don't know why when it can look up some of my albums it can't find other equally mainstream releases. What I did find out was how bliss helps you move your iTunes library to other players. Now, back to listening to the music...

Saturday 13 March 2010

New release: build 20100306 - Finished memory footprint reductions

This week's release concludes the work to reduce the memory footprint of bliss... for now. We can now comfortably support around 5000 albums. There is more work to do on this but for now it is 'good enough'. If someone has a larger collection that isn't working quite right, let us know.

We also slotted a UI improvement in - when you choose or change album art yourself, you are taken back to the previous screen, not the home page for bliss.

The new release can be found at http://www.blisshq.com/download.html; existing fixes still work!

Tuesday 9 March 2010

A bit of press coverage: bliss for Linux album art

Over the weekend, bliss got its first bit of press!

bliss was featured on the TuxRadar Podcast in their 'Discovery of the Week' section. Take a listen; our coverage starts at about 33:45 (mins:secs).

Graham Morrison highlighted the way bliss runs in the background and presents a Web interface:
"[bliss] grabs album covers for your music collection, and it does it automatically, it does it in the background and it does it with a Web interface and it's very cool if you happen to run a Squeezebox or keep your music collection on a big hard drive"
This is pertinent, because home servers and NASs running Linux and other operating systems are increasingly becoming the storage location for our music. If it's stored there and, in the case of centralised jukeboxes like Squeezebox, played from there, it makes sense to manage it from there too.

Here's to more good press!

Saturday 6 March 2010

New release: build 20100228

This weeks build is an interim build which has lowered the amount of memory bliss requires when it runs.

No new features, sorry!

Pick up the new release at http://www.blisshq.com/download.html; remember your existing fixes apply!

Tuesday 2 March 2010

What's in a name?

A few people over the last few months have asked me "why the name 'bliss'?". Well, five months ago I had locked myself away for a day to decide on a name for this music management software I was writing.
I'll start by explaining the existing codename for the project alternated between 'AMT' (Automated Music Tagger) and 'Metadata-Sync'. As you can see, I needed something a little more catchy.

I wanted to solve my problems with managing large music libraries. My overwhelming feeling when struggling with my own collection was one of frustration and the mind boggling complexity of having to juggle and keep track of thousands of music files. For instance: how can I keep a consistent genre scheme across the library? And other similar questions. I wanted to invert the relationship: to manage my music in general rather than file by file. So as well as taking an opposite approach to music management, I wanted a name that was the opposite of frustration and struggle.

There were a few possibilities at this point under consideration. The three contenders were: Chorus, Harmony and Bliss.

What settled the argument in favour of the latter was a bit of idle Googling on the subject of classification systems. I found a pioneer of library classification systems was a fellow named Henry Evelyn Bliss. I see bliss becoming an automatic classifier and organiser, of sorts, and so that was settled. I'm afraid the relationship runs no deeper - any similarity between the way bliss works and Mr Bliss's classification system is purely co-incidental!

And that is why bliss is named as it is.