• Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

About this blog

Java programming, music, art and more!

Entries in this blog

MIDI Keyboard v1.7

MIDI Keyboard v1.7

I've done another update, this time I've made a GUI for chords. Instead of having only 9 chords to choose from, there are now over 50.

I've an appointment with my school to see if they would be interested in licensing this product for all their computer work stations (some 4000+ computers) so I'll be hoping for the best. They said that they might be as willing to pay be $2/copy/year. So, ummm... fingers crossed! $8k a year isn't too bad [smile]


So a couple of things since my last update. The lack of updates this time is simply because I've not had the time nor internet connectection to do so. I've been working swing/grave-yard with doubles; but hey, money is money. As far as programming goes, I've been interested in getting back into OGL 3D programming, so I started created a simple engine to display a tiled isometric map based off a simple data structure. Eventually it'll be better than my current java2D engine which fails at higher map sizes to be fast enough.

I've updated my MIDI Keyboard to version 1.6, and will be updating my VersionTracker entry to reflect this. Currently I have a rating of 4/5, so all is good [smile]

Anyway, when school starts back up on the 17th expect more updates.

MIDI Keyboard v1.5

My newest version of MIDI Keyboard (for Mac OSX) v1.5 is available at Version Tracker's website. It has the following features:
  • Graphical Piano GUI

  • Mouse Input

  • Chord Playback

  • Key-bindings are editable

  • Sustain pedal

  • MIDI port selection

  • Channel, Velocity, Instrument selection

  • And other stuff I'm sure I've missed...

So um... all you OSX junkies out there go and download it, and then give it a rating on VT.


Just registered for classes... I'm not a CS major, but rather a business major at Berklee College of Music (I want to get into the music/sound area in game development).

COND-233-011 Conducting 2
CP-233-008 Traditional Counterpoint 2
CM-233-013 Trad Harmony & Composition 2
ET-242-016 Ear Training 4
HR-242-033 Harmony 4
ENSB-498-001 Contemporary Woodwind Orchestra (not taken for credit)
ENSB-325-001 Flute Choir (not taken for credit)
PIWD-XXX-113 Private Instruction - Woodwind
BM-311-003 Legal Aspects: Music Industry
BM-355-005 Advanced Computer Apps
BM-375-002 International Economics
BM-387-003 Principles of Financial Accounting
Alright, I christmasified my avatar, and finished MIDI Keyboard 1.1. For mac. I'll get the Windows Binary put together as soon as I find my dang Virtual PC disc... I updated VPC, but it requires the CD again to verifiy that I purchased the program. I think that I loaned it out to someone last year though... :
Anyway, here's the link: mk.112605.dmg.zip[75kb]

Java know-it alls can probably get the same thing running under windows. The Main class is in mk.main.

Anyway, there ya go.

Um... yeah...

For the better part of the week I've been spending way too much time doing college work... I've got my orchestral concert tomorrow, so I've been having evening rehersals from 5pm to 10pm. This usually leaves about three hours during the day to get my homework done for the next day's lessons. And then to top it off there is a girl I've been going out with for a while now too. So um... not much programming time [smile]

So anyway, more posts to come...


Alright, I've got the clickmap mostly working in MIDI Keyboard... there are still a few wierd bugs that show up every once in a while, but generally working pretty good. So everything is still on track for a release this weekend.

In other news I actually worked more on Battle tonight. I finished a generic move event that will make an actor move in any direction and any height of terrain. When there is a higher place he's jumping to, he jumps heigher. So I guess it is more like moving with dynamic map-height jumping. But either way, it saves me from having to write fifteen billion little arrays.

Valid XHTML Strict!

I went through and made my code all Valid XHTML Strict. The problem was the IE didn't like it. Go figure. it works in every single other browser perfectly, and IE messes up on it... after another half an hour of work I created a hack that showed everything correctly in all browsers... I really wish that IE would support standards better. On the same note as my website, I got my emails working for hopkinsmultimedia.com. I can send/receive *@hopkinsmultimedia.com. So now when I need a serious email sent out, it can be from services@hopkinsmultimedia.com. Gmail was really helpful in this manner.

I got a great amount of work done all MIDI Keyboard, and it should be ready for a release here at the end of the week. The only thing left to add is making the virtual keyboard clickable with the mouse, and reintegrate chord functionality from the previous version. So all in all be prepared for a wonderfull piece of software.

I just updated the website again, I've navigation working through AJAX.. [cool]


So I pretty much worked on my website today... www.HopkinsMultimedia.com. I think that the design is pretty much finished, time to start adding content...

