Archive for the ‘Home Media’ Category

New Audio Ripping Box

Posted: June 16, 2018 in Storing, Hardware, Audio
Tags: , ,

So the old Vortexbox is no more, the Atom 330 is so 32 bit that very little decent software now works on it. More by luck than judgement I managed to find an old micro-ATX board that has now been roped into service.

Given the variable quality of the music library, I’m seriously considering re-ripping everything to FLAC to ensure the best quality on the various playback devices we have.

So the question is – do I install Vortexbox (and perhaps get around to trying Bliss as well) or do I look at alternatives?

Itinerant fiddler…. so alternatives it is!

So far I’m looking at 3 options: Daphile, Vortexbox and dbPowerAmp.

First up Daphile

Daphile is a Gentoo based distro that does basically the same as Vortexbox. It is much more locked down as there is no access to the underlying system, and there are no additional services that can be added to enhance the functionality. It rips CDs as FLACs and adds them to the onboard LMS server. It does support LMS plugins btw.

The UI is much more polished than VB, with very little effort I can configure it to rip to my unRAID server where our music is actually hosted. I can specify the quality of the FLAC, schedule backups of the local music folders and even access Jivelite to control local playback.

Metadata is added but only via a single source (I can’t remember I’ll add it later!) and has mis-identified a couple of CDs.

What it doesn’t do…. No DVD ripping, no Plex, Subsonic or Bliss servers. It doesn’t allow you to rip to FLAC and then automatically create mp3s as well.

Generally I like it, I’m in two minds about keeping it but I have a couple of issues.

  • The inability to also create mp3 files from the same source at the same time
  • Metadata quality
  • Inability to configure naming convention for the output

If I’m just re-ripping for FLAC, then it will do the job very well, but I’ll still need to do manual work to rename and check the metadata. As there are several hundred CDs, that’s not great.

Next up Vortexbox.

Advertisements

Plex switch

Posted: January 20, 2018 in Home Media, Plex, Watching
Tags: , , ,

The current Kodi – Emby setup has been working well until recently. For some reason, the Kids profile is now refusing to play back certain files that work fine in the main profile. Other files play without issue in both profiles. I’ve also had the Emby client not working properly on the Roku boxes. Stuff has played on one Intel box that then refuses to play on the other one… even though it’s more powerful. With kids wanting to watch their stuff, having to troubleshoot which of their shows does and doesn’t work became increasingly frustrating.

Emby had been our default choice for one simple reason – it allow me to build profiles that meant the kids could have their stuff and just watch it. The non-kid friendly content was under a different profile. While this functionality was available in Plex, it cost money.

With a mix of self-built Intel platforms & Roku boxes, the need for a central server to handle synchronisation duties between all devices is critical; trying to juggle which particular episode of Pokemon the kids have watched is a full time job! Using Plex on the Roku and Emby on the Intel has been the work around, but this means trying to manually update both Emby and Plex watched statuses.

As part of the Black Friday deals I finally succumbed to buying a Plex pass… and a lifetime one at that. I mostly bought it to get access to the live TV and PVR capabilities allowing me to retire the TVHeadend Server that I never could get to work in the way I wanted.

After another episode – the Emby app crashed on the Roku3 – I decided to see what the actual front end Plex client was like. Initially I built a ‘simple’ RaspberryPi based Plex Media Player (PMP) to see how it could work and to see what the experience was like. Installation was simple and I was surprised to see that it was based on the same LibreELEC platform that we use for our Kodi players. The plan was to use the RPi in the playroom and see if the kids were happy with using it before thinking about updating their Kodi player.

After a ‘play-date’ with a room full of kids wanting to watch TV and the same issue of films NOT wanting to play – that was a happy 10 minutes – I finally decided to scrap their Kodi installation and install the PMP client. It’s an old NVidia Ion Atom board, so nothing huge, but runs 1080p content without issue and is speedy enough with a 30Gb SSD. The PMP installer did it’s stuff and within 10 minutes we had a working player. The only issue was that it wouldn’t detect my local Plex server automatically – it kept trying to route out of the house to Plex and then back again. Manually adding the local server IP address soon fixed that issue.

