Project Model

August 20th, 2009

I have created a project model to help highlight its benefits above the standard radio model. I have simplified the current radio model, which essentially broadcasts content and music to the listener, without any ability for them to have any direct input or interaction over the content/music they listen to. ALPHACAST allows for direct feedback into the music the listener hears, and also the ability to share content via social networks.

Project Model

LAST.FM RADIO API

May 15th, 2009

In the as3 last.fm api provided over at google code, there is no classes provided for the radio API, which appears to be a fairly recent addition to the last.fm API. The radio API requires 2 key steps. First step is the radio.tune method, where you submit the station URL. For example lastfm://artist/radiohead/similarartists will tune you in to a station which returns Radioheads similar artists. I wrote my own radio class (in a similar style of the other classes provided) which looks a bit like this:

package
{
 import KeyValue;
 
 import flash.events.Event;
 import flash.net.URLRequest;
 import flash.net.URLRequestMethod;
 import flash.net.navigateToURL;
 import flash.net.URLVariables;
 
 public class Radio extends LastFMBase
 {
   public static const TUNE:String = "tune";
 
   public function tuneRadio(stationName:String):void
   {
     var variables:Array = new Array();
     variables.push(new KeyValue("method", "radio.tune"));
     variables.push(new KeyValue("api_key", LastFMBase.API_KEY));
     variables.push(new KeyValue("sk", LastFMBase.sk));
     variables.push(new KeyValue("station", stationName));
 
     var urlVariables:URLVariables = new URLVariables();
     urlVariables['method'] = "radio.tune";
     urlVariables['api_key'] = LastFMBase.API_KEY;
     urlVariables['sk'] = LastFMBase.sk;
     urlVariables['station'] = stationName;
     urlVariables['api_sig'] = createAPI_Signature(variables);
 
     requestURL("", URLRequestMethod.POST, urlVariables);
     loader.addEventListener(Event.COMPLETE, function (event:Event):void {dispatchEvent(new Event(Radio.TUNE))});
   }
  }
}

The second step is to fetch a playlist, using the radio.getPlaylist method. By modifying the playlist method in the Playlist.as to the following, you can parse in the playlist location, returned when the tuneRadio function is called:

public function fetch(playlistURL:String):void
{
	var playListVars:Array = new Array();
	playListVars.push(new KeyValue("method", "radio.getPlaylist"));
	playListVars.push(new KeyValue("api_key", LastFMBase.API_KEY));
	playListVars.push(new KeyValue("sk", LastFMBase.sk));
	var urlVariables:URLVariables = new URLVariables();
	urlVariables['method'] = "radio.getPlaylist";
	urlVariables['api_key'] = LastFMBase.API_KEY;
	urlVariables['sk'] = LastFMBase.sk;
	urlVariables['api_sig'] = createAPI_Signature(playListVars);
	trace("URL VARIABLES: " + urlVariables);
	requestURL("", URLRequestMethod.POST, urlVariables);
	loader.addEventListener(Event.COMPLETE, function (event:Event):void {dispatchEvent(new Event(Playlist.FETCH))});
}

So, in short to call these from your main class, it could look like the following:

package
{
	import flash.events.Event;
	import flash.utils.Dictionary;
 
	public class lastfmClass extends LastFMBase
	{
		private var _auth:Auth = new Auth();
		private var _radio:Radio = new Radio();
		private var _playlist:Playlist = new Playlist();
		public var _trackArray:Object = new Object();
 
		private function tuneMyStation(artistName:String):void
		{
			_radio.tuneRadio("lastfm://artist/"+_artistName+"/similarartists");
			_radio.addEventListener(Radio.TUNE, getRadioHandler);
		}
 
		public function getRadioHandler(event:Event):void
		{
			_radio.removeEventListener(Radio.TUNE, getRadioHandler);
			_playlist.fetch(_radio.xml.station.url);
			_playlist.addEventListener(Playlist.FETCH, fetchHandler);
		}
 
		private function fetchHandler(event:Event):void
		{
			//process results
		}		
	}
}