For those of you interested I got png alpha support working in the old IE that don't... for those of you that know how horrible it is that IE doesn't support png's alpha channel, you might find the fix a great help in your own web development. Just check out the source of the page (you might have to traverse down a frame because of my URL fowarding...)

Anyway, I promise to get back to work on Battle as soon as my site is up and Midi Keyboard is to version 1.1.'

Alright, sorry for the lack of updates, but I figured that I'd already messed up my calendar, what was another few days? [smile]

I started to take a break from battle, and work more on a smaller project for a bit. You all know how it can be working on something for a long time, it eventually gets a bit boring, and it is nice to spice it up a bit. So I created MIDI Keyboard, which has been posted in this journal and in the Showcase. I also submitted it to VersionTracker.com and so far has received over 700 downloads from there.

The next version (1.1) will be done shortly and includes a graphical representation of the notes being played, as well as knob UIs for controlling velocity, instrument, offset, and pitch. Currently the big fall back to the graphics is that is shows a nice keyboard on the screen, but the mouse can not click the keys yet. There are numerous ways to do this, I just haven't implemented them yet. When done, MIDI Keyboard will have a nice mouse-clickable nine octave MIDI input keyboard for all your sequencing needs.

Another fall back is that the sustain method developed in 1.0 actually doesn't use the MIDI sustain message, but rather an internal buffer for holding notes, in 1.1 I hope to resolve this by using MIDI's own sustain.

Since you all love screenies, here you go:

And I have the site template I created for Hopkins Multimedia up: Hopkins Multimedia I will replace the content when I'm happy with what I have here on my localhost. I'll get the actuall domain name and hosting here soon, again once, I've fleshed out the site.

So tell me what you thing of it!

Arg!! No!!!

I forgot to do a post for earlier today!! I don't get a full calendar!

Anyway, did a lot of work today on my new website for 'Hopkins Multimedia' which is my little development/design company that I've started. I already have my first product out, and it's even located on a reputable Software site. Linky to VersionTracker's Page for MIDI Keyboard (already 90+ downloads). Obviously I won't be able to make money off of this, as it's both freeware and a lowgrade application, but I figure that if I were to have a couple of apps that were free that it might get more traffic to my products. I hope to have the website up sometime this week, but no promises.

One of the major services that Hopkins Multimedia will provide is Graphic Design. Mostly for around here in boston for concerts and such. An attractive poster will draw a large crowd if done properly. Another service is basic website design. I don't do anything to fancy, but I've always thought that my sites had a nice and simple elegance to them. A major application to be released down the road is my game, but frankly right now it is looking to take at least another year or so.

I did get some work done with Battle today also; the standard include script is for the most part written. This allows for all the standard things needed in scripting a game: Actor movement/animation, sound playing, resource management, rendering, etc... this way they do not need to be redefined in each script that needs them. It'll save a lot of work down the road, and I'll be able to add functions to it later when I see that it is in need.

Anyway, still upset I messed up my calendar... arg!

MidiKeyboard V1.0

Alright, I went and finished off my midi keyboard to a nice 1.0 version. It has a native for both Macs and Windows (different downloads), and has the ability to choose which MIDI out device you want to play through. Another thing that I've added is a chord function. Now when you hit Caps Lock it puts the keyboard into chord mode, which well... plays chords instead of notes. The bottom set of keys(Z through /) function as the chord selection buttons. Everything from a Major Triad to a Minor-seven-flat-five chord.

You can also change MIDI devices on the go. On default it trys to load the Java Synthesizer, because that it the most likely to work, but in case it doesn't, just hit the escape key and select which device you want (usually the GW Synth in windows, I think).

Anyway, it has a readme, and it works pretty dang well. Enjoy!

Mac - MidiKeyboard.dmg.zip[71.23KB]
PC - MidiKeyboard.zip[151.66KB]

Linux people who want a copy just PM me, and I'll send you a copy.

Keyboard Piano

I sat down last night at a friend's house and I had my laptop out trying to write some music. I say trying because without a (midi)keyboard I find that composing becomes much more difficult. So I figured that a good project would be a midi keyboard on the actuall keyboard. And this is what I did. It plays nine octaves (four higher and four lower than middle C) and supports all 128 GM MIDI instruments. It even has the ability to attatch to external MIDI devices.

While it has almost not GUI, it does have functionality.

A:C W:C#
S:D E:D#
F:F T:F#
G:G Y:G#
H:A U:A#

1 - 9: Change Octaves (Middle C is the letter 'A' in octave 5)

