Saturday, January 26, 2013

Solutions for Streaming Music into Second Life

There are multiple methods for audio streaming over the Internet and this article is to review some I've used and others that might be interesting to try.  The first task is to decide what is necessary as solo musicians and DJs don't need all that much.  The problem to solve is how you're going to get your music onto the Internet so listeners at some remote location can hear it.

Solo Performance:

For Apple systems, almost every online performer I know uses Nicecast.  The software is simple, effective, and reliable.  I've used it for over six years and recommend it highly.

For Windows systems, there are multiple choices and one that comes up often is BUTT, an open source project, but there are others as well.  I've never heard of anyone trying to stream on Windows who had an easy job of getting started.  Note:  BUTT also runs on Apple systems although why anyone would want to do that remains to be seen.

After selecting the appropriate streaming software, it is then configured based on information given to you by the stream provider.  While it's possible to stream from your own computer, you will be quite limited in how many people can listen to it simultaneously whereas most stream providers permit up to a thousand simultaneous listeners.  The cost is minimal at five or ten dollars US per month.

For performance in Second Life, you will provide the URL to the venue owner and it will in turn be plugged into the land properties to make the connection between your incoming audio stream and the land where people want to listen to it.  For solo musicians or DJs, at this point you're finished with the software and it's time to play.


Dual-Streaming:

This is a technique through which two or more musicians can play simultaneously and the combined audio stream can be transmitted over the Internet.  The basic setup is as above for solo performance and the way the multi-stream is achieved is that the stream as a whole is treated like a daisy chain.  In other words, Musician One sends the audio stream to Musician Two who adds more music to it and sends it on to Musician Three, depending on how complex you want to get, or instead sends it to Second Life where people can hear the combined result.

Note that Musician One and Musician Two have different audio streams as the purpose of Musician One's audio stream is only to get it to Musician Two.  Once Musician Two has received it, the job of that audio stream is done.  Musician Two has another audio stream and this is what is sent to Musician Three or Second Life and it's the URL of this one that must be plugged into the land properties for the venue.

From the listener's standpoint, the result can be quite good as this permits a much more interesting performance than can be delivered by a solo performer.  However, from a performer's standpoint it's pretty much of a horror.  The reason is that Musician One cannot hear what Musician Two is doing without monitoring the target but the audio from the target is subject to a network propagation delay and may be anywhere up to thirty or more seconds behind what Musician One is doing.  Unless you're some type of cyborg, there's no chance of playing your music while listening to a long-delayed result at the same time.  I tried it once and was horrified at what I heard had come of it when I listened to the recording after the show.  There's no chance I will ever do this again.


Real-Time Jamming:

In Second Life, Virtual Live Band was the first to work out the technique that permits multiple musicians to play simultaneously and hear at the same time what each is doing.  I believe but I'm not sure that BlueTom Haller, a German bluesman, first started the band.  They are playing in Second Life to this day and you can review their performance schedule on the Virtual Live Band Web site.  You can also write your own editorial on why the really innovative stuff seems to come out of Germany as that goes beyond the scope of this article.

The software used by Virtual Live Band was for a very long time NINJAM but I don't know if they still use it today.  NINJAM has been in Alpha development since 2005 so its future is highly questionable.  Regardless of the prognosis for NINJAM, Virtual Live Band used it to excellent effect as the key difference between this approach and multi-streaming is that the musicians really do jam with one another.  It works in very close to real-time so there is a true interaction between the musicians, something that is impossible with basic multi-streaming.

For streaming using this technique, NINJAM is the only software necessary other than your actual music programs.  You do not need to also run the software required for solo performance.


Alternative Solutions for Real-Time Jamming:

eJamming is another solution similar to NINJAM that permits real-time jamming between musicians across the Internet.  It has been available since 2008 but that was the same year my world disintegrated so I don't have a report on whether anyone is currently using it in Second Life.  From what I have observed, there is very little real-time jamming in that virtual world as most is done via multi-streaming but this remains to be verified.  The key point is that there are multiple solutions for real jams and they are available right now.  For any solution, check to see when the software was developed and check to see if that development / support continues.  Once you commit, you will also be committing the other members of your band so measure carefully.


What is Wrong with Real-Time Jamming:

Actually, not much.  When involved with a software solution to audio synchronisation, there are some limitations such as the inability to change tempo, propagation delays, etc.  However, what such solutions do provide is a true jamming environment that is vastly superior to daisy-chaining or anything of that nature.


The point of this article is to make you aware of more solutions to Internet audio.  While some solutions are used quite a bit, that doesn't mean they're necessarily the best ones.  Review as much as possible what is available to you and then decide which way you want to do it.  Never limit yourself!  This is about music and music is never about limitations.

3 comments:

Gwyneth Llewelyn said...

Great tutorial :)

Now I only wonder if there is a way to stream the music from Google Play to SL, since Google is so nice to allow us 20,000 songs there...

But I guess that Google only does Web-based streaming via Flash, HTML5, whatever, but doesn't use any of the "old" protocols (which are, indeed, Internet standards) like Nicecast and BUTT do...

Unknown said...

Sorry but I'm not familiar with Google Play. Looks like I better find out! Thank you.

Unknown said...

Looks like you're referring to the Android app. I assume Google uses some type of cloud mechanism for storing the music, as opposed to your hard disk for your iTunes music collection, and possibly the Android can be connected to your host computer so you can feed the stream into a software mixer (e.g. GarageBand or PC equivalent) and subsequently mix whatever you need with it before streaming outbound with the traditional protocols.