When Facets went live in February, it seemed like a pretty big accomplishment, and it was. The Aleator plugin had been in development for an extremely long time and we were finally at a point where we could attempt to run it in a production environment. Of course, attempting and accomplishing are entirely different things.

If I've learned one thing over the last 4 months, it's that this project is still in it's infancy from a technology standpoint. The problem of delivering live audio 24/7 using the methods described here isn't a simple one - there are many points of failure it's taken a long time to work through them. Some of them have been detailed in this blog and some of them haven't.  Most recently, I discovered that when responding to the data received from the DAW's transport, there are instances when it instructs the Aleator to stop playing. That has been fixed in the most recent assembly, but even now there are instances when the stream inexplicably disconnects from the SHOUTcast server. When that happens, the connection has to be manually reconnected in Reaper. These sorts of things can be near impossible to debug, as a lot of times it can take days to observe the behavior. For this reason, it was necessary to implement pretty extensive logging - otherwise it gets pretty hard to tell what precipitated certain events that take place.

Did any of that sound exciting? It's hard to post blog entries and tweet about this stuff because it's incredibly boring, but it's nonetheless necessary. Before there can be any real promotional effort behind for Facets, the uptime has to be considerably higher. That means we need to figure out what is causing these disconnections, or at least figure out a way to be notified when they occur. The more of these problems get addressed, the more confident we can be that the stream will be active as listeners try to access it. Only when that confidence is high does it make sense to aggressively promote it.

In light of all this, I've come to the conclusion that putting a lot of effort toward the release of an assembly doesn't make sense right now. We will maintain the CodePlex project for posterity (and because we need source control), but we will not be focusing on building out that project in any formal sense.

Finally, I am starting to put some of the primary building blocks in place for the next release. Just sketches really, but I am getting a sense of the palette. Should be fun.