SPACE: Sustain Pedal
UP: Change Instrument+1
RIGHT: Change Instrument+10
DOWN: Change Instrument-1
LEFT: Change Instrument-10


Let me know of any problems!
I've started working on content, but quickly realized a major fallback of having all the motion array stuff stored in the script itself: I'd have to manually enter all the frames x,y, and g variables... Needless to say it is quite frustrating to do by hand. So the next thing I'll be doing is adding a GUI window for animated/moving actors. It will allow you to add frames, and change the frame's x, y, t, and g variables with just the mouse (dragging the image to the correct location). It will then export to a seperate script file that will then be included with the state's script.

Another thing that has come to mind is that people will undoubtfully try to hack the script files for easily beating the game. So I have also put on my to-do list a MD5 hashing system for each 'official' game script. And then, inside the actual compiled java class it will have a list of official hashes that can be used when playing the scenario mode. Since the external scripts would be unable to launch the official scripts (without modding the class files), cheating would be considerably harder to do. I will however, encourage people to mod the game, but not in the official scripts that contain the plot of the game.
I extended the MessageTracker object to also handle pictures. This was a very quick and easy thing to do, so didn't cut in (too much) with my studying. And I'm unsure whether I've mentioned this before, but with the Message object you can also put in a scripted action to be performed after the message's time display is up.

For instance: MessageTracker.add(new Message("Text", 5000, "somScriptedAction();"); And since I will not be coding the content in java (I'm doing it in BeanShell) everything is held in the script file, so it is really easy to make scripted functions after the message.

I've also found out that I need to make an interface between scripting and my Keyboard object, otherwise I won't be able to control the keyboard mapping parameters or trap differeing key events from what is hard programmed in the State object.
Also, I was told that the demo wouldn't repaint the screen after coming up from a minimized state. I fixed this a while ago, but evidently I didn't on some platforms. I tested it on OSX and Win2K-AS. It was on XP that it had the problem (I think) so if someone else could test it out on XP that would be helpful.

Alright, back to homework...


Well, it is that time of the semester. I will have to forgo programming for a bit while I study for midterms. Next on the list for Battle however is the fixing of some minor bugs, and then content baby! Such a wierd concept after so much programming, and no game designing. I do have a nice Game Design Document, so I know what I want to do. The only thing is to actually do it [grin]


There is now also a native mac application. Bundled withing a disk-image which is then bundled within a zip file. Simply double click Battle.app.If there's a linux box out there wanting to try it, pm me and I'll email you it. *Whew* That is enough native wrapping for one day...

Because some machines were still having troubles running the bat file I went ahead and programmed a full exe wrapper for windows.

bd102305.zip[3.12mb](pc native)

bd102305.dmg.zip[3.2mb] (mac native)

It should load from the exe, and then the Graphics, Music, Scripts, and prefs.ini from the local path. Let me know if this one works all you silly Windows users. I never had this much trouble from my Mac. All I do is double click on my main class and it runs. None of this nonsense [wink]

Anway, also update the look-and-feel to windows standard. Enjoy.



I have fixed the download (see next post) to work with windows. Let me know of any other problems.

Demo: release102305.zip[3.04mb]

This demo show you a few key things with the Battle Engine. The most important is a sample very short cut scene. To start the cutscene press 'r' (for run script). After the script is done it will have moved the map off screen, to get it centered simply press 'g' which will set a camera goal to center.

1: Toggle Log
2: Toggle Mouse Mode
3: Toggle CommandProcessor
4: Toggle Graphics Cache Viewer
R: Run Cutscene Script (will only work properly once per game run)
G: Move map back to center
B: Open the Battle web-browser
Space+Directional: Move Camera
Directional: move Cursor
Escape: Exit menu


Some of the items in the CommandProcessor might not work correctly, and some functionality may not be included in its GUI. To run a script from the Scripts folder simply insert CommandProcessor.runScript("./Scripts/example01.bsh"); and replace example01.bsh with one of the other ones such as the server.
I made a very basic Dialog script. This is a huge step in the right direction, because it opens the doors to cutscenes. I can add/move/change actors, display messages, play sounds, move the camera, and more all through the game scripts.

So here is the plan: by tomorrow I will hopefully have a demo up that demonstrates an example cut-scene. Since I do not have fluid-actor-movement done yet, the actors will move tile by tile instead of pixel by pixel, but it demostrates what the cut-scene actually is. If by some miracle I do have fluid actor motion done, you are all in for even more of a treat.

So stay tuned!
Sign in to follow this  
  • Advertisement