Now Playing on Flynn's Arcade Radio: MacMotu - Skate or Die (Jungle-Remix)

Armagetron Servers

Turbo Teamplay: No players online
Brakes: No players online
Flynn's Arcade Network:
1 players online

Welcome!

Greetings, Programs! Welcome to Flynn's Arcade! Here you will find my random musings on life and technology, as well as various interesting computer projects of mine. The name of my site comes from the 1982 sci-fi classic TRON. I am a huge fan of the movie and of classic video gaming and computing. As such, the Flynn's Arcade Radio stream plays various original and remixed music from those bygone days, as well as some of the best newer video game and chiptune music. I also host quite a few Armagetron Advanced servers to help carry on the spirit of classic gaming and serve the TRON community.

C10ud


Flash Player Radio Interface Coming Soon
Written by C10ud   
Thursday, 07 May 2009
I was finally able to figure out how to make fogg (flash ogg library) stream from the Flynn's Arcade Radio icecast server (actually it was partly my stupidity that made it not work immediately). It dies when it hits the end of a song though, so I have a bit of work to do since fogg was not initially written to handle streams. After I fix that, I need to throw on a nice interface and eventually tie it in with my rewrite of icesDJ that will handle ratings. Hopefully I will have a nice player ready without ratings in a month or so. I will be working a full-time programmig job this summer again so I will be a bit busy, but not quite as busy as during the school year I hope.

Be first to comment this article | Quote this article on your site | Print

 
Python Vorbis Comment Parser
Written by C10ud   
Tuesday, 07 April 2009

So, I was working on a re-write of icesDJ, a DJ interface to ices (allows for playlist manipulation and such), and I decided to do it in Python. The basic idea is that ices will call one of my scripts, songpicker.py, which will spit out the next song to play based on 1) DJ Requests (highest priority), 2) User requests (second priority), and finally 3) Random selection based on user ratings. My dilemma was that the ratings and requests are stored in a database, but I didn't have a way of mapping between song titles and the file names they correspond to. What I wanted to do was to go through the media directory periodically and populate the database with the tag data from the files, but was extremely disappointed to find that there were very few Python vorbis libraries of any sort and the ones that existed depended on multiple other libraries. Once I finally got one to build, it crashed upon importing the module.

So, what do I do when I'm fed up with existing software (or lack thereof) and not feeling like doing my (boring) schoolwork? I go write some code! After deeply meditating on the Vorbis file specification's header section for a very long time I finally realized how simply the header was setup. Armed with my trusty (not so) dusty hex editor, I opened up an ogg file, played around with my ideas in the Python interpreter, and soon came up with a working function that will read any ogg/vorbis file and extract the comment header information as a dictionary. The code is pasted below for the benefit of whoever may need it. (Yes, I realize it is somewhat inefficient and I will add stuff later to only read in the necessary header info).

def getVorbisComments(filename):
  '''
    Parses the given input file and returns the vorbis comments as a dictionary
  '''
  comments = {}
 
  fp = open(filename)
 
  # Read in the file
  data = fp.read().split('vorbis')[2]
 
  fp.close()
 
  # Read in the length of the first field (vendor string)
  fieldLen = int(''.join([str(ord(c)) for c in data[3::-1]]))
 
  # Remove the first field (vendor string)
  data = data[fieldLen+4:]
 
  # Read in the length of the comment fields
  numComments = int(''.join([str(ord(c)) for c in data[3::-1]]))
 
  # Remove the comment field length data
  data = data[4:]
 
  # Read in the comment fields
  for i in range(numComments):
    fieldLen = int(''.join([str(ord(c)) for c in data[3::-1]]))
    fieldData = data[4:fieldLen+4].split('=')
   
    comments[fieldData[0]] = fieldData[1]
   
    data = data[fieldLen+4:]
 
  return comments

Be first to comment this article | Quote this article on your site | Print

Last Updated ( Tuesday, 07 April 2009 )
 
