Doing live music in Metaplace

 Posted by (Visited 6217 times)  Gamemaking, Music  Tagged with:
Jun 132009
 

Yesterday I had a real urge to play some guitar for people. It used to be that I’d get to do a few hours of playing songs for people at every Cub Scout camp-out — but David is into Scouts proper now, and I don’t go on the camping trips. So I left the office saying, “I might do a concert thing in Metaplace this weekend…” A few folks said to let them know if I did.

Which just added to the pressure! I had never tried it before! So I figured that I should do a dry run first. And I did it last night, and you know, it was a heck of a lot of fun — but also pretty different. So here’s what I did and what it felt like. I am sure some of this is old hat to those of you who have done lots of this in Second Life, but it was new to me. 🙂

The tech

I have all sorts of gear at home, mostly oriented around recording and not performing, since I never play out really. But this meant I was able to set up a couple of microphones through a pedal (to add some effects), mix them, and then go into the computer. I listened to how this sounded via headphones to try to adjust the mix as best I could — actually played for a few hours just to myself a few nights ago though this setup, just to see. The setup:

  • Vocal mic into Digitech Vocalist Live Pro 4, which added a bit of reverb and sometimes harmony effects
  • Guitar pickup into the Vocalist too (this lets the pedal use the guitar signal for picking the harmony notes)
  • Vocalist into mixer
  • Guitar/ambient mic (I actually set it up a couple of feet from me, it’s a very sensitive mic) directly into the mixer
  • Mixer into a stereo in on my computer

I also needed a Shoutcast stream. I went to Google, typed in “shoutcast server” and clicked the first result, which happened to be serverroom.us. They had a small plan for $8.95 or so, which capped at 50 listeners, so I picked that one. This is a monthly fee — I figure, if I don’t keep up with this, I’ll just cancel it.

After giving them the payment info, it took less than 10 minutes for the server to be available. I had virtual no setup to do on it — I think I had to fill in some preferences for things like “stream name” but that was about it. Oh, and I had to click “Restart” to get the server to boot up. Then I could see the stream proper, which had a URL like this made-up example:

http://name.serverroom.us:9638

At Grace McDunnough’s recommendation, I used BUTT to capture the audio stream. I do have Winamp, but don’t actually use it. BUTT was very easy to set up. I downloaded it, and as a dry run, hit the record button instead of the broadcast button to see how it did. Worked first try. There is a graphical meter there so you can see how strong your input signal is.

When you click Settings in BUTT, a window pops up with four tabs: Main, Stream, Rec, and GUI. Under Main I selected my sound card as the audio input rather than MS sound mapper, because that’s what I do in all my audio programs. Under Server, I clicked Add and another window popped up. It asked for the name of the Shoutcast server, the address (name.serverroom.us), the port (9638), and the password. I didn’t do anything to Stream Infos since I wasn’t planning on publicizing the stream on Shoutcast.com or anything.

Under the Stream tab I just made sure that everything was at high quality. I was worried about uploading a stream at 128k  and 44.1KHz while on wi-fi, but it was fine. I did make sure that it was sent up as MP3, and not OGG; Metaplace doesn’t play OGGs.

I pasted this into BUTT’s Settings window, and in theory now my sound was going up to there.

Next step was to hook it up in Metaplace. The first time I did it, I used my Background Music object. I picked this one because I wrote it, and because recently I had added the ability to mute the stream for yourself, so that you wouldn’t hear the delayed sound coming back from the world (it’s a toggle so you can do sound check, of course). So I went into Build Mode, clicked the object, clicked Configure, and in the field for the MP3, I pasted in

http://name.serverroom.us:9638/

Note the trailing slash… it has to be there because otherwise what you get isn’t the audio, it’s the webpage about the stream.

Then I tested by saying something into the mic. After a delay, I heard it coming back out through the world. I fiddled with levels and mix and the like for a bit — luckily, some folks (Lunarraid and DougQB) showed up and let me know what sounded good! So I played “Summertime” for them, and “Knockin’ on Heaven’s Door,” and a few others.

The actual dry run

Last night around 9pm I logged into Metaplace and looked to see who was around. It turned out a handful of folks were hanging out in one of the world chatting. One of them had told me that he was checking out the music on my site (hi, dog_dave), so I asked if I could try out playing some tunes.

The world were were in didn’t have the Background Music object in it. Instead, it had the Acoustic Guitar, the DJ station, and a bunch more. I ended up using the DJ station while holding the guitar, actually, because the guitar out of the box does a radial effect rather than audio for the whole place. The DJ station setup was almost identical to that of the Background Music object, with the exception that its default volume was quite a bit lower — I had to max it out.

