Tag Archives: music

Music Playing: Both Whole-House and Mobile

It’s been nearly 8 years since I last made choices about music playing. At the time, I picked Logitech Media Server (LMS, aka Slimserver and Squeezebox server) for whole-house audio and Ampache with the DSub Android app.

It’s time to revisit that approach. Here are the things I’m looking for:

  • Whole-house audio: a single control point for all the speakers in the house, which are all connected to some form of Linux (Raspberry Pi or x86). The speakers should be reasonably in sync with each other, and the control point should be able to adjust volume on them centrally. I should be able to play albums, playlists, etc. on them, and skip tracks or seek within a track.
  • The ability to stream to an Android mobile device, ideally with downloading capabilities for offline use.
  • If multiple solutions are used, playlist syncing between them.
  • Ideally, bookmark support to resume playing a long track where it was left off.
  • Ideally, podcast support.

The current setup

Here are the current components:

  • Logitech Media Server, which serves the music library for whole-house synchronized audio
  • Squeezelite is the LMS client running on my Raspberry Pi and x86 systems
  • Squeezer is a nice Android client for LMS to control playback, adjust volume, etc. It doesn’t do any playback on the Android device, of course.
  • Ampache provides the server for streaming clients, both browser-based and mobile
  • DSub (F-Droid, Play Store) is a nice Android client for Ampache providing streaming and offline playback

LMS makes an excellent whole-house audio system. I can pull up the webpage (or use an Android app like Squeezer) to browse my music library, queue things up to play, and so forth. I can also create playlists, which it saves as m3u files.

This whole setup is boringly reliable. It just works, year in, year out.

The main problem with this is that LMS has no real streaming/offline mobile support. It is also a rather dated system, with a painful UI for playlist management, and in general doesn’t feel very modern. (It’s written largely in Perl also!)

So, I paired with it is Ampache. As a streaming player, Ampache is fantastic; I can access it from a web browser, and it will transcode my FLAC files to the quality I’ve set in my user prefs. The DSub app for Android is fantastic and remembers my last-play locations and such.

The problem is that Ampache doesn’t write its playlists back to m3u format, so I can’t use them with LMS. I have to therefore maintain all the playlists in LMS, and it has a smallish limit on the number of tracks per playlist. Ampache also doesn’t auto-update from LMS playlists, so I have to delete and recreate the playlists catalog periodically to get updates into Ampache. Not fun.

The new experiment

I’m trying out a new system based on these components:

  • Jellyfin is a media player. It supports not just music, but also video (in fact, the emphasis is more on video). Notably it supports controlling various devices. Its normal frontend is a web browser; Jellyfin’s server won’t output audio to a device itself.
  • Mopidy is a media player with a web interface that does output audio to a local device. In normal use, it displays an interface to your music, letting you select, queue up, etc.
  • Mopidy-Jellyfin (docs) is a plugin for Mopidy that enables two things: 1) Browsing the Jellyfin library within Mopidy, and 2) controlling Mopidy from within Jellyfin. Mode 1 barely works, but mode 2 works perfectly. Within Jellyfin, I can “cast to Mopidy” and queue up things, seek, skip tracks, etc.
  • Snapcast is a generic solution to take audio from some sort of source and distribute it throughout the house, syncing each device (and with better syncing than LMS, too!). The source can be just about anything, and the docs include an example of how to set it up with Mopidy.
  • Mopidy has selectable web interfaces, and the Mopidy-Muse interface has the added benefit of having integrated Snapcast control. (Mopidy-Iris does as well, though it wasn’t documented there.) Within it, I can adjust volume on devices, mute devices, etc. I could also use the Snapcast web interface for this purpose.
  • The default Jellyfin Android app lets me stream media to the mobile device, as well as control the Mopidy player.
  • Finamp (F-Droid, Play Store) is a very nice Android Jellyfin music playing client, which notably supports downloads for offline playing, a feature the stock app lacks.
  • The Snapcast Android app (F-Droid, Play Store) isn’t strictly necessary, since the Snapcast web app is so simple to use. But it provides near-instant control of speakers and volumes.

This looks a lot more complicated than what I had before, but in reality it only has one additional layer. Since Snapcast is a general audio syncing tool, and Jellyfin doesn’t itself output audio, Mopidy and its extensions is the “glue”.

There’s a lot to like about this setup. There is one single canonical source for music and playlists. Jellyfin can do a lot more besides music, and its mobile app gives me video access also. The setup, in general, works pretty well.

There are a few minor glitches, but nothing huge. For instance, Jellyfin fails to clear the play queue on the mopidy side.