LAST.FM API AUTH

May 14th, 2009

A large part of my application is the use of the last.fm API to generate customised music listening to replace the radio generated playlist. I have been making good use of actionscript 3 last.fm api over on google code. It has been a huge help in getting last.fm data in to Flash. However, it seems to be an early version, as certain methods are far from complete, including the auth method used to authenticate users.

I have rewritten parts of the auth method so that it is called correctly. Particularly the current requestToken() parameter was a little clunky as it involved copying and pasting a token from a url back into the lastFMBase class once the user had logged in. I have amended the function as follows, and added an userLogin() function which directs them to the URL.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function requestToken():void
{
  var variablesTest:Array = new Array();
  variablesTest.push(new KeyValue("api_key", LastFMBase.API_KEY));
  variablesTest.push(new KeyValue("method", "auth.getToken"));
  var url:String = "?method=auth.getToken&api_key=" + LastFMBase.API_KEY + "&api_sig=" + createAPI_Signature(variablesTest);
  requestURL(url, URLRequestMethod.GET);
  loader.addEventListener(Event.COMPLETE, function (event:Event):void {dispatchEvent(new Event(Auth.TOKEN_LOADED))});
}
 
public function userLogin():void
{
  var request:URLRequest = new URLRequest("http://www.last.fm/api/auth/?" + "api_key=" + LastFMBase.API_KEY + "&token=" + TOKEN);
  navigateToURL(request);
}

Using this format, auth.requestToken() is called first, and an event listener waits for the TOKEN_LOADED event. Once this has happened the user can be directed to their browser to login to last.fm using auth.userLogin. Once signed in the user is prompted to click a button, as my application is a desktop one it helps simplify things a bit. This calls the auth.getSession event.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public function getToken()
{
  _auth.requestToken();
  _auth.addEventListener(Auth.TOKEN_LOADED, tokenLoaded);
}
 
public function tokenLoaded(event:Event):void {
  trace("token trace: " + _auth.xml.token);
  LastFMBase.TOKEN = _auth.xml.token;
  _auth.userLogin();
}
 
public function getSession(event:MouseEvent) 
{	
  _auth.getSession();
  _auth.addEventListener(Auth.SESSION_LOADED, getSessionHandler);
}

THE PROBLEM WITH THE BROADCAST MODEL

May 2nd, 2009

The broadcast model is essentially a centralised distribution model. It is one that dominated media distribution throughout the 20th century. Radio was, and still is, the original broadcast medium. At its heart, the broadcast model produces content from a central location to a large number of receivers (listeners in the case of radio, viewers in the case of television).

Radio content by its nature has a strictly linear structure, which offers little or no control to listeners. This was all well and good during the analogue age, where users were subject to the authority of content producers. However, the Internet, and its decentralised model has caused a shift in media consumption. The nature of this decentralised model means that users are becoming accustomed to choosing how and when content is consumed, as well as becoming producers of content themselves (for example blogs). Is there a knock-on effect for radio listeners?

There are two key elements of radio which are being subjected to this shift in mentality, which I identified in my dissertation. The first of these is podcasts. Listeners can now consume content on demand by downloading and listening to podcasts at their own leisure. As it currently stands in the UK there is not a negative impact on live radio listening due to podcasts. RAJAR currently estimates that around 13% of Listen Again (podcast) listeners claim to listen to more live radio due to listening to non-live content.

The second is the spread of customised music listening. Although not entirely unique to digital culture (walkmans and cd players have been around for long while), it is something which has been accelerated by the arrival of digital mp3 players with large storage capacity. People can now take their entire music collection with them on the move. Radio once played a vital role in music discovery. Since the 60’s radio has reflected popular trends in music with chart shows and playing the latest releases. The problem is that it is now in direct contention with customised music listening. There’s a chance that people may not want to be subjected to a structured linear playlist. By its nature radio has to appeal to as many listeners as possible, so it cannot cater for more specialised music tastes. Online music radio such as last.fm and pandora are powerful tools for listeners to discover music based on their personal tastes.

