You are currently browsing the category archive for the ‘Streaming’ category.

Just happened to browse over and see that the Icecast team released v2.3.1. What makes me the happiest:

Fixes for 2.3.1
An audio glitch was possible in playback of vorbis streams when a new logical stream started (eg metadata update).

I’ve noticed this from time to time over the course of listening to ICYG. I think I even posted about it to Oddsock’s forums, thinking it was a Oddcast problem. That reminds me, I have to upgrade to the recent Oddcast v3.1.6 release as well. Thanks to Oddsock for continuing to work on this stuff.

Update (12/1): Took advantage of an unexpected breaker trip (darn basement heater) to get Icecast and Oddcast upgraded. Things sound great. I’ll have to listen closely to the stream to see if the metadata skip is truly gone.

Every few months I go check out Oddsock’s site and leech the latest version of his fine Oddcast for Foobar 2000 and the Win32 build of Icecast. I went out checking this week and found and installed Oddcast 3.1.2 and Icecast 2.3.0. This combo supported AAC streaming a while ago, but the free AAC encoders available didn’t sound better than MP3 at 64kbps to me, so I didn’t implement AAC. Vorbis at 64kbps (quality 0) is quite formidable. When I read that Winamp 5.1 included a free AACplus encoder DLL that the new Oddcast could take advantage of, I was immediately intrigued and had to try out a 64kbps, 44.1kHz, stereo AACplus (which I found out is high efficiency advanced audio coding plus parametric stereo – HE-AAC+PS) stream.

Foobar 0.8.3 refused to play the stream. I don’t think it supports AACplus natively. However, the FB2K 0.9 betas do support it, but while it plays the audio beautifully, it doesn’t show the metadata. Winamp 5.1 supports the stream fully, and sounds almost as good as Vorbis Q0 to my ears. I hear just a little more high-end warbling with AACplus, but it’s very listenable.

One hope I had was that I’d finally be able to stream a 64kbps 44.1kHz stereo stream to my Mac ICYG brethren, but it turns out iTunes 5.0.1 doesn’t support AACplus. Ugh. Two steps forward, one step back.

I’m happy to welcome Ross to the ICYG music club. Sharing a fresh set of tunes with us, he challenged my scripts with iTunes-encoded AAC files, which I hadn’t taken the opportunity to play with previously. It turns out that while FB2K handles them fine, mmpython doesn’t parse their metadata. My playlist picker requires mmpython-provided metadata from all eligible songfiles, so this produced quite a gap.

In researching this, I’ve found that it appears that Apple hasn’t formally specified their metadata implementation. Since I couldn’t find any Python code to read the metadata, I took advantage of the fact that FB2K could add new tags to the AACs, as well as transfer all the tags over to transcoded Ogg Vorbis files created via its diskwriter. The resulting Oggs are well-behaved and we can now check out Ross’s stuff.

Slightly related topic: Amazon’s increased their thumbnail image size to 75×75 pixels for the CDs they carry.

I’ve just upgraded ICYG‘s Oddcast instance to v.3.0.7 (thanks, Oddsock!) and reinstated Captain Footure‘s Continuator plugin, version 0.2.4. Things are going good so far. I can deal with no crossfades, but the stream sounds more “pro” with them. Here’s hoping everything stays stable!

I’ve just upgraded ICYG‘s Oddcast instance to v.3.0.7 (thanks, Oddsock!) and reinstated Captain Footure‘s Continuator plugin, version 0.2.4. Things are going good so far. I can deal with no crossfades, but the stream sounds more “pro” with them. Here’s hoping everything stays stable!

I set up a virgin FB2K v0.8.3/Oddcast v3.0.3 instance on my server a few days ago and let it run randomly through the ICYG song library, adding in various processing and features to the point where it was just “production-ready” yesterday evening. After going live last night, it’s been healthy! The only feature I’ve taken away for now is the detailed ICYG block here. It had been generated by a periodic query of the HTTP Writer FB2K plugin. I think I’m going to rejigger that process to query a specially-crafted current-song RSS feed generated by the ICYG website as opposed to by the FB2K instance itself. I don’t necessarily think that that component caused the Oddcast instability; I had a lot of plugins in the old FB2K instance.