But there is one problem, though: when playing a playlist, it is played out of order. Jellyfin itself has the same issue internally, so I’m unsure where the bug lies.

Rejected option: Jellyfin with jellycli

This could be a nice option; instead of mopidy with a plugin, just run jellycli in headless mode as a more “native” client. It also has the playlist ordering bug, and in addition, fails to play a couple of my albums which Mopidy-Jellyfin handles fine. But, if those bugs were addressed, it has a ton of promise as a simpler glue between Jellyfin and Snapcast than Mopidy.

Rejected option: Mopidy-Subidy Plugin with Ampache

Mopidy has a Subsonic plugin, and Ampache implements the Subsonic API. This would theoretically let me use a Mopidy client to play things on the whole-house system, coming from the same Ampache system.

Although I did get this connected with some trial and error (legacy auth on, API version 1.13.0), it was extremely slow. Loading the list of playlists took minutes, the list of albums and artists many seconds. It didn’t cache any answers either, so it was unusably slow.

Rejected option: Ampache localplay with mpd

Ampache has a feature called localplay which allows it to control a mpd server. I tested this out with mpd and snapcast. It works, but is highly limited. Basically, it causes Ampache to send a playlist — a literal list of URLs — to the mpd server. Unfortunately, seeking within a track is impossible from within the Ampache interface.

I will note that once a person is using mpd, snapcast makes a much easier whole-house solution than the streaming option I was trying to get working 8 years ago.

Flowers, Music, and Grandparents

Flowers

I’ve written a lot lately about my Grandma Klassen, who passed away this week. But I’m going to start this post about my Grandma Goerzen.

She died when I was just an infant. I never knew her, but as the years pass, it seems that I remember her better and better.

After we moved out to the farm where she and Grandpa Goerzen lived for decades, we noticed some flowers she had planted 30 years ago were still coming up, having withstood hail, hot summers, frost, construction equipment, and neglect all that time. Terah said, “It’s like your grandma left us a housewarming gift.”

Some of these flowers had never bloomed. Until this week.

One bloomed for the first time the day Grandma Klassen died.

A second bloom appeared the day of her funeral.

Music

My jr. high and high school band teacher loves music (and old engines, but that’s another story). You couldn’t sign up for “band” at my high school; you’d sign up for the class called LIFE. To him, music and life are indistinguishable. He says that anybody can speak to somebody, but music is the best way to speak to the heart.

My Grandpa Klassen died when I was 11. Grandma Klassen, before her health declined, loved to tell me the story of the music at his funeral. At his funeral, my mom and I played a piano duet of Nearer, My God to Thee which we had already learned for a different event. When we were done, Rev. Epp went to the pulpit and said something along the lines of, “If the music in heaven is as good as that, it’ll be a great place indeed.”

I was just 11, and though music did speak to me at that age already, I don’t think I understood how it moved people, such as my grandma, until many years later.

Music

Grandma Klassen loved music, too, and that’s reflected in each of her children — all of them play trumpet, for instance. So it’s no surprise that there was a lot of music this week.

She died as two of her children were singing hymns to her at her room in the nursing home.

Two of her grandchildren played trumpet for her at her burial.

And my brother and his wife played trumpet and piano at her funeral.

It was all beautiful, and like my band teacher said, it spoke to my heart.

Music #3

I knew about gradma’s love of music for quite awhile. When she was in better health, I took her to concerts sometimes. One of her favorite hymns was Joyful, Joyful, but she hadn’t known it was based on Beethoven’s 9th Symphony. I learned that the Wichita Symphony Orchestra was performing the 9th, and took her to the performance. She loved it, and I seem to recall that she kept talking about it for a few years afterwards. It certainly didn’t hurt that the singing on the 4th movement was in German. I burned her a “new-fangled” CD of it, which I frequently saw in or near her CD player.

The Kansas Mennonite Men’s Chorus is an all-volunteer choir with about 300 members. They give a couple of concerts a year, and occasionally tour throughout North America and Europe. Their motto is “we sing that others may live” because 100% of money collected at their concerts goes directly to charity.

Attending one of their concerts is a powerful experience not easily forgotten. I think the only time I’ve heard a choir come close to being as amazing as that was when I had the opportunity to attend a Robert Shaw concert a few years ago.

I went with grandma to one of the Kansas Mennonite Men’s Chorus performances a few years ago. As you might expect, she loved it — I think she called it “powerfully good.”

