NoshBar's Dumping Ground




So, I had a showstopper bug whereby the notes would sometimes appear all of a sudden halfway down the "lane" of Drumpster.
The problem is that I was only ever intending on loading MIDI files, so was lazy optimised the note adding function to always add notes in the order they came from the file.
GuitarPro files store things a little differently though, and I would sometimes add notes with an earlier time to the current end of the list.
So that's now fixed, yay!

Sadly, trying Drumpster on Linux again, the custom meshes are being displayed 90 degrees to the left on their Y axis.
It's OpenGL, it shouldn't make a difference what OS I'm on... so gee, I guess I just suck at this.
But that's something I can fix later, seeing as the OBJ loader right now is the result of a really quick prototype session anyway.

I guess this means that my next post will be a release of some sorts... unless of course, my outstanding coding skills let me down yet again and another bug from the hellmouth is uncaged.

A side note: I started thinking about how TISFAT would work on something like the iPhone or iPad... and what the interface would look like... so much so, that I think I might have to do some sort of prototype of it...
But then again, TISFAT is basically just that in the first place... so... tisfatTOO, coming to an iOS device near you?

[ view entry ] ( 291 views ) permalink print article

It's been a while since I touched Delphi, but I've always loved it for rapid prototype development... hell, I made TISFAT in it without even knowing how to code (and boy does it show!).

Since I recently decided to make a Drumpster configuration file editor, I thought I'd dust off my old Delphi installation, but sadly, I couldn't find my dear old Delphi6Personal.exe download anymore (and Em..Embar... THEM aren't being nice anymore).
Seeing as this also had to be pretty OS portable, I thought this was a perfect time to look at FreePascal and Lazarus again.

The last time I looked, FreePascal was awesome and were talking about exciting ARM versions (iPhone/GameBoy coding for morons, woohoo!).
Lazarus however... well... the last time I used it, it was not a very pleasant experience at all.
The debugger was never really sure that the app had started, or if it had finished, or paused, or if it could even feel its legs.
The IDE itself would panic all the time, proudly telling me to save stuff before it went completely tits up.

But now?
Oh wow.

Lazarus has come a long way, but the past few years have seen it rapidly become something incredibly useful and handy.
Sure, it still generates executables that consume the sun with their size (helloooo strip.exe!), but it's delightful to code in now.
The intellisense is great, the debugger now talks to the IDE, I can right-click-and-go-to-definition, I can minimize the main window and it will take its children to the flaming pits of hell with it...

It's slick, smooth and sexy.

And portable, huzzah!

Good job guys.

[ view entry ] ( 205 views ) permalink print article

After a week of some really good coding, I had GP3/GP4 loading completed PERFECTLY, so it was time for a release!
Except I hadn't. Lying in bed, I rose from my position as if possessed by a Bloodhound... buggery, I had forgotten to implement the "repeat" flag.

So, when next I get time, it's fixing that, and then writing documentation on how to use Drumpster.
Not that it's difficult (it can be as simple as putting a folder called "songs" in the executable folder), it's just... very configurable... via INI files, which I want to document.
I am considering making an INI generator, using Delphi or something similar, so I can do it quickly, it won't look too much like ass, and it will run under WINE perfectly (but Linux users will welcome hand crafting INI files, right?).

As it stands, I'm quite proud of what I have achieved. Using KKrunchy (an executable compressor), I got the executable down to 96Kb, that's with the built in meshes!
Anyway, it's a single executable, reads MIDI and (some) Guitar Pro files, and shows them like a Rock Band clone would.
Input will come later, for now it's a perfectly barely usable little learning utility.

How Drumpster looks right now (the game screen can be themed on a song-by-song basis):


Playing vanilla MIDI/GP3/GP4 files with built in meshes and textures. Isn't it just preciously ghastly?
It does show that open and closed hi-hat states are supported though.





This shows that every song can have a custom background and set of meshes for the notes.




This, well, I just wanted to put a Pantera song up really. And it shows you can change the neck texture, and colour meshes individually.

[ view entry ] ( 318 views ) permalink print article

I thought that supporting MIDI in Drumpster was the way to go, "it's the most popular format in the world!", and it would bring support for FoFiX and friends.
Sadly, "most popular in the world" also means "incredibly difficult to find", especially free, non-lame, ringtone-only abominations.

Then I thought about the Guitar Pro format... how hard could it be, right?
I've reverse engineered the binary DirectX mesh format before, so why not try this for fun?

Unfortunately, people have already trod this path before, and there is documentation for this all:
http://dguitar.sourceforge.net/GP4format.html
http://forum.ubuntu-fr.org/viewtopic.ph ... 1#p3378011

So now all that remains is for me to read this, somehow lure my brain into interpreting it, and then coercing my hands into coding it...
If the MIDI format description has taught me anything, it's that I'm a moron who doesn't understand la-dee-da speak.

Once done, I have a library of a squabillion songs I could play... almost guaranteed to have a semi-decent drum truck, huzzah!

Trying to add some sort of custom theme support at the moment... it's going the opposite of well, but -hey-.
Baby steps.

Once the Guitar Pro format is implemented, and I have finalised the configuration options, I will release the first public version.
You know, to all the people not reading this.

[ view entry ] ( 445 views ) permalink print article

So.
Good-bye Lhythm. Good-bye trying to be professional.

I wanted to see if I'd enjoy drumming, as before I had tried playing the piano and guitar to varying degrees of outstanding non-success.

Being paranoid when it comes to doing things that make a noise (especially as a foreigner living in a flat), a real drum kit was out of the question.
Electronic kits are awesome, but quite expensive for a test to see if I can indeed move my arms as if they're not joined at their sweet little siamese hips.

It all went down a little something like this:

  • Bought an el cheapo Wii USB Rock Band 1 drum kit off Amazon (12GBP) just over a year ago, to use with FoFiX.
  • FoFiX turned out to be great! I themed it to hell and back, got songs of bands I love... but I needed more.
  • Bought Rock Band 1 for the Wii, which scored me more harshly, but slowly I managed to get up to medium difficulty without the TV throwing up.
  • Sucked it up and bought a Roland HD-1 VDrum set, as I was now sure that I would enjoy this whole beating-things stuff.
    (the set remained untouched for a year though)
  • Bought the Roland HD-1 drum tutor thing. Burnt the CD with salt and holy water and went to my happy place. The interface just didn't work for me.
  • Then I thought "Hey! I want FoFiX on the TV!"... my first generation AppleTV (sitting in a puddle of its own tears) stuck its hand in the air screaming "OOH OOH! PICK ME!"
  • So I went through the absolute hell of trying to compile FoFiX, giving up, and eventually copying the OSX binaries over to the AppleTV, working through each one of the missing libraries it required one by one... eventually, it was _almost_ playable.
  • No matter what I did (loads of setting tweakery), I couldn't stop the frequent stuttering, which really affected the awesome scores I otherwise undoubtably would have received.
  • As is the natural next step for any coder, I thought "I'll make my own clone! It won't use any CPU power at all, and it will draw sprites using a thread in another dimension! And it'll be radder than anything else ever! Perhaps an MMORPG version..."
  • An hour an evening for a week was spent on creating the world's suckiest FoFiX clone, I posted a video of it, and I was proud that someone as stoopid as me could get it right.
  • Bought the Band Hero package for super cheap (thanks HotUKDeals) and danced with glee like a little schoolgirl to the sight of the extra cymbal.
  • Eventually-will-be-related: O2 had a sale on Jogglers, so I bought 2, in case one got dirty.


Then a year of hell passed in which not much except crying happened.


  • I bought Rock Band 3 and the MadCatz MIDI adapter and plugged my Roland HD-1 into it
  • I was temporarily happy
  • Needed more songs, so Lego Rock Band and Green Day: Rock Band were bought for their content in Rock Band 3
  • But still... needed... more songs... and wanted to start learning how to use both feet at same time (hi-hat and bass)...
  • Thought, "My Joggler! I can stick it to my drumkit with pretty ribbons and use it as a teaching aid!", and it's a perfect low-powered PC target (being a crusty 1.3GHz netbook with a touchscreen)


So I finally went back to my FoFiX clone, spent an hour an evening for a week on it again, rewriting it mostly from scratch (seeing as the possessed side of me seemed to have written the first version), testing it on my Joggler, and that's where I am today.

Drumpster is an awefully poor choice of name for this project, as looking at the code reveals that I could easily cater for other instruments, but I'll cross that bridge when I get to it (which, let's face it, will be approximately: never).