COMMERCIAL RADIO IN DECLINE

April 26th, 2009

I had been keeping an eye out for articles relating to the Guardian Changing Media Summit which took place in march, and was far beyond my budget to attend(about £340!). According to this article on the media guardian website, commercial radio is ‘dying out’. It even has a rather doomsday-esque warning that it could be gone within 15 years. This is based upon the declining advertising revenues in the commercial radio sector. Commcercial radio is, as the name suggests, entirely dependant on advertising/sponsorship to fund its operations. Advertisers are being tempted by the benefits of online advertising, such as more accurate figures on who is seeing and interacting with adverts and the ability for targeted advertising. Matt Wells, head of audio at the Guardian states:

“We are witnessing the slow death of commercial radio in this country due to a number of factors, [including] the complete failure to grasp the digital nettle” (my emphasis).

So, if radio could take ahold of digital trends, could it potentially stem the tide of advertisers leaving radio for other advertising options? Digital is a very ambiguous word when applied to radio. Wells could be referring to digital radio, or alternatively he could be referring to the impact of wider digital culture (ie. the internet, mp3 players etc.). Another key factor contributing to this decline is that less young people are listening to radio, therefore the longevity of radio advertising is under pressure. As the younger generation moves into the target markets of various commercial stations, listening figures may drop as advertisers will be looking to capture these audiences through other mediums.

One way radio could boost revenue is to offer tailored advertising, but how? Radio is such a linear process that there is no input or control for the users and therefore it’s a little difficult to tailor its advertising. The music listening application Spotify has employed tailored advertising, based upon music choices. If users were inserting customised music playlists into radio shows (as in my application ALPHACAST) then radio could sell advertisments based on genres, moods and artists which could potentially make radio advertisements more bearable, and more profitable.

BBC STREAMS NOT ON-DEMAND

April 26th, 2009

I have suffered a bit of a setback, due to the fact that the streams the BBC offer are not compatible with flash. I contacted James Cridland, who is the head of future media & technology at the BBC (formerly head of digital at Virgin Radio). James writes a regular blog on the radio industry which is fascinating, I urge anyone who has even a mild interest in radio to have a read. Anyway, he kindly got back to me and explained that the BBC only provide two external links to their streams, .asx to play in windows media player, and .ram for real player. The problem with both of these is that they are a nightmare to work with in flash.
BBC iPlayer
On top of this they do not provide on-demand info, such as currently playing song. The only streams they have for flash are designed to only work internally for their iPlayer. Im disappointed that i wont be able to add BBC streams to my app, as it would be perfect given the chat-orientated nature of a lot of their stations. It seems that, as identified in a previous post, Absolute Radio are the industry leaders in this regard. It would be great if there was a nationwide standard for UK radio online streaming. Surely a lot of the commercial stations could only benefit from offering better data services to their online listeners?

RADIO METADATA

April 24th, 2009

I have been fiddling around with uk radio station metadata. I started my efforts with the radio station i spent my year on placement, Absolute Radio (formerly Virgin Radio). I have to hand it to Absolute Radio, they are deffinitely the frontrunners in terms of online radio streaming. They use icecast audio streaming, and provide on-demand metadata for their three stations. For example, they typically send the station name, station genre, a url and more importantly the currently playing track. This makes building an app for their station a joy, as you can connect to the server over a socket connection and process the metadata.

After spending a good chunk of time attempting to connect over a socket connection in actionscript, i eventually ditched that for an open source shoutcast php script on excudo.net which simplified things a bit. I can then call this php script from flash, and retrieve the metadata that way. You can see an example of this running here.

