Sat, 27 Jul 2024 07:46:35 -0500Micro Channel Architecture

mr's Preposter.us Blog

When I worked at Murfie we experimented with a feature that let every member turn their collection into a Internet radio station.  You could tune-into your own station of course, but the really cool part was that you could tune into any other member's station as well and find new music by listening to the tracks in their collection played in a completely random order.  We couldn't release this feature because we couldn't get a straight answer from the lawyers and as cool as it was it wasn't worth finding out the hard way that we could get sued for it.  But I've been revisiting the idea lately because of my work on UHF+ and the desire to create a channel-changing interface that is as responsive and easy to use as an analog TV dial. 

For UHF+ I'm using a 12-position rotary switch to select from a dozen pre-configured channels.  Each channel is configured to point at a URL for a video stream (currently PeerTube instances) and when the knob is turned the selected channel is displayed on the screen.  I want this switch to be as instantaneous as possible so the idea is to essentially read the streams for the adjacent channels along with the channel that is being displayed so that when the switch is turned the next stream can play immediately.  Once I have demonstrated this I might make the algorithm more clever so that further-away channels are also primed (allowing jumps to further channels to remain just as fast) and inserting some "static" in-between in the event that there is some unavoidable lag in switching a stream.

Lately I've been more focused on a new audio-oriented media device project and thinking about how all this could be applied to a personal media collection.  Returning to the "radio station" concept, I thought it would be fun to take a music collection and create a "station" for each genre of music in the collection and provide a physical interface for "tuning" between these stations by turning a knob.  That's when I remembered the Murfie approach and thought maybe I could reusing the UHF+ idea if I turned each genre of the collection into a stream that can be tuned via a url.

Creating a dozen or more streams from a local source and streaming them across a local network is fairly easy to accomplish and doesn't use much in terms of compute or network resources (especially for audio streams), so this seems like a reasonable approach.  It has the added benefit of allowing other devices to tune-in to individual streams and play essentially simultaneously (not enough to support things like stereo pairs, but listening to the same music throughout the house is feasible).

--