cc licensed ( BY SA ) flickr photo shared by Alan Levine

During a presentation at the 2011 ETUG Spring Workshop, Grant Potter, who initially set up the ds106 radio station said

I wanted to create a web-base radio station; I did not want to manage one

This gets to the heart of “distributed, freeform, collective webradio” – from the get go Grant gave away the keys to the station, the username/password for managing it. The way the first system worked, a playlist of uploaded content was always in rotation AKA “Auto DJ”. When someone broke in with a live broadcast, it superceded the playlist, so essentially there was always something on the radio.

Things were not always smooth on the server side, and in the early part of this year, Grant rebuilt the system using Airtime, an open source internet radio station managing software. Some things that are different as that there is no set autoDJ list, the system is designed to let multiple people manage the scheduled content via a calendar, creating blocks of times for shows, and managing content in playlists.

It is a different mindset, something many of us never quite wrapped our heads around, and, from what I can see, not too many people have figured out how to program the stuff that plays on schedule. With that, we have… well a lot of dead air.

Dead Air is Not Our Friend.

I’ve been trying to better understand the system. For some, the new software might be seen as a step back (the meta data from live streams is not picked up form Nicecast, and the Twitterbot is sick, its not quite as easy to know when there is a live broadcast.

But I put a higher trust into what Grant sees for the next wave. And the thing is, we need some more people willing to go in on a semi regular basis and help fill out the scheduled content. A real radio station never plays the same things every Monday at 4pm, so what is needed is to pre-fill the calendar ahead of time.

I hope I can explain all of this, but bear in mind, I am only learning by trying. To understand it, get a hold of the Airtime Manuals. Or try to follow my path.

The leap of understanding is that there is first content (audio files) that can be uploaded to the media Library. You can also create entries for web stream, URLs for live streams from radio stations (this allows us to easily crosscast).

The uploaded media can be organized into playlists, either static like you do in iTunes, or as you can also do in iTunes, “smart” lists (or blocks), meaning you can have the system play stuff of a particular genre, or search for keywords in the title, artist, or even stuff that was uploaded before or after a certain date. Smart Blocks are the keys to understanding.

Shows are scheduled on the calendar; these are merely blocks of time marked to be in the mix. For each block, you have to load content into the show, which can be any mix of single uploaded audio items, a web stream, a playlist or smart block. But what is tricky is that I can create a show that repeats every Monday at 8:00am, but the only things that repeats is the schedule, each week content must be added to the block.

Going Inside the Station

First of all, you have to login into the station

airtime login

username: ds106
pw: wejamecono

You get a dashboard view with a lot of things going on, the top will show what is playing, or shcheduled. One key thing to remember is the station runs on Pacific Time.

Uploading Media

You do not have to upload media to program the station! There is plenty on the server that can be put into new playlists. But the upload process is much easier (and direct) then before

Any audio uploaded should be mp3 files, and if you can, they should have useful metadata. Just click the Add Media button. You can drag and drop files to the upload window:

(click to see full size)

Once the uploads are done, they will appear in the Library (it is useful to have the list sorted by Uploaded Date (rightmost column) so you can see newest uploaded content first, here are the ones I just added:

(click to see full size)

(click to see full size)

You might notice that a few of the songs lack meta-data, this info is useful for building SmartLists If you click on a line, you have an option to edit the meta data:

(click for full size)

(click for full size)

Organizing Media

Creating shows is easier if you use playlists to create sets of audio to play. The most familiar is a playlist, where you manually select shows and add/order them. Use the menu on the right pane to create a New Playlist.

(click for full size)

(click for full size)

A description is useful for others to understand what the list is for. You then go to the Library window, and use the various menus and search tools to find different audio files, which you can add to the Playlist via a button near the top of the Library screen. You can re-order and even shuffle the items in a Playlist.

Smart Blocks are a special kind of playlists that are assembled based in criteria rather than manually adding files. For example, with the ones I uploaded, they all have an Album name of “ccMixter”, so I can use that to create a Smart Block- the advantage here is that when I add new media in the future with the same metadata, the show when used will include the newest content.

(click for full size)

(click for full size)

This is a “Static Smart Block” meaning the song order is explicit as listed (or re-arranged); but if you switch the mode to “Dynamic” the list will be updated as content is added to the server that matches the criteria.

(click for full size)

(click for full size)

Or I could build one that looks for songs that are identified in genre as “Rock” music:

(click for full size)

(click for full size)

There are quite a few criteria available to build a smart list.

smart block criteria

As you change the criteria and change, a static smart block will display what it finds,a good way to test your criteria selections.

The last kind of organizer/item is a web stream, a holder for cross cast radio shows- you will need to find the stream URL that plays in a browser (not a .pls or .m3u playlist)- it often ends in .mp3 We have a few already in the library, so check them out (edit) to see how they are filled out:

web streams

Scheduling Shows in the Calendar

This has been the hardest part for me to understand! The calendar has blocks of time where content is scheduled, and as you can see, up til now it had a lot of holes.

airtime calendar

So you can schedule a block of time that you want to manage or add content that will play on the radio when there is no live broadcast. You click the “Add Show” button and fill out the info

airtime add-show

When it is saved, it will appear on the calendar, but note that the bar which indicates the amount of content (which is orange when full) is empty– that is because we have only just reserved a block of time to have a show. So click on the box, and select “Add/Remove Content”

airtime add content show

You then have access to the Library window to add content to the show, the bottom of the list of songs/audio will give you a measure of how much time you have filled; I am little short here:

airtime show content

The top of the Airtime interface shows what is currently playing- and the right side shows that there is a broadcast going from “Scheduled Play” (which is the calendar). If someone is live broadcasting, the “Master Source” switch is lit up.

airtime dogsongs playing

And just to show, the information is indicated on the Radio Status page– note that the “Current Song” displays the name of the playlist AND the song:

airtime showed status

Now what I got messed on was, I thought if I added some content to a show that was set up repeat, it would repeat that content every time. But that is not what happens, so if you make a show that plays every Tuesday at 3:30pm PST, you will have to add content to its block ahead of time for each time it is scheduled.

Filling in the Schedule

I am not sure that best way to have multiple people help manage the schedule (Grant is not going to do it all the time, neither will I). I thought about people staking their own blocks to manage, but worried we would end up with a patchwork.

But for this week, I have gone in an pre-scheduled shows and content for 24 hours each day, in a simple format of 3 eight hour blocks per day. I have a variety of content spread about there- web streams, playlists, smart blocks…

full block schedules

The full orange bars means that there is 8 hours of content added per block. And at least for the next week, something is always playing on the station.

But.. content will need to be added for the week after that and beyond). Otherwise we will get dead air.

I am not sure at all how to make sure we get content in the calendar. Maybe someone can schedule a full week? or just look for blocks without content and see if you can fill it.

There is a lot here, and I am not 100% I full explained or understand how Airtime works.

Just remember that radio is fun, but serious fun!

cc licensed ( BY SA ) flickr photo shared by Alan Levine

If this kind of stuff has value, please support me by tossing a one time PayPal kibble or monthly on Patreon
Become a patron at Patreon!
Profile Picture for CogDog The Blog
An early 90s builder of web stuff and blogging Alan Levine barks at on web storytelling (#ds106 #4life), photography, bending WordPress, and serendipity in the infinite internet river. He thinks it's weird to write about himself in the third person. And he is 100% into the Fediverse (or tells himself so) Tooting as


  1. Blimey – you got there… and thanks for the write up. Looks like we all need to (a) schedule some time in the week, and (b) put aside a bit of effort to programme something for that slot each week. I’ll be having a go too.. after my new house gains stable wireless 🙂

  2. This makes a lot of sense. I like that you’ve set up the scheduled blocks so people can grab one and throw content in there. 8 hour blocks may be too much down the road but for now it makes it a more manageable list for people to work from. I’m going to log in and dig around as well.

  3. Thanks guys. You can always delete the longer blocks and replace them with other stuff. Frankly, I think it is better to make long scheduled blocks, maybe even 24 hours worth, to make it behave more like auto DJ- the real shows are the “live ones”

    That way there would eb less editing each week to repopulate the content

    This means coming up with some good smart blocks that can pull in a lot of content from the uploaded media.

    There is a weird bug where you cannot add content to an existing block, they only way is to empty it, and then add enough to be more than the block time.

    I should add that the web streams will fill any amount that is less then their default web stream settings (I set some new ones to be 8 hours)

  4. Hi Alan,
    If I understand right you can submit a stream from another station?
    We have a wee ice cast setup at mostly autoDJ from stuff submitted to the podcast plus a live show wed 8pm UK time (on a break till mid August).
    Anyway once I’ve the audoDJ reorganised and programmed a bit (summer task) I wonder if we could share a bit of our stream with DS106?
    We added the ice cast stuff into edutalk after seeing it on DS106. Mostly edutalk is an open to anyone talking about education podcast.

    1. Yes John. You create a Web Stream item and enter the URL for edutalk. Then you create a schedule item to match the time. The thing is you would have to associate the web stream for each calendar time it appears. And if someone does a life broadcast it would cut off yours. But it would ba a great addition!

  5. This is fantastic Alan – thanks so much for the detailed outline of Airtime innards – taking a little screen break over the last few days, but hope to do some programming before the weekend.

    1. If you want to pow wow I am here. Would like to find a way to generate a live status in the status page. There is something in airtime that checks for master stream on the dashboard.

      And where is the twitter bit?

      1. Twitter bot is sitting in my hosting account at the moment. Probably makes sense to put it in ds106’s account since we’re all on the same server.

  6. I have been meaning to spend some time this summer wrapping my head (a bit more) about the ideas of audio, streaming-audio-over-the-internets-as-radio, and teaching. Thank you for this post as it reminded me to move that up a bit on my to-do list.

    This semester I was fortunate to have a student – Haley – who was interested in radio and the idea of creating an online radio show as part of a final project for our class. She had experience being a DJ at our college radio station ( so creating playlists, etc was not new to her. I sent her the directions (thank you, Grant) on how to upload her playlist and schedule it and shazaam! it worked.

    As fun as “live” radio is (I have done that both from the middle of NYC with my trusty iPod Touch and a Verizon mifi, and as well as with your help from my kitchen table, and both were cool), I think that is tough for the novice. So, thinking about my students, I think it would be too anxiety-producing to do it live. But creating a playlist in advance (with narration) and then uploading it? Yep, that could totally happen. That is a wonderful (newish) feature of ds106 radio and I plan to explore it more, both for teaching as well as general language learning and technology explorations.

    In short: This summer I am thinking of ways to weave radio into my language class in an intentional (albeit slow, cuz I am slow) manner. Fear not! …and… Don’t Touch That Dial!

    1. That’s a fab idea. I really hope we could generate some ideas to use the architecture Grant has built- it is a wide open platform, and only needs the idea to nudge it.

      It could even be simpler than uploading a playlist, we could have people build their own shows over what is already on the server (or what could be pieced together from web streams), and all someone has to do might be to record some intros or bridges in between.

      I agree that putting together some pre-arranged shows could be a nice stepping stone to doing a live shows.

      Keep the ideas coming, we are here to serve Great Ideas

      1. So question (see above about me and slow), when you say “build shows over what is already on the server” do you mean taking songs/sounds that are already in the rotation and then repurposing them for one’s one show?

        I am already thinking about audio assignments that I could ask students to create in SoundCloud. The question is then how to get it (easily) from SC to the radio rotation. (with student created audio bumpers interspersed).

        For example,would be awesome if something like this could somehow be automatically pushed to the radio when ready to launch.

        Can that happen?

        Happy to keep making ideas/trouble 🙂

  7. I’m also interested in learning more about broadcasting on ds106 Radio. Thanks for the write up Alan. I was just talking to someone today about how I need to dig in and figure out what’s involved. Now I have a start.

      1. I think you need to get the bitrate right too?
        I know on the icecast server we use for edutalk I managed to mess up by uploading 128kbps when the server streams 64kbps.

        1. Thanks for the info, Alan and John. I didn’t know anything about the bit rate. I uploaded some songs as mp3 and they played in the preview pane; haven’t tested to see if they’ll play on the radio itself. Hoping if play in the preview pane, that’s indicative of all being well.

          1. Guessing myself, depends I guess on what happens to audio before it is streamed.
            The icecast host we uses certainly says make sure your audio is at the same bitrate as your station is streaming, or less. But the ds106 setup looks a lot more powerful on the back end so maybe it does some conversion?

Leave a Reply

Your email address will not be published. Required fields are marked *