Unfortunately other radio stations in the UK are not so good with their station data. For example Heart, Kiss and others do not provide the same data. At best all they provide from their streaming servers are the title of the station, which is useless for my application as i need to know when a song is playing. I have yet to find out if the BBC offers streams that i can use.

BRIDGING THE GAP

April 2nd, 2009

Well, my idea for my final project has shifted radically since my last musings. I originally was looking into peer to peer radio, however, i was never really comfortable with this idea, firstly as it was potentially beyond my skill and secondly it just didn’t POP enough. In the course of my dissertation research I covered many areas in which Internet culture has influenced the radio listener of today.

A topic that came up which really interested me was the effect of customised music (think last.fm, pandora and personal music players) on music discovery. Once upon a time this would have been a major weapon in radio’s arsenal. New singles, chart shows and exclusive interviews kept listeners tuning in to radio shows. However, with these new channels available to listeners to discover music, the radio model of linear structured broadcasts cant cater for listeners music tastes in the same way.

My plan is to offer up a new model for radio, one where the music playlists of a radio station can be substituted with customised music content. They most logical way to do this will be to merge online radio with last.fm, as preliminary research shows they have an api which allows users to stream music. I see two benefits of combining last.fm. The first is that while listening to a standard radio stream, say the bbc, whatever music is being played can generate a list of similar artists. The second is that, once a song is playing on the radio stream, the song can be phased out and a song from last.fm based on the users personal tastes can be played instead.

My knowledge of streaming online radio, and last.fm API is non-existant, but i imagine the most straightforward and streamlined way for me to create this application will be in actionscript 3. I will get started asap, as there is not all that much time left until the may hand-in!

Project Model

November 21st, 2008

My dissertation looks into the role of radio, and its viability as a media platform and social tool in the future. One of the key themes i am looking into is the lack of interactivity offered to the next generation of listeners, the so called digital natives who are used to dynamic, user generated environments and content (YouTube being a great example).

The standard model of radio offers only limited interactivity. I want to explore the idea of user generated radio, based on a peer to peer model where content can be generated by the user, and eventually broadcast by them also. Below i have created a basic model of radio as it stands at the moment, and two subsequent models where the user is given increased control of content and broadcasting.

Basic peer to peer radio model

In the left diagram, a simplistic view of the current radio model, the radio station creates the content, which is then broadcast to the listeners. The middle diagram shows a model for listeners generating content which is then broadcast to the listeners. My first step will be to try and implement the middle diagram.

The basics of my idea
I envision a centralised location, in this case a website, where users can record or upload content for a radio show. The users assume the typical role of a DJ, and can record short shows talking about whatever takes their fancy. These short shows are then collated into a longer show and broadcast. This creates a scenario where users become producers generating content, but there is still a centralised hub where the audio is submitted, rated by others and then added into a show.

My implementation

Once i have a solid user base, and have tweaked the model so that it functions efficiently, i can try and attempt the third model. This sees the users as content producers and broadcasters. This will be a huge challenge, and im not sure exactly how it will be implemented at this stage. I have considered the use of peer to peer internet broadcasting, so that each user broadcasts to others.

Why it’s different
I have struggled to find anyone who has tried to create this kind of model for radio. It puts the users in the driving seat, and gives them control over what they hear. It branches into another genre, becoming a form of audio blogging, which could add greater appeal. This form of peer 2 peer model is popping up in other areas, but so far has yet to rear its head in radio, which is what makes this idea innovative.

Other examples
As mentioned above there is not really any implementation of this idea in radio, but others have experimented with user generated content. One example i am looking into is noWax, a phenomenon that started in the uk which sees events set up where the guests become the DJ for the night. They each bring their iPod, get a slot and play their own playlists.

Technology
I am going to use flash for the internet implementation of my idea, as the tool with which people can record/upload audio to the website. In terms of the broadcasting with my first implementation i am not sure how i will work this yet, possibly an fm broadcast? However i will need to look into the regulations of this. I could broadcast it over the net, but again i need to look in to the technical ins and outs.

Peer to peer