As it is right now, Drumpster is nothing but an unfinished MIDI to Rock Band display converter.

Things it does right now:


  • Accepts any "real" (GM notes) or FoFiX (different difficulties, 4 tracks only) MIDI file
  • Displays real drum notation as Rock Band 3 Pro style tracks
  • Caters for open and closed hi-hat (eat THAT Rock Band 3)
  • Has a small footprint (~90Kb on Windows and Linux) and runs smoothly on low powered devices

Things it doesn't do right now, but will "soon" (all present and working in the old code, needs to be ported/rewritten):


  • Let you pick songs (with this in place, I will release the first beta version)
  • Accept any input (native code and RtMidi)
  • Score
  • Have any sound output at all (PortAudio and Tremor for OGG)
  • Be pretty enough to be able to look at for longer than 10 seconds before weight loss initiates.
  • many other things I am keeping secretive about because they're so unique that no one else could ever think of them and would just steal them because I am a unique and beautiful snowflake


TL;DR: Basically I aim to have something that lets you play FoFiX or plain MIDI songs displayed as Rock Band 3 style tracks (but with open/closed hi-hat), optionally accepting input from computer keyboard, MIDI instrument or joystick (or all 3 at once) and scoring you on it.

To the CodeMobile [tm]!

[ view entry ] ( 232 views ) permalink print article

<<First <Newer | Older> Last>>