This means Jonathan can check out the ICYG MP3 stream again…

Update: It started crashing again, after I had started fiddling with settings on the “Continuator” DSP that provides the pleasant crossfading. I tried setting Continuator back to its default settings, but FB2K still ended up crashing a few hours later. I’ve removed it for now to verify whether or not it is indeed conflicting with Oddcast. The FB2K crash reports cite Oddcast as the source of the crash, although that’s probably because it’s the last DSP in the chain or it’s trying to handle a song-changing scenario that’s complicated by Continuator.

Not being very up on AAC encoding, I didn’t realize that at low bitrates (like the 64kbps target I have for ICYG streams), FAAC doesn’t appear to perform much better than LAME MP3. While HE-AAC/AACplus would perform better and compare favorably with Vorbis, there’s currently no free implementation of it available. Since Oddsock has stated that he won’t link Oddcast to non-free DLL’s (which I agree with), I don’t see much purpose in implementing it at this point on ICYG and have removed the experimental AAC stream.

This leaves us with the ~64kbps stereo 44.1KHz Vorbis stream and the new 64kbps stereo 22KHz MP3 stream. If you’re using the MP3 stream and have comments, please post them.

I hadn’t been visiting HydrogenAudio lately, so imagine my surprise when I read that new versions of both Icecast and Oddcast are out. Oddcast v3 has me absolutely salivating; it now supports multiple simultaneous encoders from a single source. If it works for me, this will allow me to support both Vorbis and MP3 (or possibly AAC) ICYG streams, which I’ve been wanting to do since Jonathan told me he hadn’t been able to listen to the current Vorbis stream on OS X with iTunes. Many thanks in advance to Oddsock for his continued work.

MNF tonight is a snoozer, so I should have some time to test and possibly complete both upgrades on ICYG tonight. If/when I have an MP3 and/or AAC stream live, I will post appropriate info to the “official” ICYG forum over at Nitevilla.

Update: I now have Vorbis, MP3, and (experimental) AAC streams going thanks to an upgrade to Oddcast v3, and my Icecast server was successfully upgraded from 2.1.0 to 2.2.0 without any problems once I massaged the config file. The efficiency of the FB2K/Oddcast combo when encoding all three streams is quite remarkable (averaging under 10% on my P4 2.4GHz server). I had to cut the sample rate of the MP3 and AAC streams to 22050Hz to get them to sound reasonable at my target 64kbps bitrate. The AAC support at this point seems a bit rough in Oddcast; I’ll play around with it and see how others are making out as well.

I’m starting to gather the songs to play during a two-day ICYG Christmas Special. If you’re a member and have appropriate material to include, please tag and upload it ASAP and let me know what/where it is. I’ll finalize the playlist sometime Thursday and it will go live the morning of Christmas Eve. We’re hosting my parents this coming weekend and it will be a great opportunity for them to hear my hobby.

As always, I’m going for a rock theme and I’m drawing on some good stuff: the two Merry Axemas CD’s, the new Brian Setzer Orchestra Xmas CD, the aforementioned Central-PA Christmas Compilation CD, and various seasonal tracks from some of my favorite bands. Certainly not the catalog of a “real” station but decent enough for our purposes.

I’ll probably start working on tweaking the ICYG playlist generation code/methodology soon. I think I’m going to go to an hourly playlist generation scheme that takes into account several factors:

  • Every hour of programming is defined as either full rotation or things like specific genre hours, indie-only, or specialty shows; I plan on having at least two variables to choose from for each hour (ex: an auto-generated “Scott’s Metal Hour”)
  • Target playlist length: 60-61 minutes
  • Other things I haven’t thought of yet. 😉

I also want to take this opportunity to do two things I haven’t done yet: create actual object-oriented Python code and integrate this process more with Zope.

I’m also going to actively try to find more independent music (remember, Magnatune‘s catalog is fair game for non-commercial streaming and podcasting) and also try to get together enough time and stuff for a weekly or biweekly “Nuclear Rock” show that would be available both through ICYG and as a podcast from this site.