The kids are happily using the PMP client without issue on their box.

I should add that the issue has never been with Kodi as far as I can tell – it has always been with the backend Emby infrastructure – either the Roku app wouldn’t start or if it did it wouldn’t play back content. On the other side the Kodi plugin fails to play content under one profile that plays perfectly under another on the same device. Using the direct path capability was how it was originally setup, but this kept failing, so the only way to play stuff was through the plugin.

I can’t say that the the issue doesn’t lie with me using Emby as a Docker container on the unRAID platform and these issues aren’t related to this additional complexity, but all I know is that I run Plex the same way and it hasn’t caused issues yet.

After a couple of weeks running PMP on the kids box, I’ve also now migrated the main lounge player across to PMP as well. My biggest niggle about using the box is that the Harmony remote can no longer shutdown the box. I have to manually shut down before using the power off command to turn the rest off.

I felt bad moving away from Kodi – I’ve been using it in some form or another since the original XBMP on the first gen XBox – complete with Mechwarrior 2 hack to install it! I do miss the skins – the Plex interface is functional, it’s not pretty. I just don’t have the opportunity to debug/fix stuff when the kids want TV.

So I’d bought a TECEVO T4 NFC Bluetooth Wireless Speaker on an Amazon lightning deal a while back, partly because of wanting to play with Moo Music and partly to plug into my desktop so I can have sound that’s not via headphones.

I found plenty of people talking about connecting BT speakers to their Debian based systems, but a distinct lack of info about doing it specifically for Volumio. Working with the various guides I totally failed. Either the changes would result in  Volumio becoming unstable/not booting or would result in no audio anywhere.

If you dig deep enough you will find several requests for native BT support in Volumio, but they have all been rejected. While this is annoying, I actually agree with the reasons. Volumio is designed/tweaked to work as a High End Audiophile device when added to a suitable DAC. In no way is a BT speaker (no matter the cost) a high end output device. Providing support for such a device goes against the basic ethos of the platform.

Knowing that trying to install BT on Rune Audio was doubly cursed – I’m ignorant of ArchLinux AND it probably doesn’t support BT for the same reason, I went back to PiMusicBox.

As PiMusicBox is more of a wrapper for the Python based Mopidy system that is an extension of MPD, it is a bit less Audiophile biased. It also means that I can add and remove stuff to the OS without worrying about breaking some obscure kernel header tweak.

After a few false starts I managed to get the speaker to automatically connect to the Pi when they are powered. Audio from PiMuiscBox is sent to the speaker and as it is basically streaming VBR MP3 files, the quality is pretty good.

In fact I was so happy with the final result that I decided not to bother playing with the USB Sound card when it did eventually turn up…. about 2 weeks later!

#Install libraries
sudo apt-get install bluetooth bluez bluez-utils bluez-alsa

#Turn on BT Interface/Card
sudo hciconfig hci0 up 

#Use the BT device to scan for the speaker
hcitool scan # scan for your bluetooth device

This will return a list of devices and their MAC addresses, find the speaker you want to connect to and copy the MAC string. The run the  following commands:

#tell the adapter to connect to the MAC address and use 0000 as the pin
bluetooth-agent  --adapter hci0 0000 XX:XX:XX:XX:XX:XX 

#Test that the Pi and speaker are connected - should get you some beeps
bluez-test-audio connect XX:XX:XX:XX:XX:XX 

#Tell the Pi to trust this bluetooth device
bluez-test-device trusted XX:XX:XX:XX:XX:XX yes 

#Check that the device is now trusted - a 1 means it is
bluez-test-device trusted 48:5A:B6:A8:1C:A2 

#Restart the BT service on the Pi
sudo /etc/init.d/bluetooth restart

Now we need to modify some files

In /boot/config/settings.ini:

Change

output = alsasink

To

output = alsasink device=bluetooth

Rename the /etc/asound.conf

cp /etc/asound.conf /etc/asound.conf.bak

Replace the contents of asound.conf with:

