HTML 5 Chip Tracker

The recent builds of firefox have included support for realtime synthesis through javascript, and I though I would get in on the fun and build a toy with them. I of course went overboard, and decided to make something that you could actually use to write music with, and implemented a tracker. To note, this is a prototype, and rather than discarding it without showing it to world, I have posted it here for people to play with, and potentially dissect. Before we go further down the road of what the specific features are, and why it is cool, here is a quick video that should explain it a little bit if you are still unclear:

html 5 tracker from jonbro on Vimeo.

If you want to play with it yourself, first go grab "a beta of firefox 4":http://www.mozilla.com/en-US/firefox/beta/, then head over to "the app":http://audexp.appspot.com/tracker/. You will need to log in with your google account, it allows for saving your songs as you work on them. The tracker currently allows for 8 channels of monophonic patterns, and each channel controls a synth that has either sine or noise waves, with a simple AD volume envelope. The worlds worst help file follows: * arrow keys navigate * enter goes down one screen, escape back up one screen * the bottom two rows of keys are used for entering notes, like a piano keyboard * places that seem to take numbers, try typing numbers into them, it should work * not everything that is on screen is actually implemented * spacebar stops and starts the song * / goes down one octave, ' goes up one octave _update_ I put the "source code for this project":http://github.com/jonbro/AudioExperiments onto github, in case anyone wants to play with it.

Bookstock II

A benifit for the local libraries.

What I do at work

This post is completely prompted by the fact that my job is hiring another developer, so for the impatient, "go there and apply right now":http://www.walltowall.com/news/view/119. All others that want to know what they are getting into should read further and see if it applies to them. For the past 4.5 years I have been working as a developer for Wall to Wall studios. It is a pretty small firm, but with a broad set of skills. When I was first brought on we were just starting to get into the Content Management System game, partially because the size of client was increasing and partially because it was no longer economical for us to offer maintenance and update contracts for large sites. We have been through two and a half major iterations of our content management system since it was first built. All of them have been built on php, because we look for a large deployment base, but the systems have grown a number of support systems that are either shell scripts, or rake build files, or other programming languages, because we tend to grab whatever language glue is near at hand to build what we need. Describing a typical day would not emcompass all of the types of work that gets done here, because we tend to move in larger cycles. The most constant part of the job is building html templates for our cms. I have gotten to the point on this job that I don't really view building html templates as a fun thing anymore, it is just production work. Not to say that it doesn't contain interest, just that it is the easiest, and most time consuming part. Occasionally a fun problem pops up in this phase, and I get to write a bit of javascript for some rediculous feature. The second biggest part of the job is maintaining and upgrading the CMS. Our CMS is built on "cakephp":http://cakephp.org, but we have gone quite far beyond what cake supports at its core, and we encourage that sort of relationship to a framework. When we made the jump from treating cakephp as a framework, to treating it as a library, our job got a bunch more interesting. In fact, some parts of the cms have totally replaced cake core elements, for example, the view layer is now running on "twig templates":http://twig-project.org. As a developer here, you are also expected to be a UX engineer and interface designer, because the designers only work out what they want the output of your data to look like. All backend engineering and design decisions are left up to the developer building them. To me, designing the systems for collecting and manipulating data are just as much fun (read, even more difficult), if not more fun as designing the systems for collecting the data. While I have been here, I have designed the backend for a calendar and event registration system, an extremely extensible slideshow system, and added a number of features to the core content system. In each of these cases, although I could seek input from my coworkers (and I did on a great number of occasions), the final design decisions were mine. In addition, the programming decisions were mine, so I could make as many crazy interesting polymorphic data decisions as I wanted, or make the data simple to make my life simple. This creative agency extends to the process policy here. Between myself and the other developers, we have moved to a process that uses source control for everything, has a continous build server, automated testing, scripted deployment, pair programming, code reviews and bug tracking. None of these systems were in place or mandated by management, but we were given the space to make good decisions as we needed, and drop the ones that were slowing us down if we didn't need them. We are also encouraged to do reasearch on new technolgies, which is nice and gives us an excuse everytime we are surfing reddit. So, hopefully that helps, "please apply"::http://www.walltowall.com/news/view/119!

with Arrington De Dionyso's Malaikat Dan Singa / Dean Cercone

Indonesian trance-punk-dance party More info: "http://www.myspace.com/arringtondedionyso":http://www.myspace.com/arringtondedionyso "http://www.myspace.com/deancherconay":http://www.myspace.com/deancherconay

