NoshBar's Dumping Ground




Recently I started looking at ways to get Drumpster to output MIDI on non-Windows platforms and came across FluidSynth. It allows for MIDI playback and conversion to WAV files if you so choose. In order to do so, you need to provide a SoundFont (which provides instrument samples that are used to convert the MIDI data to wave data).

In my search for some free SoundFonts, I came across the Rhodes Piano one listed here (decompressor here), and I find it absolutely beautiful to listen to. It has a melancholic joy to it (making me think of Everclear), sometimes sounding menacing like the music in Tron.

So armed with the Rhodes SoundFont and a Windows binary from here, I converted a few MIDI files and put them up on SoundCloud.



To convert some yourself, an example commandline for this would be:
fluidsynth.exe -F output.wav input.mid jRhodes3.sf2


P.S. It also turns out that FluidSynth has a delightfully easy to use Python wrapper here.

[ view entry ] ( 2384 views ) permalink print article

This new version of Drumpster has been "ready" for ages now, I didn't want to release it because it simply isn't good enough.
(the "MIDI Playback" button doesn't do anything unless you enable it in the configuration file first, there aren't proper icons for most binaries, I haven't tested it properly on all the platforms (32-bit or 64-bit OSX build... how should I know!?), the lyrics don't always load correctly...)
However, when compared to v0.1, this has several major fixes and enhancements that make it worthwhile.

I also have a sneaking suspicion that I am going to have to rewrite the whole MIDI loading to notes on a timeline process. I currently load notes and convert them to their absolute time in milliseconds, mostly because I'm a dunce and I have no idea what I'm doing.
What I've noticed is that this conversion process isn't ideal as a song with a slow tempo will throw the notes towards you at the same pace as a fast tempo song... meaning that the notes will either be scrunched up together or very far apart, making it difficult to read sometimes.
So now I will have to store the notes and their tempo and change the rate of note flow accordingly.

Major fixes


  • MIDI loader is more stable and maps things more correctly now.
  • The splash-screen now works, a side-affect of the OpenGL code being slightly less beaten by the crazy-dog stick.
  • The OBJ loader is a bazillion times faster now, and is less against actually loading OBJ files.


Enhancements


  • Android build - I've tested it on a single device, all I own, if you have any tales of woe/joy, I'd love to hear about them at my Hotmail address, noshbar@, or
  • BlackBerry PlayBook build
  • The WebOS build has a funky feature where you can drag the timeline/fretboard back and forwards through time with your finger.
  • Lyrics are now loaded from the MIDI file and displayed during gameplay.
  • You can enable buggy MIDI audio playback by adding the following line to the drumpster.cfg file:
    [sound]
    midi_backtrack=true



[ view entry ] ( 783 views ) permalink print article

So, the BlackBerry PlayBook went on a firesale of sorts yesterday, and I had a voucher from my awesome work, so I naturally had to go get one for super cheap.

It took about 2 hours in total to get the SDK installed and Drumpster ported... The WebOS changes making it a straight-forward port.

So now it really is time to start making a sensible directory structure for the builds, getting some sort of source control up and running, and finally proceeding with work on improving Drumpster and taking it forwards, instead of sideways.

Fortunately being awesome is not a crime, unlike being a foreigner...
Due to me not coming from an English speaking country, and clearly not having any IT skills, I will have to leave the UK soon, hopefully ending up in Sweden, after which I can hopefully focus on making Drumpster something usable.

Always hoping...

[ view entry ] ( 311 views ) permalink print article

So, I finally managed to get myself a TouchPad, and it's even more awesome than I thought it would be.
It's currently set up to dual boot between Android and WebOS, and it runs Ubuntu within WebOS just peachily.
WebOS just feels so good to use, the browser just _feels_ nicer to use than Android's or iOS's.

Anyway, kicking the nerdiness up a notch, man oh man is the PDK nice and easy to use, providing OpenGL and SDL from the start, with the ability to test and debug things on Windows.

The fairy tale version of my porting story: I barfed up a bit of SDL bootstrap code to create a window and handle inputs, and everything else just worked!

The real version: I am a bleeding tool. I initially looked at the PDK samples, one called "simple", which included an OpenGL ES 2 header file.
So I went on a learning escapade where I FINALLY addressed my lack of GLSL knowledge and suspiciously loving attachment to the fixed rendering pipeline.
Shaders and whatnot had never made sense to me, until I found this awesome tutorial.

So I finally had some shaders up and running, I had some hand-coded matrix maths stuff going, I had 3d models on screen and rotating and... annoyingly disappearing (some Z issue) and going all over the place.

In an effort to see what else GLES 2 provides, I decided to see if there were any other header files...
There were/are.
An OpenGL ES 1 header file.
DAMN MALE OFFSPRING OF A FEMALE CANINE!

So yes. Drumpster runs on the TouchPad fantastically.
Take that Joggler.

Oh, and I found and fixed the bug in MonkeyBot... and got it running on the BeagleBone and Bifferboard.
I'll upload the new code "soon".

[ view entry ] ( 312 views ) permalink print article

So, I finally decided to release Drumpster.
Even though the only reason it works slightly is because it is so broken (it can't even get being broken right).

The configuration/song creation tool is about 80% done, so until then, some documentation on how to do stuff is here.

Binaries for Windows, Ubuntu and OSX are available... with varying degrees of working between them.
They all load and display songs, which is all I wanted it to do for now, so yay!

I needed to rush to get this out before Uncharted 3 comes out, because otherwise it never would.
Also, this makes me feel like someone in the world might be using it, meaning I have to give this some sort of priority.

Now, back to playing!

[ view entry ] ( 243 views ) permalink print article

| Older> Last>>