Electric Love Potato Playlist Player

So I’m here to make mention of my latest release: Electric Love Potato Playlist Player. You can download it from itch.io or Gamejolt:


It’s available for MAC and Windows.

It’s a small “take a break” project that I did (hoping to combat my current burnout and resulting depression). These things help. Just finish something TOTALLY different. My generators used to be that, but I’ve since graduated to potatoware. I loved this. It’s been really interesting because it’s a music player, and I’ve never *really* done that before.
Like your typical Electric Love Potato this is a potato that provides companionship while you listen to music. Meaning that it will comment on everything you do, and probably talk you to death with uncontainable enthusiasm, so a “shh!” button is provided to minimize this. It’s cute. Exactly what I need! …Sometimes iTunes gets boring.

The interesting part of this project has been finding a way to get all the common audio formats to work.
It’s an AIR project, so you can imagine there are no “out of the box” solutions for things other than .mp3, mp4, and m4a (working with mp4 and m4a are nearly identical — here’s an article on those). My own requirements where to support .mp3, .wav, .m4a, .mp4, and .ogg.

This uses no ANE’s. By all accounts this same thing could run in the browser, although there is no reason for that. Downloadable is funner in this case.

There are a few very dated (old) resources from others that have gotten wav and ogg working. These where great starting points for me. You can check them out too and get a sense of what is required.

For Wav:

For Ogg:

I have a nagging feeling that I really over complicated this and I’m missing some critical feature that does exist and would have made this easier, but hey… The above examples are interesting, and you can still prod around in them for educational purposes, which is always fun.

There are other basic features in the UI. It’s more of a joke. You can play, stop, skip, and potato will extensively comment on everything. Potato never shuts up, so if you stop, it starts talking to itself. Of course looping a song, and moving it up/down in the playlist is also provided.
There’s a tiny little hidden feature (bottom right text icon) that will generate a random potato recipe for you, and save it to your desktop. This is the same thing as the original Electric Love Potato but actually works in Windows (joke aside now). So this also involves food, not just music.

To add a song you just drag whatever song (NativeDragEvent), from whatever folder, or location on your desktop, and drop it into the player. The player saves a reference to the File object (song) as a Shared Object. Unless you moved the audio files, it will keep playing them whenever you return.
It has been ages since I really worked with SO’s. SO seemed the easiest/quickest way of doing this. Unfortunately you can’t save multidimensional arrays, but you can save references to the original File object (sorry if I’m confusing words — speech dyslexia). It’s a lot more simple than I originally thoughts, so here. I am sharing the simple-ness with you:

if(so_potatoplayer.data.array != undefined){
	//so_potatoplayer.data.array is the saved array of [object File]'s from your last potato "session"
	for(var i:Number = 0; i<so_potatoplayer.data.array.length; ++i){
		var urlStr:String = so_potatoplayer.data.array[i];
		var file:File = new File(urlStr);
		arr_songs.push(file);//re-populate song array with last values
	trace(arr_songs);//that's it

Overall this was a really cute and refreshing break project. I think it’s also cool to have a super simple music player now. You know, I question software lately with how liberally your preferences, behavior, likes and dislikes are shared. I don’t know… The topic has been on my mind.

At any rate… I know I’ll be using it, and enjoying the company of my potato friend. :)

Oh! P.S… Speaking of potatoware…
For those interested, and on a MAC, you can also check out Electric Love Potato: Potatoware Cursor. It changes your desktops cursor to a potato, or some loading icon. It was created for practical joke purposes (or for those that want a potato cursor). It has successfully caused some amount of chaos. So that worked.