New games

Since the beginning of the year I made a few new games, and I thought it might be helpful in making the next few not horrible if I take some time to talk about them, and their problems. A _post-mortem_ if you will. Will you? before I start talking, go grab them over on the "software page":http://dl.dropbox.com/u/43672/blog_static/software/index.html. Be warned, one is mac, and the other is windows, so unless you have some virtual machine magic (or two machines), you are only getting half the fun. h2. bibababoa !http://dl.dropbox.com/u/43672/blog_static/software/images/bibababoa.jpg(bibababoa)! This one was made for "gamma 4":http://www.kokoromi.org/gamma4/. A pretty standard collect the dots game, but with double jumping and weird dot order collection mechanic. I did about 4 prototypes before I landed on this game. Most of the prototypes had a similar collection mechanic, one of which was suprisingly similar to faraway:
I ended up going with my third prototype because I really couldn't figure out how to make the orbital mechanic work well for me. Along the way I built and rebuilt a pretty nice particle engine that I am pretty sure will get some more use eventually. h3. ups Double jumping is awesome, and really feels like the only mechanic in the game that you have full control over. Also, when you can time to hit a series of different collections in the right order, it feels great. The fact that the game always ends on the "you win" screen is pretty nice too, altho, it leads nicely into the problems. h3. downs There is no real progression to the difficulty of the game, so you never feel like you are winning. I tried to make the collectibles move faster, but it just feels like luck, or bullet spam. At the last minute I put in these two giant heads that would do more standard bullet patterns, but I couldn't quite figure it out by the deadline, so I gave up on it. It did seem like the right solution though. I think the added element of interesting patterns would have made a huge difference of progression. It is also possible that changing the complexity of the collection rules would have helped the game. For example, level one, collect 10 of these things, level two, collection 15 of these things, and 2 of these other things. The graphics, while good, were actually something that I couldn't tweak quickly enough when I figured out that they caused problems. The biggest problem is that you character is so big that it doesn't really pay off when you have the double jumping mechanic, so there is really no reason to have it in there. I also dumped so much time into the graphics that I didn't have enough time to fix up the core gameplay problems. Finally, and related to the graphics, I used a custom drawn font. I totally fall into this trap on the other game as well, but I manage to decide that I don't give a fuck about consistancy at the last second, and use a system default font. It really made it hard for me to add new features in the game when I didn't have the whole alphabet, and I didn't have an easy way to get the whole alphabet onto the screen. h2. Drinky !http://dl.dropbox.com/u/43672/blog_static/software/images/drinky.jpg(drinky)! I decided to give gamemaker a go, and this is the first game that I came up with. What a nice platform though. I just stream of conciousnessed the whole thing, and I think it came out alright considering how quickly I went through it. The game is roughly based on the first time that I talked to my girlfriend (except for one time when we were both in costumes, and trash talking each other). Also, I don't drink anymore. Maybe this game is about that too. h3. ups Holy crud does gamemaker rock at blowing out horrendous animations. I love this animation engine for making sprites (with the exception of the lack of onion skinning, wtf?). I was able to make way more sprites and objects than I normally would, due to how easy it was to get them into the game. The fact that I could just prototype in basic behaivors with a graphical programming language was wonderful for my hands as well. Also, the first time I have music and soundeffects in the game, and I think that they push it from _barable_ to _sorta ok_. I really want to clone gamemaker now. Also, finally one of my games has all the standard game elements... is that supposed to happen at game 4? h3. downs wtf. Why am I obsessed with bullet spam. I have been telling myself for the past few games (there are more than are on my software page), that I am going to actually do a game with some nice bullet and enemy patterns. For some reason I never get around to it. So bullet spam it is, and the lack of progression that goes along with it. I think the fact that I only have one level in the game causes that. I should probably learn how to follow through. As such, this game is only fun for about 3.5 mins. Also, handdrawn type and healthbars. I dumped so much time into these that could have been spent better. I need to remember how to prototype I guess. h3. conclusions So according to jesse schell, I have another 6 bad games to pump out before they are going to start getting good. Ok, better keep speeding along through these games, while I try to add some progression to them. Also, I need to stop getting bogged down in making graphics, and just use programmer colors for everything. Using ripped music, and sfxr for sound on drinky really helped get the full game together before I got bored.
older posts | newer posts
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
powered by Jekyll with Barecity