pcm.bluetooth {

type bluetooth

device XX:XX:XX:XX:XX:XX ## your device id##

profile "auto"

}

Rename /opt/musicbox/setsound.sh

mv /opt/musicbox/setsound.sh /opt/musicbox/setsound.sh.bak

Backup the bluetooth audio config

cp /etc/bluetooth/audio.conf /etc/bluetooth/audio.conf.bak

And amend it, under [General] add the following

[General]

Enable=Source,Sink,Socket

Further down under the commented out #Disable add the following line

Disable=Media

Now reboot MusicBox….

 

I initially planned to use a simple wired speaker via the headphone jack – the kids already had one of these and it would mean one less thing to worry about. What I hadn’t considered was the fact that these were rev 2 versions of the original Pi B… so the sound quality via the headphone jack was pretty abysmal.

Adding a better external speaker wouldn’t solve the problem, it would still be using the same audio output. This left me trying to figure out how to use my other options – HDMI, USB, DAC or Bluetooth.

Option 1 – HDMI

My immediate response was to drop HDMI – although the audio would be excellent, getting hold of small, cheap HDMI equipped speakers was going to involve some weird devices or Alibaba shopping. I have a Cyp HDMI to Phono box…. But they cost ~£120 and for that money I’d rather buy a Sonos Play:1.

Option 2 – USB

I could add a cheap USB sound card (they are as little as £2 on Amazon/eBay), but that would mean extra bits sticking out of the case. For £2 these bits are not going to be robust enough to handle my kids. Spending more doesn’t really solve the problem, but it might be the best of a bad situation.

Option 3 – DAC

Buy a DAC… would love to…. But this means electrical things not in cases and vulnerable to pokey fingers. It also potentially adds a big lump to the cost of building the box, something I’m trying to avoid.

Option 4 – Bluetooth

Buy a Bluetooth speaker and connect them. No big extra bits hanging out or exposed on the case. I can re-use one of the BT dongles I already have. Speakers can be as big or as small as necessary. But I’d have to buy a speaker.

I decided to try the USB and BT options. I’d got a cheap BT speaker from one of the Amazon daily deals and with a few birthdays coming up I could add a £2 USB card as an add-on item to my basket.

In part three I’ll look at setting up the two to see which works best.

I love our Sonos and plenty has been written about how well they work and how easy they are to use. What they are not, is overly cheap. What are cheap are Raspberry Pi’s (especially when they are sitting doing nothing) and Bluetooth speakers (when on Amazon daily deal).

I’ve wanted to get a better music player for the kids for ages, but I’m not in a rush to trust them with a Sonos. So I fell down the rabbit hole of Pi as a music player….

But first things first – The OS

Originally there was RaspyFi – a complete distro for audiophiles that was designed to work with an external DAC and basically allowed the Pi to playback music at very high quality levels (24bit/192kHz quality). It appears that the various contributors then each went their separate ways and released their own versions. I could use a bare Linux OS and then install MPD (Music Player Daemon), but that doesn’t give me any interface on the device itself – it relies on external clients to control playback.

So there are four main contenders for the role of Moo Music OS. In no particular order they are RuneAudio, Volumio, Moode Audio and PiMusicBox.

Of these four I never really got Moode Audio to work happily, it would either fail to boot, fail to scan the library or just generally be as responsive as a brick. Both RuneAudio and Volumio are very similar. Both provide a nice, responsive browser based GUI that can be used from almost any device. Both provide carefully tuned and tweaked kernels for optimal audio. The only real difference is the underlying OS – Rune uses ArchLinux while Volumio uses Raspbian. Finally PiMusicBox. This is built on the mopidy application that is itself built on MPD. Again it provides a web GUI and allows control from any device. It’s only downside is that it appears to be much older than the other two with less frequent updates.

After playing with all of them I settle on using Volumio – the deciding factor? Raspbian. As much as I liked Rune Audio, trying to get additional stuff done under the hood is going to be much easier if I’ve got some experience of the OS!

In Part 2 I’ll look at the output side of things

Links

Volumio
RuneAudio
PiMusicBox
Moode

Emby Server