This year, I finally joined the choir. I still remember that first practice. We “warmed up” by singing Holy God, We Praise Thy Name — a song that has opened every KMMC concert for years. These people hadn’t sung together for almost a year, and there were plenty of new people like me there too. But it only took a few bars of singing before I realized just what it was I had joined. The choir started out with the quietest, but most powerful singing you can imagine: “Holy God, we praise thy name.” By the time we got to the end of the page, the building was ringing from 300 men singing “Infinite thy vast domain, everlasting is thy reign!” at the top of their voices, in perfect harmony. We got to the end. The director said. . . “Wow.”

I don’t think a first practice ever spoke to my heart before that day.

Music #4

Nearly 20 years ago, Grandma Klassen bought me a new bible. After she gave it to me, I asked her what some of her favorite passages were. She took me straight to the blessing in Numbers 6, and made sure I underlined it and bookmarked it. It goes like this:

“The Lord bless you,
The Lord keep you,
Make his face to shine upon you and be gracious unto you,
The Lord life up his countenance upon you and give you peace.”

My uncle had read this blessing to her the last time he talked to her. And the KMMC for years has ended their concerts with a beautiful benediction based on this passage. Grandma heard it at the concert I attended with her. It has been a favorite of my mom for years, too.

So I had the thought: we really ought to sing it as a benediction at her funeral. It was hard to find the right mix of people on short notice, but we wound up with me singing baritone, my brother singing 2nd tenor (we both normally sing bass), and his wife both playing piano and singing 1st tenor, and relying on the piano to fill in the bass part.

We had a little chance to practice before the funeral, but not a lot. The two of them have done a lot musically, but I haven’t nearly as much, so I got in some extra practice at home, too.

When it came time to sing, it was an emotional moment for sure — more than a bit hard to focus, knowing the history and meaning of these words. When we got to “and give you peace”, and moved into the chorus of “amen” that finishes the song, I almost broke down right there, but didn’t quite.

We didn’t give a perfect performance, for sure, on such short notice. (And they had me singing with them, so we wouldn’t have been perfect even with plenty of notice!)

But it didn’t have to be perfect. After we ended the last, quiet “amen”, I think I heard about a half-dozen noses blowing all at once. My band teacher was right about music speaking to the heart.

Later, during lunch, my aunt said to me, “Wow, John, I’ve never heard you sing before!” “That’s right, and this may be the last time you hear me sing, too! I don’t normally sing in a small group like this.”

A few minutes later, my uncle that gave the message came over and talked to the three of us. “John, today you three brainwashed me.” “Oh?” “Yes. For years, I thought that there was no music as beautiful as the trumpet. After hearing you three sing, I have to reconsider.”

And so my band teacher was also right: music is life. My grandma was a person that could hardly speak without touching the heart. That beautiful melody of her life didn’t stop when she died Tuesday afternoon. I’ve been hearing it all week.

The Power of Love

A few years ago, Elvera Voth, a musician that grew up a few miles from here was back in the area. Her specialty is vocal music, and one evening, she led a hymn sing at our church.

During the event, she talked about how much music can touch the heart. Elvera remembered many years ago that a woman in the church was leaving for a service trip to India. She would be gone for 7 years straight. None of her family or friends would be able to see her during that entire time.

The day she was to depart, friends, family, and church members went with her to the Santa Fe station in Newton, KS. While waiting for her train, at some point, the group started singing. Elvera remembered that they sang So nimm denn meine Hände (Take thou my hand, O Father) and Ich bete an die Macht der Liebe (O Power of Love).

Elvera remembered they sang in the station, and the high, wood ceilings made it sound like the music filled the whole building. I can’t think of a better goodbye than that.

Elvera remembered so many details about the event, but two things she didn’t remember were who was leaving and what year this happened. So I remembered this story for awhile, but didn’t really follow up on it.

Then last December, our neighbor Hildred called. Hildred and her sister live on their old family farm about a mile from us. They’re some of the older members of our church, and I believe both of them have lived on that farm their entire lives. Hildred heard that I am gathering photos for a book about the centennial of our church, and she offered to bring some of them over. Knowing that it was cold and dark outside, the roads were snowy, and that Hildred drives a car at least 40 years old (because “Daddy said this is a good car”), I offered to drive to their place. “Oh no,” she said, “it’s no trouble. I like to get out. Besides, I haven’t seen your house since it’s been remodeled!” So she came over.

Hildred had stacks of amazing old photos from the church and the community. And she had a stack of photos and letters from India, where her aunt Augusta Schmidt was a nurse for 14 years. She was very proud of her aunt’s service to the needy there. I started to put things together in my head and asked her if she remembered singing at the train station when Augusta left for India. “Oh sure,” said Hildred, as if everyone knew about that.

So that’s how it happened that the “historical moment” on Feb. 10 was about Augusta Schmidt. Each month during church, leading up to our centennial in October, we have a brief time where we highlight some interesting story from the church’s past. I happened to mention this one at a historical committee meeting.