I'm Still Alive!
Written by C10ud   
Sunday, 29 March 2009
Well, I'm still alive :) I realize I have been negligent and haven't really kept up with this site lately due to college life. Last semester was rather rough, and this one is insanely busy with 19 credits. Since my last post I have become a registered iPhone developer and have several applications of my own in the App Store (Proxy Loginator and Nihongo no Sensei Lite). Working on Proxy Loginator and PocketSword was unfortunately accomplished during several classes last semester and as a result I have to re-take English (hence 19 credits). 3 of my credits are for an independent study with the CS professor's e-commerce class (for MBA students). Each team has a tech guy and the MBA guys do the business stuff, and the tech guys cook up the code. Fun stuff all around and my team is doing iPhone apps (check out BisCal) so my coding during class wasn't entirely in vain. I am actually starting to make a profit off my apps as well now that my developer membership is paid for.

Over the  summer I will most likely be working for my CS professor's company. Hopefully in my spare time I will be able to finish up PocketSword and get some much needed re-designing of this site done. I also plan to re-vamp Flynn's Arcade Radio with a Flash Player interface that will let you rate songs, vote for the next track, get rid of the Java player junk I'm using right now and other such things :) Thanks for reading!

Be first to comment this article | Quote this article on your site | Print

Last Updated ( Sunday, 29 March 2009 )
 
Armathon Success!
Written by C10ud   
Sunday, 13 July 2008
Well, despite the poor advertising, the Armathon was a big success. Thank you to everyone (esp. old friends) that joined in on the fun througout the night-- even if most of you didn't make it the whole night :) We had lots of fun bantering back and forth on teamspeak, and I personally found it amusing to live DJ Flynn's Arcade Radio while playing. Thanks for playing everyone and we'll try to make it a bit more organized next year (and figure out a way to do live voiceovers on my radio without using teamspeak).

Be first to comment this article | Quote this article on your site | Print

 
Radio Enhancements
Written by C10ud   
Friday, 11 July 2008
You may have noticed that the currently playing radio track has changed colors to match our links. Why? Well, it is a link now :) What does it do? Well, click on it and find out! You will most likely get a message about logging in. That's fine, just go down the page a bit and on the left side you will see a new login form. You can register an account which will allow you to rate songs. In the very near future, I will have a smart automatic DJ sort of script that will shuffle the songs based on rating, playing the higher rated songs more often, that way you get to hear the songs you like more often, and low-rated ones we will consider removing. I also plan to add a request system to integrate with the system as well.

Be first to comment this article | Quote this article on your site | Print

 

Radio Top 20 Tracks

1. Anamanaguchi - Video Challenge

2. Aurasil - Yie ar kung fu

3. Bit Shifter - Hexadecimal Genome

4. Bit Shifter - The Information Chase

5. DJ Mitch - Noisy Pillars (Ibiza Sunset Mix - Remastered)

6. FFmusicDJ - HiddenPalaceFuture

7. Final Fantasy 7 A World of Piano OC ReMix

8. Final Fantasy 8 EyesOnMe(NotFayWong) OC ReMix

9. Hadyn - PartyInTheEmeraldHills

10. Lagerfeldt - Angel (Merry X-Max)

11. Lagerfeldt - Sweet (My Sun Shines On)

12. Random - Spontaneous Devotion

13. Rayza - Sonic the Hedgehog Green Hill Zone (Euroclub '95 Mix) OC ReMix

14. Saberpulse - Hey Kate

15. She - Nebula

16. She - Pioneer

17. Sonic 3D Blast Snow OC ReMix

18. Trance-Canada - Sonic the Hedgehog 3 Ice Attack OC ReMix

19. USK - Little Sound Disko04

20. USK - Little Sound Disko05

FreeBSD Logo
up 91 days
(C) 2007 - 2009 Flynn's Arcade
Joomla! is Free Software released under the GNU/GPL License.