Posted: January 28, 2016 in Home Media
Tags: , , ,

As someone with several Kodi boxes floating around the house, I had always wanted the ability to synchronise both my library and my view state across the boxes. When this capability was introduced by using a central MySQL database I was happy – especially as it meant that rebuilds on low power devices would no longer taken hours as the entire library was rescanned.

Moving to unRAID 6 with it’s Docker eco-system made it even easier – no longer manually installing and maintaining the DB somewhere. Just install a MariaDB container, set up the user and off you go. I still needed to scan for new content on one device and update the DB, but at least it was on only one and not on all of them.

Migrating to newer versions of Kodi could still be an issue if the DB structure changed, but again, once the library was re-scanned by one machine, it was available to all the others.

Enter Plex

For various reasons – mostly that I had a couple of white NowTV boxes hanging around – I also installed Plex as a plugin on the unRAID 5 box. This was a much nicer experience than managing my data via MariaDB – using a central system with a nice GUI that then managed my library across multiple devices meant I could check the metadata and ensure that I had the right artwork. The trouble was I was now maintaining two systems, one Plex for a NowTV box and my work laptop for when I travelled and then ‘normal’ Kodi DB for the main playback machines. Replacing the playback machine with NowTV wasn’t an option – at that point they were wi-fi only and that wasn’t helpful. A small Plex OS install wasn’t available and I wasn’t going to install a full distro just to get Plex.

The Plex-XBMC plugins that were available didn’t seem to work properly – playback on one device wasn’t resumable on another and viewing history wasn’t always up to date. I also ran profiles on my system – the tv and films are split into stuff for the Kids and everything else. That way I can give the kids access to their stuff without worrying that they might decide to watch Alien or Kill Bill. While Plex eventually introduced this, it was a paid for option and it wasn’t enough on it’s own to justify the cost. With the retirement of the NowTV box, Plex became an unnecessary overhead and was shutdown.

Enter Emby

I’d played with Emby when it was MediaBrowser, but it was a little unstable and didn’t really offer anything new to me, so I left it alone. With the introduction of an Emby plugin that basically replaced the local Kodi library with a fake one that was fully populated from the central server, Emby became an important part of our setup.

Emby server runs in a Docker container on unRAID 6. It parses and manages the library providing metadata, art work and playback history that is then sent to each Kodi device at start up. It also includes profiles so I can map the local Kodi profile to a user on the Emby server and restrict access to content.

Rebuilds and updates are easy in that I have to install Kodi, install the Emby plugin and point it at the server and all my content is available for playback. This also means that I can run different versions of Kodi and point them at the same Emby server… making it much easier to update. I’m not updating several boxes at the same time to ensure that they all work with the new DB.

The one thing I DON’T allow Emby to do is handle playback – I deliberately tell the system to use the native file path for playback – and not to go through Emby. That way I’m not wasting resources on transcoding or double handling the files.

 

Emby

Emby Add-on for Kodi

VortexBox re-appears

Posted: January 14, 2016 in Hardware, Storing
Tags: ,

So I rebuilt the Vortexbox CD ripper last weekend… A few new CDs appeared over Xmas, so I needed to get them on to the Sonos so I could listen to them at home, not just in the car.

Last time I looked at VB it was on version ~1.5, but the current version is 2.4. It has also moved from an .ISO format to a USB installer (good news).

Trouble is that no matter what I did I couldn’t persuade the old Intel Atom board to boot into the freshly installed VB. I initially assumed that the issue was due to re-cycling of HDD – perhaps the MBR was corrupted: all the usual things that happen when you swap between OS installs. Even with a completely blank HDD (gparted rocks) it still jumped happily through the install process and then reported that ‘no boot device is present’.

Several other people reported similar issues and it looks like the hardware won’t accept a gpt boot partition, so it can’t see that it exists and so it constantly reports that no boot device is present.

The forums also reported that you can append ‘nogpt’ to the install boot params, but that didn’t work for me either. Having wasted enough time on reboots & reinstalls I eventually I found an earlier  v2.3 in .ISO format that I could copy to USB and that did work.