So, on that Sunday in February, someone got up and told everyone about Augusta’s life. She was born in 1894 and graduated from college with a nursing degree in 1927. She heard about India at a conference, and quickly felt that God wanted her to serve there. She left for India in the fall of 1927, and would serve two 7-year terms there.

She wrote that India was a beautiful land, contrary to things she had heard. The city where she worked (I believe it was Bombay, but I’m not positive) had hallmarks of a wealthy city, such as educational institutions, hotels, etc. However, it saddened her greatly to learn that 80% of the people in the city were homeless and slept on the street. No doubt this played a role in her dedication to service there.

After we learned about Augusta, the choir sang So nimm denn meine Hände — one of the songs that Augusta heard at the train station back in 1927. Imagine you were there, 81 years ago, seeing a friend off on a trip across continents, not to see her again for 7 years. Then the people there start singing a cappella

So nimm denn meine Hände
und führe mich
Bis an mein selig Ende
und ewiglich!
Ich kann allein nicht gehen,
nicht einen Schritt;
Wo du wirst gehn und stehen,
da nimm micht mit.
Take thou my hand, O Father,
and lead thou me,
until my journey endeth
eternally.
Alone I will not wander
one single day.
Be thou my true companion
and with me stay.

You probably weren’t there that day in 1927, or even the day in February when the choir sang the song. I wasn’t either because I had the flu that day. But I borrowed the cassette recording of that day’s service, recorded using the best we have right now — the wrong type of microphone pointed the wrong way, onto a cassette tape that has certainly been reused way more times than anybody knows.

Click here to listen.

The choir sang the first verse in German, verse 2 in English, and the whole church joined in on verse 3. I’m told there weren’t many dry eyes in the church after that. After all, how could you keep a straight face singing “Take, then, my hand, O Father, and lead thou me, until my journey endeth eternally” right after the narrator read about Augusta’s retirement and death, saying, “there, I was surrounded by friends, but most of all, by the sovereign love of God who had been with me my entire life.”

Postscript

Remember Elvera Voth, from whom I first learned this story? In 1961, she moved to Alaska. Elvera taught at several universities; founded the Anchorage Opera; directed the Alaska Festival of Music, Anchorage Boys Choir, and Alaska Chamber Singers; and there is Elvera Voth Hall at the Alaska Center for the Performing Arts.

But her best work, I think, happened after she retired and moved back to Kansas in 1995. In 1998, Elvera founded the East Hill Singers, a choir composed mainly of minimum-security prison inmates, plus volunteers from the community. Elvera has inspired so many people, taught them that they have value, that they can succeed and make themselves better. One of the said:

Can you imagine what a standing ovation feels like after being told all your life that you are worthless?

And another inmate commented:

It made me feel like maybe I’m not just being punished. I mean, I am being punished for what I did. But being in this program made me think that I can also come out… well, better … a better person.

It all makes me think. What an amazing thing these two women with love in their hearts have done to make this planet a better place. Is it even possible to do that by using weapons that kill and power to frighten?

As Elvera puts it, “many of the men in prison will be back in the community soon. I’d rather have them as a neighbor with hope in their hearts than with hate in their eyes.”

Church Choir

Every year on Good Friday, our church choir joins with the other church choir in the area for an evening choir program.

This year we are performing The Seven Last Words of Christ by Theodore Dubois. It’s a challenging and beautiful piece. We’ll have our combined choir, plus pipe organ and various other instruments.

Easter starts with a sunrise service, then breakfast at church. During the service, we’ll sing a number of additional songs. I think the list includes The heavens are telling by Haydn, Ave Verum (KV 618) by Mozart, Love Is Come Again arr. by Parker & Shaw, Praise the Lord by Handel, Alleluia (from Veni Sancte Spiritus, K 47) by Mozart, and Thanks Be to Thee by Handel.

It’s a lot of fun to be in the choir, and also quite a joyful time. I’m looking forward to Easter.

An iPod under Linux

I finally purchased my first iPod: a black 60GB iPod video model. I had been holding off for years. The iPod sounded nifty, but I just didn’t quite go there.

The thing that finally won me over was the camera connector. It lets you plug your iPod directly in to a digital camera. The iPod can download photos from the camera to its internal disk without the need for a PC. Very slick.

So anyway, we got the iPod and the camera adapter at the Apple store in Cambridge — a quick subway ride from Usenix. They were out of stock on the FM tuner, so I ordered that online.

The next step was to get the iPod working with Linux. I currently have it working with both music and video. Here’s how I did it.