May 20, 2013

OpenRGSS Progress Report - Sound & Music

I'm still doing a lot of behind the scenes work, so nothing really new since last time except for the addition of sound and music, which was kinda piece of cake as compared to the graphics engine. So this time you get to watch a small video to see how all this blends together (please watch in HD).



Comments in the video say it all I guess. If you listen carefully, however, you might notice that the music sounds a bit different than what you are used to. So you might wonder what I did to those music files to improve their quality. Well, nothing actually, and that leads me to a very interesting fact I'd like to point out.

You have surely noticed that MIDI files (.MID) tend to have poor quality. On the other hand, they are tiny in size, but then many people wrongly assume that there's a link between the two. This is true for sound files, like .WAV of .MP3 files, because the bigger they are, the more information they have, and thus the better the quality. Well then, a MIDI files does not contain sound. It's merely like a sheet music, it just stores what note it's supposed to play at what time using what instrument, and that's the reason why it takes so little space. This is also why you can easily tweak pitch, tempo, volume, instruments... track by track, using the proper editor, while sound files are somewhat "merged", raw sound, with no concept of notes or instruments in the first place.

So you're probably going to wonder, how do I get to hear a MIDI file then? Well, you just need to have a synthetizer to read the sheet music and play it back. It will do so using a sound bank, in which samples for each instrument are stored - meaning, if you followed me, that if you use another sound bank, your MIDI file will start and sound differently all of a sudden. This is very much like using a character font for text - the text data remain the same, but it's rendered differently according to which font you pick. What I previously called sound bank is sometimes referred to as soundfont, by the way.

So the reason why your MIDI files sound bad is because the default synth featured with your system has a crappy sound bank. Get a good synth and they will sound better just like magic, with no addition or tranformation whatsoever to the files themselves. The good news is that it is possible to replace Windows's default synth with another one that supports soundfonts, then you get to choose the soudfont most fitted to your taste and computer performances. The bad news is that MIDI files will still sound crappy in RPG Maker. This is because RPG Maker does call the system synth, but rather uses its own, internal synth, which sticks to the crappy sound bank, and there's nothing you can do about it. But then again, another good news is that, of course, OpenRGSS does call for the system synth to play back MIDI files, which means it does support soundfonts as long as you have a software synth installed, which supports them itself.

For this video, that's exactly what I did - downloaded a software synth (namely Coolsoft VirtualMidiSynth), downloaded a soundfont (Merlin Gold v4.10), set the synth to use the soundfont and use it as default synth for MIDI playback. Now all MIDI music that will play on my system, wherever it might come from (except for RPG Maker of course) will use the soundfont and sound nice. Note that this applies only to MIDI files, though, and that it depends on the user's system - meaning if you install the synth and soundfont to get your MIDI to play nicely, it will still sound as bad as always on the computer of someone who hasn't.

I couldn't resist recording a few pieces using either the RPG Maker playback, or the synth/soundfont combo, so that you can hear the difference. I'd like to insist that those renderings were obtained using the exact same MIDI file with no adds or modifications whatsoever.

RMXP playbackOpenRGSS playback
using VirtulMIDISynth & GeneralUser GS FluidSynth v1.44 soundfont
001-Battle01.mid
RMXP
012-Theme01.mid
RMXP
026-Town04.mid
RMXP
034-Heaven01.mid
RMXP
039-Dungeon05.mid
RMXP
044-Positive02.mid
RMXP
062-Slow05.mid
RMXP
GRABBAG.mid
Duke Nukem 3D
STALKER.mid
Duke Nukem 3D
ALIENZ.mid
Duke Nukem 3D
EXRUM.mid
Monkey Island 2
LARGSTAB.mid
Monkey Island 2
HITGM.mid
War Wind

So, I hope this post shed some light on the MIDI format and gave you a better opinion of it. More progress to be shared soon, so stay tuned and have a nice listening-to-better-MIDI experience in the meantime.

5 comments:

  1. I had absolutely no idea that's how Midi files operated. Impressed our music guy too.
    I couldn't believe the difference in the sound between the two, such an improvement.
    Loved seeing the mouse in real time operations. The idea of the F1 menu with more options makes me drool, the potential is amazing.
    Great job mate, loving everything. Subscribed to your channel, thanks for the video update.
    Cheers!

    ReplyDelete
    Replies
    1. Guess I'm bound to impress everyone at BIC. ;) Glad you like the enhanced MIDI playback, actually it goes the other way around for me since as a (casual) composer I use a MIDI editing soft that is plugged to a good quality synth so I can't help with feeling frustrated seeing how RPG Maker *downgrades* my pieces. And quality matters set aside, MIDI is such a potent and flexible format to make edits and stuff I feel it's too bad you actually have to record them played back with a good synth just for RPG Maker. As for the mouse support, it's a breeze, really, as my own user I love it. :p In the end, the Options menu shall include a lot more stuff including controls for keyboard/mouse/joystick or performances options, as well as, of course, your own options fitted to your game.

      Anyways, thanks for the add and feedback and support and everything. :)

      Delete
  2. The midi-thing is really interesting to know!
    By the way, Moonpearl. I commented on your CMS and wanted to know if you're still answering comments there or what the best way to contact you would be.

    ReplyDelete
    Replies
    1. I come and go with the mood. ;) So your comments will definitely be answered sooner or later, but you can also send me an e-mail at moonpearl12@gmail.com.

      Delete