November 18th, 2008

Mobile PhoneWell, after my brainwave to use my ideas project, i have realised it is not really suitable for my final year project. It is more suited to a commercial environment, so i have taken a different tack.

My main focus is to attempt to create peer to peer radio. They key aim is to for users to record their own content which can then be broadcast. I feel that this is a potential area that radio could expand in to, to give users the level of interaction that they are seeing in other media formats, and could be a great social experiment as well. A classic example of other formats taking advantage of peer to peer is YouTube. This is effectively a peer to peer video site. Users generate, view and moderate the content to a large extent. Obviously there are moderators who oversee and sort out problems, but it is essentially controlled and run by the users.

I want to create a variation on the standard radio model which can particularly entice the younger generations into getting invovled and generating content. For this to work it needs to be dynamic, mobile and above all else interesting, so users want to make the effort of submitting content.

The most clear cut way of implementing this idea is to have it running online, with the ability to record and upload audio through a website. However, it is the final steps that i have to think about. How can i guarantee that the content will be interesting. How can it be broadcast? Do i want to release it as a podcast?

There is a lot to think about, and could be a fair amount of technical implementation. Time for a brainstorm.

Ideas project use

November 8th, 2008

Ideas Project ConceptIts been all change on the dissertation front, which in turn has affected my project hugely, and its shaping up to be a corker. My original idea for my dissertation was focused on the avatar, and therefore for my project I wanted to create an installation that generated abstract avatars on the fly using sound and light.

Well, anyways as with my dissertation, I really pounced on the avatar through a lack of creative ideas on my part. Having now decided to focus on the role of radio as a social tool/media platform, I can hopefully use an idea i came up with on my placement year for my final project.

I entered this idea into a competition that Virgin Radio ran back in May, called the Ideas Project. This was a push by the management to get a different take on ways the station could improve and expand by getting employees to submit business ideas.

I got through into the final four out of about 30 entries, and had to then research extensively into what my idea was worth. This involved forecasting how many people would use my idea, how much sponsorship would be worth etc. I then had to pitch in a 50 minute presentation to 4 ‘dragons’ which were:
Joe Steele - Founder of Virgin Mobile
Rachel Elnaugh - Entrepreneur and ex Dragons Den dragon
Richard Hungtinford - Virgin Radio CEO
David Lloyd - Head of Programming at Virgin Radio

I managed to navigate my way through the pitch without any hiccups, and ended up winning the whole thing which was great. I even got a little mention on the radio too!

I guess the reason i’ve explained in so much detail without actually explaining what the idea itself is, is because it is now the property of Absolute Radio (formerly Virgin Radio). Therefore its a bit hush hush. I will need to liaise to find out specifically how much of the idea i can use, in what format, and what i can post publicly on my blog.

However, lets just say if i can get this thing of the ground and overcome the mammoth coding/technical challenges it could be a real winner as a final year project.

Finaly year project underway

October 14th, 2008

Anti VJOk, so im back peddling slightly as my blog took a little longer to set up than expected. I have been looking into the work of AntiVJ, who has made some really inspiring light and sound installations, to help give me some inspiration for my final year project.

My dissertation idea currently focuses on the avatar, and how it can be used to mis-represent the self in a digital space.  In a simplified nutshell the key question i am exploring is the notion that we are having to learn new ways of interacting, as peoples online profiles and avatars can often mislead people. We can longer rely on the senses we use to gauge people when meeting face to face, and are restricted to vision and sound.

I want to explore a way of creating an avatar as an installation piece. The AntiVJ stuff has really spurred me on, and i think that the abstract use of sound and light is quite powerful, and also nicely represents the way we are forced to interact online. I will have a brainstorm for some ideas.

About this blog

This blog documents my research and exploration for this project, from initial ideas and conception through the to exploration of the techniques and challenges faced.

For a more in-depth evaluation of my project, please view:

AlphaCast Short Paper
AlphaCast Strategy for commercial radio