The other issue was that the DJ station did not have the mute option, which meant that I did in fact hear everything echoed back. This was very distracting at first — and then once I got used to the latency, I found I unconsciously was using the latency as the tempo for the music! Eep. Next time, I will stick to using the Background Music object just for this reason; hearing a delayed echo was very distracting. I found myself doing things like avoiding talking over myself, which was downright weird and must have sounded like I always spoke, paused, spoke, paused…

Then I asked people to pick a letter out of the alphabet! I have a 3 ring binder here I have filled with 500 songs or so, and I add a dozen more every few months. The list is crazy eclectic, from the singer-songwriters I like to 80s stuff arranged for acoustic to a few standards and rock tunes. I can at least play through every song in the book, though the quality of the rendition varies dramatically. 🙂

So the audience, which was at peak a whole 6 people, would pick a letter, and I picked a song starting with that letter, and would play it. Sometimes I would play the first opening bit and challenge them to name that tune. “Take On Me” stumped them, but they got plenty of others.

It ended up being around 2 1/2 hours of music, with maybe a 1/3 split between songwriters they had never heard of (Steve Fisher’s “That’s My Toy,” Ellis Paul’s “3000 Miles”, Bill Morrissey twice actually, with “Birches” and “Robert Johnson”, Jim Infantino’s “Meanies,” Chuck Brodsky’s “Blow ’em Away”), bluesy/jazzy stuff (“Comes Love,” “Making Whoopee”, some stuff I just improvised), and requests — Tom Petty, Bowie, etc. There were also multiple cases of me starting something as a joke and not finishing it: “Copacabana,” “Close To You,” “Orinoco Flow.” 🙂

Observations

  • My sense is that a lot of the quieter songs went over better — I don’t know whether it is because there’s a certain intimacy to the setup, or what. But it felt a lot like playing quietly in the dark most of the time, though I certainly did plenty of louder songs.
  • Early on, the folks there told me that the sound was dropping out. I reset the stream on the DJ station, and it fixed itself. Not sure what happened there.
  • I forgot to turn off the screensaver! This meant I had to keep stopping in order to nudge the mouse.
  • I have a loud clacky keyboard. The ambient mic, which gave a nice open sound, also picked up all my typing.
  • All my mic positioning was ruined once I realized I needed to face the screen to see what people were saying! There isn’t a lot of room for a guitar, microphones, & a music stand with music, all in front of the desk!

Now that I have done the dry run, will I do it again, and this time actually tell people in advance? Heck yeah! It was a lot of fun. I now wish I HAD recorded it so that I could go back and check the audio and see how it sounded. Thanks to the folks who were there and were patient with the fumbling about.

  9 Responses to “Doing live music in Metaplace”

  1. which meant that I did in fact hear everything echoed back. This was very distracting at first

    I need to hear an input echo when playing through the computer, but I hate that the echo is delayed with most, if not all, streaming software.

  2. Monitoring the signal into the computer was fine — that was all local, so there was no appreciable delay, and I could monitor myself on headphones. It was hearing the stream sent to Shoutcast, then back down that had the (inevitable) delay from latency.

  3. I’m definitely interested in more of this! I wish I could have made it — I need to get back into Metaplace anyway; I remember hearing at GDC that you told a friend of mine I should 😀 I’d b potentially interested in doing something like this as well.

    If you had an option, what kind of rig would you have used? I have myself a mixer, mic, etc. so I bet I could pull it off as well — I just don’t have the backlog of music at the moment.

    Maybe I’ll ping you when I get back in? 😀

  4. How much audio does the Metaplace client buffer in playback? Is that adjustable?

  5. Sela, the rig I had was just fine actually. And sure, feel free to ping me!

    Garrett, no idea! It’s just using Flash’s mp3 stream capability.

  6. I’m glad everything worked out Raph.

    Now we need to work on building a robust Event/Scheduling System so I won’t miss your gigs! 🙂

  7. A more robust event calendar is in fact being worked on. 🙂 Not that this was actually a gig…!

  8. Dang, I missed the actual concert. I would have loved to hear your rendition of “Take On Me”!

  9. Six people is a gig. Hell, sometimes you and the club manager is a gig 🙂

    When Annan performs in Second Life, I serve as soundman, monitoring the live stream and juggling requests. Delegating tasks to a second person helps the musician focus on the music rather than tweaking settings.

    We’ve also run into the dropout problem you mentioned. It appears to be worse at a high sample rate and better at a lower setting, so it looks like there’s a tradeoff between quality and performance. I’m not certain, but I think it’s also a factor of how well the client buffers the stream. It also seems that the more people that listen, the more issues crop up. That’s speculation, but the dropouts appear to peak whenever we have more than 75-100 people on the stream at the same time.

    Once you’re comfortable with the basic setup, you ought to look into piggybacking with other musicians to jam and collaborate. It takes some getting used to — the first person in the chain can’t hear anybody else, the second can only hear the first, and so on down the line — but with the right people you can get some really incredible performances with people scattered all over the globe.

Sorry, the comment form is closed at this time.