About this blog
Java programming, music, art and more!
Entries in this blog
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]
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.
This is a recording of my Orchestra's performance. This is the Trumpet Concerto by Alexander Arutunian. It is fairly long, but I figured that some of you might enjoy it. The least you could do is scan through it really quickly [smile]
- 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.
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
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.
So anyway, more posts to come...
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.
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]
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.'
It is much nicer. I hope you all agree.
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!
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!
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.
While it has almost not GUI, it does have functionality.
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!
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.
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...
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.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.
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.
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!