Page last updated: December 12, 2008.

BGM 2.0

BASS.DLL for Game Maker

Unfortunately, I am no longer able to continue working on BGM or provide support for it on a reasonable basis. I am simply too busy trying to keep up with real life and I don't have time for it anymore. Besides that, I am no longer an active member of the Game Maker Community or YoYo Games, and no longer use Game Maker, so it doesn't make sense to continue to develop anymore.

I had a fun time working on it and providing what help I could offer, but the time has come for me to move on. Sorry, everybody, but that's the way it has to be...

- Brad Harms (a.k.a. The Music Guy)

What BGM Is

It is an extremely simplistic front-end to Un4seen.com's BASS.DLL that acts as a bridge between BASS and Game Maker. In other words, it is a system that uses Game Maker's functionality to use external DLL files as a means to improve Game Maker's music-playing abillities. In other other words, BGM lets you play all sorts of tracked music formats like MOD, IT and XM in your Game Maker games.

Feature List

Frequently Asked Questions

How do I make a module?

Use a module tracker, such as MilkyTracker. Making GOOD music, however, requires a lot of time and experience. I cannot give those to you, though, so don't ask!

What is the difference between "tracked" and "sampled" formats?

Tracked modules (XM, MOD, MO3, ...) are files that contain small sound clips, called samples, and a series of notes and other information used to play those samples over the speakers at varying frequency and amplitude. Each file contains the equivalent of a book full of sheet music (with note pitch, note length, volume, and other effects) and a bunch of musical instruments (the samples) to play that music. Modules are typically smaller than sampled audio because the module's samples are usually very short (a few seconds or less) and the "sheet music" does not occupy a lot of space, even when there is a lot of it.

Sampled audio (WAV, MP3, ...) is pure audio data that is just played over the speakers. The data is a digital representation of the air vibrations that vibrate your eardrums and allow you hear sound. Unlike tracked modules, sampled audio is very difficult for computers to break down into its individual instruments and notes: There is no "sheet music," there is only pure sound.

How do I convert from tracked module to sampled audio?

There are many ways to do it. The best way is to find a module tracker that has the capability to export modules to a sampled format, such as WAV. This is essentially a faster way of recording the audio output of the tracker to a file. Many trackers have this feature. Some can even export to compressed sampled formats like WAV and OGG. If you have a tracker that can only export to WAV or some other non-compressed format, you can use a compression utility like LAME or Vorbis...unless you don't mind a WAV file that is 20 MB or bigger. :)

Another way to do it is to use a loopback cable and audio-recording software, like Audacity. You simply plug the loopback cable into your the speaker/headphone and microphone jacks of your computer, play the module, then record it with your recording software.

How do I convert from sampled audio to a tracked module?

You can't. As I said before, this would require a highly sophisticated sound-analyzing process that does not presently exist in the form of software. However, it isn't too difficult to use a tracker to re-create a song manually by ear. Alternatively, you can search the net to see if anyone has already done this for a particular song.

Is there a way to use tracked attributes (ex. "speed", "bpm", "amplify") on sampled audio, such as MP3?

No. It is absolutely impossible. Tracked music is just far too different from sampled audio for module attributes to be used with sampled songs. "speed", "bpm", "samplify", and other attributes marked as type 'M' control the way the module "sheet music" is read and played. It doesn't even make sense to apply them to sampled audio because sampled audio is pure sound.

If "speed" can't be used with sampled audio, how can I speed it up or slow it down at run time?

Use the "cFreq" attribute.

Is there a way to play a song at a frequency higher than 100,000?

No. 100,000Hz is a limitation of BASS.DLL, the software that BGM relies on for audio playback and manipulation, and there is no way around it. If you have, for example, a sampled song that plays at 50,000Hz by default and you want to speed it up faster than twice that much, you will have to resample the song at a lower frequency using other software.

Help

Before you do anything else you should always read the FAQ above and the instructions:

View the Readme Online (This is also included with the download)

If that does not help you, you can post a help message on the official BGM topic at YoYoGames forums:

Go to the BGM forum topic at the Game Maker Community

Be warned that I probably will not respond for a very long time (if at all) when you post there. However, there are other people using BGM besides you and, therefore, other people who can help you. You are also encouraged to try and help others if they need it.

Your last line of defense is to contact me via email. However, since I am no longer actively supporting this project it may take a long time for me to answer you, if I answer you at all.

Email: musicguy@alphaios.net

Be sure to put "BGM" in the subject line somewhere.

Known Bugs

Download

List of all available downloads for BGM

Older version(s):

All content Copyright 2006-2008, Brad Harms (except where otherwise stated).