Jump to content


Photo

Gm Bassmod


  • Please log in to reply
94 replies to this topic

#1 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 22 January 2008 - 12:15 AM

GM Bassmod is an extension that allows you to play modules in your Game Maker games. There are several functions to control playback and to retrieve information while the song is being played. GM Bassmod is based on the Bassmod library developed by Ian Luck at Un4seen Developments.

GM Bassmod replaces JBFMOD, as it has much more accurate module playback than FMOD has. There are now a number of MOD DLLs around, but none have yet made it to an extension. This extension contains all the features you need for MOD playback:
  • Add MODs as resources to your games
  • Support for MOD, S3M, XM and IT
  • Playback from any position in the song
  • Control global volume, instrument volume, channel volume, amplification and panning separation
  • Advanced playback options such as repeat, surround, ramping and interpolation
  • Retrieve playback status, time, length, rows, instruments samples
  • Detect what instruments and notes are played realtime
  • MO3 support for strong file compression
  • Small application footprint (100 Kb)
  • Help file documentation
  • Available for Game Maker 6, 7 and 8
:) :P Download the GM Bassmod extension (110 Kb) or
:P Download the GM Bassmod DLL package (110 Kb)

If you want to see a demonstration of Bassmod, see La Piccola Pianola in action.

Edited by Smarty, 08 January 2010 - 01:21 PM.

  • 0

#2 thetagames

thetagames

    Informatikmeister

  • GMC Member
  • 1005 posts

Posted 22 January 2008 - 09:18 PM

I finally got to try this, and I must say, I'm quite impressed. I converted my IT track to a lossless MO3, and it played perfectly, without any distortion or anything. I will probably use this in my next game.
  • 0

#3 Palondrome

Palondrome

    Innovation

  • New Member
  • 159 posts

Posted 23 January 2008 - 12:43 AM

I tried to install the extension but:
Posted Image
:)
Then I download the :D one and tried to use it but the same sort thing happened.
Posted Image

Grrrrr, I am sick of things not working with VISTA!!!!!!!!!!!!!!

Edit: I downloaded La Piccola Pianola and it works fine. It looks REALLY good!

Edited by Palondrome, 23 January 2008 - 12:55 AM.

  • 0
BOO

#4 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 23 January 2008 - 01:03 AM

Thanks for the comment, thetagames.

Palondrome, with regard to GM7, I expect that you do not have the privileges that are required to install extensions... Keep in mind that under GM7 the extensions are installed in a subdirectory of Game Maker, and that you may not have the rights to copy files there. Try it as an administrator.

For GM6 - how can you run any Game Maker 6 game under Vista? They need conversion before they can run, as far as I know. So I don't expect any game to run from the GM editor.
  • 0

#5 Palondrome

Palondrome

    Innovation

  • New Member
  • 159 posts

Posted 23 January 2008 - 02:09 AM

For GM6 - how can you run any Game Maker 6 game under Vista? They need conversion before they can run, as far as I know. So I don't expect any game to run from the GM editor.

<{POST_SNAPBACK}>


I didn't use :P , I used the "DLL package" which has a :P next to it, hence "Then I downloaded the :GM6: one" ;)

Palondrome, with regard to GM7, I expect that you do not have the privileges that are required to install extensions... Keep in mind that under GM7 the extensions are installed in a subdirectory of Game Maker, and that you may not have the rights to copy files there. Try it as an administrator.

<{POST_SNAPBACK}>


I have installed extensions before without any trouble, I wonder why this one is different :blink:
I ran GM as an administrator and... IT WORKED!

I haven't tested and fiddled with it yet, but it looks like a very nice DLL

Good work,
Palondrome
  • 0
BOO

#6 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 23 January 2008 - 12:31 PM

I didn't use  :P , I used the "DLL package" which has a  :P  next to it, hence "Then I downloaded the  :GM6:  one"  ;)

Ah, sorry. In that case I'm interested in the commands you executed that gave you that unexpected error, because it definitely has a different cause than the installation of the extension.

I have installed extensions before without any trouble, I wonder why this one is different  :blink:

I have no clue. All Game Maker does when installing the extension is write a CHM, GED and DAT file into the extensions directory. The first is the help file, the second is a file that contains the definitions of the extension and the third is a package containing the external files (such as DLLs). Vista should see no difference between one extension or the next. Maybe you installed them as an administrator before?

Anyway, glad you got it to work.
  • 0

#7 Palondrome

Palondrome

    Innovation

  • New Member
  • 159 posts

Posted 24 January 2008 - 08:27 AM

In that case I'm interested in the commands you executed that gave you that unexpected error, because it definitely has a different cause than the installation of the extension.


Ahh... That was my own mistake - I didn't call it correctly - The help file didn't seem to work so I assumed that there were no arguments for the Installation of it, then the help file decided to help me and told me that there are three. :)

This DLL is very powerful and relatively easy to use, it played my song flawlessly and showed all the instruments (all 31 of them) but in ASCII values. Is there an easy way tho convert ASCII <-> Dec?
Nevertheless, A very good DLL :o

Palondrome. :)
  • 0
BOO

#8 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 24 January 2008 - 10:18 AM

Ahh... That was my own mistake - I didn't call it correctly - The help file didn't seem to work so I assumed that there were no arguments for the Installation of it, then the help file decided to help me and told me that there are three. :)

I've spent way too much time on making a nice help file, so you better read it. :)

However, I strongly suggest you use the extension and not the DLLs if you use Game Maker 7. The advantage of extensions is that the parameters are listed in the panel below the script editor. It also gives you an error when you check the script, telling you that you didn't specify enough parameters.

This DLL is very powerful and relatively easy to use, it played my song flawlessly and showed all the  instruments (all 31 of them) but in ASCII values. Is there an easy way tho convert ASCII <-> Dec?

<{POST_SNAPBACK}>

To get the note number (0-119), use

note=ord(strinc_char_at(notes,n))-32;

Where n is the position in the string and notes is the result of your bmod_get_notes(instrument) call.

I had to pass them as a string because Game Maker DLLs can't return arrays. On the other hand, you can check each note individually, but it's generally better to get a string of notes.
  • 0

#9 Ryan-Phoenixan

Ryan-Phoenixan

    GMC Member

  • New Member
  • 211 posts

Posted 02 February 2008 - 03:13 AM

This is a pretty good extension. :wacko: I'm already using BASS for GameMaker for playing Ogg Vorbis and MP3, but I'll probably use this if I'm only using modules. If this ever gets updated to expand upon more formats as BGM did though, I'd definitely use this for everything.

Edited by Ryan-Phoenixan, 02 February 2008 - 03:14 AM.

  • 0

#10 Dark__Echeos

Dark__Echeos

    GMC Member

  • New Member
  • 31 posts

Posted 02 February 2008 - 03:35 AM

Smarty = GM god?
i don't know, but this extension is awsome! i've been waiting for a mod extension; the dll's just don't cut it. >_<


***** <--- five out of five stars!
  • 0

#11 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 03 February 2008 - 09:39 PM

Thank you Dark__Echeos.

This is a pretty good extension. :) I'm already using BASS for GameMaker for playing Ogg Vorbis and MP3, but I'll probably use this if I'm only using modules.  If this ever gets updated to expand upon more formats as BGM did though, I'd definitely use this for everything.

<{POST_SNAPBACK}>

MP3 and OGG files are very different from MOD music (which is closer to MIDI). People aren't likely going to use both in the same game so I frankly don't see a point in trying to unite that functionality in a single library.

Also, a lot of the functions in GM Bassmod make perfect sense for MOD files but would never work for MP3/OGG files. If I was to throw them together you get a very inconsistent command set. I think separate, small building extensions make more sense than big unwieldy ones.
  • 0

#12 Ryan-Phoenixan

Ryan-Phoenixan

    GMC Member

  • New Member
  • 211 posts

Posted 04 February 2008 - 01:29 AM

Good point. :)

Still a pretty good and simple extension.
  • 0

#13 Ominiq

Ominiq

    www.ominiq.com

  • Validating
  • 102 posts

Posted 04 February 2008 - 07:37 PM

Great work! I didn't have any luck with BGM, so it's nice to finally see an alternative. I was just fiddling around with FMOD at the moment, and although it has a lot of nice features, I think it's overkill for my project.

The only thing I miss is the ability to play multiple mods at once. I thought of tracking the sound effects, but that's not an option now.
Ominiq - ...

#14 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 04 February 2008 - 09:37 PM

The only thing I miss is the ability to play multiple mods at once. I thought of tracking the sound effects, but that's not an option now.

<{POST_SNAPBACK}>

It's for music playing rather than sound effects. I'd suggest tracking the sound effects and recording them as WAV in Modplug Tracker, then importing them as regular sound clips in Game Maker.
  • 0

#15 Ominiq

Ominiq

    www.ominiq.com

  • Validating
  • 102 posts

Posted 05 February 2008 - 05:28 PM

The only thing I miss is the ability to play multiple mods at once. I thought of tracking the sound effects, but that's not an option now.

<{POST_SNAPBACK}>

It's for music playing rather than sound effects. I'd suggest tracking the sound effects and recording them as WAV in Modplug Tracker, then importing them as regular sound clips in Game Maker.

<{POST_SNAPBACK}>

Yeah, that's pretty much plan B. Thanks for answering, and I hope to show a creation using it soon.
Ominiq - ...

#16 LoopStan

LoopStan

    North-See Developer

  • GMC Member
  • 1398 posts

Posted 09 February 2008 - 07:52 PM

I was wondering if you could post an example? I would like to see exactly how it runs. That will make it so i can use it. :GM7:
  • 0

Posted Image


#17 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 10 February 2008 - 11:34 AM

There's a very neat, slick-looking help file I wrote included in the package, in which there is a very small example on how to start GM Bassmod, load a song and play it. Why do I ever bother to write documentation... :)
  • 0

#18 Daniel9999999

Daniel9999999

    Kid Klown Rocks

  • GMC Member
  • 439 posts
  • Version:GM8

Posted 11 February 2008 - 07:34 PM

Man, this GEX is fine but, you removed the .PAK file support. Why you did this?
  • 0

Hello, this is your fellow member Daniel. After a long hiatus, I am probably back soon.

Not quite sure what I can do in terms of games, I can program a game but I get lost in

design.


#19 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 11 February 2008 - 09:25 PM

Man, this GEX is fine but, you removed the .PAK file support. Why you did this?

<{POST_SNAPBACK}>

Because I thought it to be pointless. Game Maker already has a pack feature through the Include tab. It is child's play to include your songs and then extract / load them at will. Why duplicate functionality?
  • 0

#20 Daniel9999999

Daniel9999999

    Kid Klown Rocks

  • GMC Member
  • 439 posts
  • Version:GM8

Posted 28 February 2008 - 11:23 PM

Ohhh now I understand, but, It appears that you don't like to make drag and drop interfaces, Or is that you don't like action libraries?
  • 0

Hello, this is your fellow member Daniel. After a long hiatus, I am probably back soon.

Not quite sure what I can do in terms of games, I can program a game but I get lost in

design.


#21 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 02 March 2008 - 11:11 PM

Ohhh now I understand, but, It appears that you don't like to make drag and drop interfaces, Or is that you don't like action libraries?

<{POST_SNAPBACK}>

I have a few reasons for this. First of all, there are quite a few functions and I don't think they would all fit into a neat small D&D environment. Second, many of the functions retrieve information and would typically be used in expressions or draw commands, not serving any D&D purpose by themselves. Third, I do not see any advantage in having D&D equivalents to the functions. And last, people who know how to works mods are old enough to have learned scripting. :GM072:
  • 0

#22 Daniel9999999

Daniel9999999

    Kid Klown Rocks

  • GMC Member
  • 439 posts
  • Version:GM8

Posted 22 March 2008 - 06:26 PM

My final score to your GEX is 8/10 A-, Very good! but slow downs massively in Pentium III 750 MHz with 128 MB of Memory and even with a 1500 MB Pagefile!!!
  • 0

Hello, this is your fellow member Daniel. After a long hiatus, I am probably back soon.

Not quite sure what I can do in terms of games, I can program a game but I get lost in

design.


#23 Carnivac

Carnivac

    The Hunter

  • GMC Member
  • 3300 posts
  • Version:GM:Studio

Posted 23 March 2008 - 09:34 AM

Real nice work. This MO3 support interests me greatly. Never occured to me you could make tracker modules even smaller. Just got me the compressor thing and tested it on Pug Fugly's Return To Sector 9 soundtrack. The 12 modules that took up 1.63MB compress to 703k using the OGGEnc and 776k using the MP3 one. Think I'll be using that OGG compressor and this GM Bassmod of yours in all my projects that use tracker modules.
  • 0

#24 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 24 March 2008 - 03:28 PM

My final score to your GEX is 8/10 A-, Very good! but slow downs massively in Pentium III 750 MHz with 128 MB of Memory and even with a 1500 MB Pagefile!!!

Memory size has no significant influence. And apart from MO3 decompression once the song is loaded, the extension should have little to no overhead playing the module using Bassmod. Considering you have below-average system specs, my guess is that you are trying to play a channel-heavy and polyphony-heavy module - Bassmod may have a lot of mixing to do.

Real nice work. This MO3 support interests me greatly. Never occured to me you could make tracker modules even smaller. Just got me the compressor thing and tested it on Pug Fugly's Return To Sector 9 soundtrack. The 12 modules that took up 1.63MB compress to 703k using the OGGEnc and 776k using the MP3 one. Think I'll be using that OGG compressor and this GM Bassmod of yours in all my projects that use tracker modules.

Thanks for the feedback. I've been using the LAME compressor myself, which, for me, resulted in even better compression than with MP3 or OGGEnc. You should try again for the RTS9 tracks. The good thing about the MO3 compressor tool itself is that it allows you to fiddle with the quality level setting for seperate waves, reducing the file size amazingly - without noticeably degrading the sound quality. Not noticeable for games, anyway.
  • 0

#25 scream681

scream681

    Nick Larin

  • New Member
  • 1152 posts

Posted 20 April 2008 - 12:32 AM

As with Jbfmod, im totally using this in my new game(s), mod music is the best when it comes to quality compared to size, especially with mo3 compression, thanks Smarty!
  • 0

Posted Image


#26 blackhawkrobbo

blackhawkrobbo

    GMC Member

  • GMC Member
  • 1121 posts
  • Version:GM:Studio

Posted 24 May 2008 - 05:16 PM

I think ill make an example for both GM6 and GM7 for the GM Bassmod, is that okay?
Something like the JBFMOD demo player. :lol:
  • 0

#27 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 25 May 2008 - 10:49 PM

As with Jbfmod, im totally using this in my new game(s), mod music is the best when it comes to quality compared to size, especially with mo3 compression, thanks Smarty!

Thanks, Nick. It's always good to see it back in your games.


I think ill make an example for both GM6 and GM7 for the GM Bassmod, is that okay?
Something like the JBFMOD demo player. :)

I've done that twice myself, previously, but this time I thought it better to have people concentrate on games rather than again a music player. So thanks, but no thanks. At least, you can make whatever you wish, but I'm not going to include it in this distribution.
  • 0

#28 Theoriginalunderdog

Theoriginalunderdog

    Just burn it

  • GMC Member
  • 148 posts
  • Version:GM:Studio

Posted 14 July 2008 - 07:54 PM

What an amazingly simple extension. Excellent job, this saves me a pretty large amount of time.
  • 0

#29 DarkFlame

DarkFlame

    GMB Member...wtf?

  • GMC Member
  • 2167 posts

Posted 31 July 2008 - 11:35 PM

Made a great little simple player with this,....not to many features as of yet but it works and does everything that is needed to open>play>pause>resume>stop .mod files

Thanks Smarty

Edited by DarkFlame, 31 July 2008 - 11:35 PM.

  • 0

#30 G.I.L.

G.I.L.

    GMC Member

  • New Member
  • 64 posts

Posted 16 November 2008 - 06:14 PM

Help file does not work for me need link
  • 0

#31 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 19 November 2008 - 10:21 PM

Help file does not work for me need link

Very clear problem description. I'm so perfectly capable of understanding what is wrong now that I can give an immediate resolution.

If the help file doesn't "work" for you, chances are that no help file works for you because of a problem with the HTML Help application that displays these help files which is available on all Windows installations. But maybe, just maybe, you only want to look at the help file without installing the GEX, or you do not have a registered version of GM7 in front of you, or you just want people to hand the goodies to you as you are waiting for it. Either way, I'm not going to upload the help file. If you really have a technical problem to watch the help file, then uploading another copy isn't going to do anything to sort it out.
  • 0

#32 ultim8p00

ultim8p00

    GMC Member

  • GMC Member
  • 282 posts

Posted 24 December 2008 - 07:30 AM

I really don't understand why there isn't an fmod_get_volume() parameter. I mean, you even have fmod_get_channelvolume() which I would imagine is harder to do.

Overall, very good work though. GM BASS has more robust functions, but this works perfectly with saved files unlike GM BASS. I recommend this to anyone over GM BASS if they are going to have savegames.

Edited by ultim8p00, 24 December 2008 - 07:31 AM.

  • 0

#33 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 24 December 2008 - 01:55 PM

I really don't understand why there isn't an fmod_get_volume() parameter. I mean, you even have fmod_get_channelvolume() which I would imagine is harder to do.

The reason that it's not there is because in reality, it doesn't exist. The underlying library has no global volume control for the song. I've fixed this by letting bmod_set_volume(vol) change the volume of all channels individually. However the individual channel volumes can be set to different values, both in the module itself as in GM Bassmod, which means there cannot be one, single, global volume. I could take a mean value for it, but it wouldn't reflect the real volume of the module, especially not when you adjust the volume using that value. So instead, I added functions to set the volume by a delta value - the best way to reach fade-in and fade-out effects.

And it's actually bmod_, not fmod_. :D FMOD has nothing to do with it.

Overall, very good work though. GM BASS has more robust functions, but this works perfectly with saved files unlike GM BASS.

I wonder what you mean by 'more robust'. I focused on module playback, but there are other differences - for example, for commercial projects this library is half the cost of full BASS implementations. And as far as I know no other module playback library can do this.

Edited by Smarty, 24 December 2008 - 01:57 PM.

  • 0

#34 ultim8p00

ultim8p00

    GMC Member

  • GMC Member
  • 282 posts

Posted 24 December 2008 - 05:16 PM

I really don't understand why there isn't an fmod_get_volume() parameter. I mean, you even have fmod_get_channelvolume() which I would imagine is harder to do.

The reason that it's not there is because in reality, it doesn't exist. The underlying library has no global volume control for the song. I've fixed this by letting bmod_set_volume(vol) change the volume of all channels individually. However the individual channel volumes can be set to different values, both in the module itself as in GM Bassmod, which means there cannot be one, single, global volume. I could take a mean value for it, but it wouldn't reflect the real volume of the module, especially not when you adjust the volume using that value. So instead, I added functions to set the volume by a delta value - the best way to reach fade-in and fade-out effects.

And it's actually bmod_, not fmod_. :D FMOD has nothing to do with it.

Overall, very good work though. GM BASS has more robust functions, but this works perfectly with saved files unlike GM BASS.

I wonder what you mean by 'more robust'. I focused on module playback, but there are other differences - for example, for commercial projects this library is half the cost of full BASS implementations. And as far as I know no other module playback library can do this.

Oh my bad, I got those confused. By more robust, I mean that GM BASS has more functions that you don't have to code in yourself. For example, to fade, you can just call the fade function and it fades it automatically. Unless there is something I'm not getting, with bmod you have to manually fade the volume yourself by changing deltavolume every step or something, correct? GM BASS can also do what you showed in the link, although I have to admit that it would be much more difficult since yours is more precise.

And also, there is something I would like you to help me with. Everytime I restart the game, it freezes. What's going on? I'm using GM7, so I know I don't have to call bmod_close before restarting. Here's what happens:

I start the game
The game executes bmod_init() on startup
Adds a file and stores its index to global.gamesong
Plays the song at the title screen
When you press start, it stops the current music, goes to level one, where the game switches music and plays the new file.
Now, here's the problem. Since the game has all persistent rooms, I have to restart the game.
When you press Escape or you die, I have it so the game goes to a restart room, where it stops the music and restarts the game. But the game does not restart. It just freezes. It's still responding, and my computer is not lagging up. It just freezes. I can change resolutions and show the game information, but that's it. I know it's bmod that's doing it because when I take out bmod it runs fine.

What am I doing wrong here? Do I have to call bmod_close() or bmod_delete() or something?

EDIT: I just ran a little test and I think there might be a bug somewhere, because the exact same thing happens. I made a blank game, and added an object that plays music when you press a button, and restarts the game when you press another button. When you restart the game exactly eight times, the game just freezes and won't restart.

Here's the test.
Download test.gmk
You'll have to find an .it file and replace the one included

EDIT2: After a lot of testing, I can pretty much say that either my computer is the problem, which I highly doubt (it runs Crysis), or your extension has a very serious bug that makes it pretty much unusable for games that require a game restart.

Edited by ultim8p00, 24 December 2008 - 08:00 PM.

  • 0

#35 icuurd12b42

icuurd12b42

    Self Formed Sentient

  • GMC Elder
  • 18181 posts
  • Version:GM:Studio

Posted 24 December 2008 - 11:32 PM

And it's actually bmod_, not fmod_. ;) FMOD has nothing to do with it.

hehehe.

And as far as I know no other module playback library can do this.

Now that is cool. Does it do it for all music bank based formats (midi, it, mod,...). I wish I could have this in mine.

And can you scan ahead, for like Guitar Hero type games? I guess you could play one sound instance muted 4 seconds ahead to get the incomming notes

Oh, and can you mute a instrument channel?
  • 0

gmcbanner.pnggmcbanner_tools.png

ICU Live Tutoring Through Slack or Skype | My Tools Page follow.png

I FRANTICALLY MADE MY 18000 POST TOPIC BEFORE MIKE ANNOUNCED A DELAY...
Now I'm squirming not to hit that reply button


#36 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 27 December 2008 - 06:30 PM

Oh my bad, I got those confused. By more robust, I mean that GM BASS has more functions that you don't have to code in yourself. For example, to fade, you can just call the fade function and it fades it automatically. Unless there is something I'm not getting, with bmod you have to manually fade the volume yourself by changing deltavolume every step or something, correct? GM BASS can also do what you showed in the link, although I have to admit that it would be much more difficult since yours is more precise.

Mine reads instruments and notes. Other extensions don't, they only get information by other sources such as equaliser functionality or even timelines, but it's not the same thing.

Here's the test.
Download test.gmk
You'll have to find an .it file and replace the one included

Thank you. Interesting find, I'll have to look into it. By the look of it, the game locks up on game_restart(). I'm not yet sure whether it is caused by my extension or by Game Maker not doing things properly when restarting the game. I'll try and find out.

Now that is cool. Does it do it for all music bank based formats (midi, it, mod,...).

Only for module types. Still, the Modplug Tracker allows you to convert a MIDI to MOD format. Actually the examples I used in La Piccola Pianola were all originally MIDIs.

And can you scan ahead, for like Guitar Hero type games? I guess you could play one sound instance muted 4 seconds ahead to get the incomming notes

You have to realise that Guitar Hero does not read notes while playing a song, rather the key points at which a player needs to strike which key. Guitar Hero wouldn't be what it was if you would really need to play all the notes. :)

No, it can't read ahead, but it doesn't need to. Since the notes that are going to be played have no relation to the keys that need to be struck, the song needs to be 'marked' with the keystrokes instead. Those markings can appear on the notes, but also several steps in advance. This requires editing the song in some way to give it the markers required for playing, which is no doubt what the creators of Guitar Hero did as well.

Another way is simply to pre-read the song at some step during development to see where the markers are, and keep an array recording of that for song playback.

Oh, and can you mute a instrument channel?

That's a MIDI interpretation. Modules have channels and they have instruments. Multiple instruments can be played on a channel, but only one at a time. You can mute either a channel or an instrument by setting its volume to 0.
  • 0

#37 icuurd12b42

icuurd12b42

    Self Formed Sentient

  • GMC Elder
  • 18181 posts
  • Version:GM:Studio

Posted 27 December 2008 - 10:56 PM

And can you scan ahead, for like Guitar Hero type games? I guess you could play one sound instance muted 4 seconds ahead to get the incomming notes

You have to realise that Guitar Hero does not read notes while playing a song, rather the key points at which a player needs to strike which key. Guitar Hero wouldn't be what it was if you would really need to play all the notes. :)

Of course... I made a MIDI reader to load all the notes in GM to sink to the playback were you would see all the comming notes. Impossible to play. But it could be used for other things like a animating virtual band members and intruments like those nifty 3d movies...

http://www.youtube.c...feature=related

I always wanted to make one of those but live...

No, it can't read ahead, but it doesn't need to. Since the notes that are going to be played have no relation to the keys that need to be struck, the song needs to be 'marked' with the keystrokes instead. Those markings can appear on the notes, but also several steps in advance. This requires editing the song in some way to give it the markers required for playing, which is no doubt what the creators of Guitar Hero did as well.

Another way is simply to pre-read the song at some step during development to see where the markers are, and keep an array recording of that for song playback.

They can use the tag system for mp3, wma audio... Or the event system for MIDI... MIDI has a few events you can use. Right now those are used for kareoky, to display text, but you can insert an event (or tag), say 5 seconds before the actual note so the software starts to draw the note and another event right where the player is supposed to hit the note... All the data needed in the actual music file.

Oh, and can you mute a instrument channel?

That's a MIDI interpretation. Modules have channels and they have instruments. Multiple instruments can be played on a channel, but only one at a time. You can mute either a channel or an instrument by setting its volume to 0.

Cool, so for when you miss a note, in GH or Rock Band, you mute the track for a second...
  • 0

gmcbanner.pnggmcbanner_tools.png

ICU Live Tutoring Through Slack or Skype | My Tools Page follow.png

I FRANTICALLY MADE MY 18000 POST TOPIC BEFORE MIKE ANNOUNCED A DELAY...
Now I'm squirming not to hit that reply button


#38 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 27 December 2008 - 11:39 PM

Of course... I made a MIDI reader to load all the notes in GM to sink to the playback were you would see all the comming notes. Impossible to play. But it could be used for other things like a animating virtual band members and intruments like those nifty 3d movies...

That is what I set out to do in one of my many never completed projects. :)

http://www.youtube.c...feature=related

I always wanted to make one of those but live...

Yes, I'm familiar with that pearl of an animation. But reading ahead isn't enough, which is the reason why its creators have created more powerful software to time it. Technically speaking, of course, there is no problem in doing just that with what we currently have (minus the 3D, of course).

They can use the tag system for mp3, wma audio... Or the event system for MIDI... MIDI has a few events you can use. Right now those are used for kareoky, to display text, but you can insert an event (or tag), say 5 seconds before the actual note so the software starts to draw the note and another event right where the player is supposed to hit the note... All the data needed in the actual music file.

Well, that's the point - that's fairly easy to do with MOD files. For GM Bassmod's predecessor, JBFMOD, I did this to mark the key positions of the lyrics in the song. See here for the song and the source.

Cool, so for when you miss a note, in GH or Rock Band, you mute the track for a second...

You could. But you would often be too late. My guess is that the better Guitar Hero games allow you to be reasonably off with your timing. I think they garble the sound instead or play some samples to overrule the original sound if you hit the wrong key.
  • 0

#39 icuurd12b42

icuurd12b42

    Self Formed Sentient

  • GMC Elder
  • 18181 posts
  • Version:GM:Studio

Posted 28 December 2008 - 12:26 AM

Of course... I made a MIDI reader to load all the notes in GM to sink to the playback were you would see all the comming notes. Impossible to play. But it could be used for other things like a animating virtual band members and intruments like those nifty 3d movies...

That is what I set out to do in one of my many never completed projects. ^_^

http://www.youtube.c...feature=related

I always wanted to make one of those but live...

Yes, I'm familiar with that pearl of an animation. But reading ahead isn't enough, which is the reason why its creators have created more powerful software to time it. Technically speaking, of course, there is no problem in doing just that with what we currently have (minus the 3D, of course).

Possibly, reading ahead, or simply playing a copy of the sound, muted, 5-10 seconds before the actual unmuted version, would allow to prep for the animation instead of playing it as it happens.


They can use the tag system for mp3, wma audio... Or the event system for MIDI... MIDI has a few events you can use. Right now those are used for kareoky, to display text, but you can insert an event (or tag), say 5 seconds before the actual note so the software starts to draw the note and another event right where the player is supposed to hit the note... All the data needed in the actual music file.

Well, that's the point - that's fairly easy to do with MOD files. For GM Bassmod's predecessor, JBFMOD, I did this to mark the key positions of the lyrics in the song. See here for the song and the source.

Nice. In the midi kareoke, the lyrics are in the tags/events themselves (as text). With a proper music editing software that supports tags, you could put lyrics and strum events right in, incuding the "get ready to play this note" tag a few seconds before the actual event, even special visual tags for the virtual lighting engineer, or notes for your virtual guitarist (when using a mp3). You then have very little to do in your engine but read the tags and react to them...

Cool, so for when you miss a note, in GH or Rock Band, you mute the track for a second...

You could. But you would often be too late. My guess is that the better Guitar Hero games allow you to be reasonably off with your timing. I think they garble the sound instead or play some samples to overrule the original sound if you hit the wrong key.


Yes, garble it (or play a garble sound on top of original) when you miss, but muted when you stop playing... They used the original segregated musics tracks to make this right, And I think they redid some of the guitar tracks... In GH3, everything but the guitar are on one track, the guitar on an other. So you can have effects on it or mute it anytime.
  • 0

gmcbanner.pnggmcbanner_tools.png

ICU Live Tutoring Through Slack or Skype | My Tools Page follow.png

I FRANTICALLY MADE MY 18000 POST TOPIC BEFORE MIKE ANNOUNCED A DELAY...
Now I'm squirming not to hit that reply button


#40 TheBlackLamb

TheBlackLamb

    GMC Member

  • New Member
  • 131 posts

Posted 12 May 2009 - 03:36 PM

Memory size has no significant influence.

You should have at least 10% of your hard-drive free to run at maximum speed, and defragmenting every once in a while helps.

My dads a IT person right now, so I would know ;)
Though I find that 15% is better :)

Anyways I find this VERY effective, as I hate exporting the fast-tracker as an OGG and then exporting it as either a MP3 or a WAV. And this is easier too (and more professional looking, as I have a whole initiation room that returns everything successful).

Though, does the XM have to be stored in the same folder as the game?
EDIT: nevermind, it works fine. :blink:

Hey, this is AWESOME!!!
Thanks!

Edited by TheBlackLamb, 12 May 2009 - 05:32 PM.

  • 0



#41 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 13 May 2009 - 10:00 PM

Memory size has no significant influence.

You should have at least 10% of your hard-drive free to run at maximum speed, and defragmenting every once in a while helps.

My dads a IT person right now, so I would know :D
Though I find that 15% is better :D

Good. But before you mix into a discussion about performance next time, ask dad what the difference is between drive space and physical memory. We were talking about the latter. Physical memory use never affects performance, unless you use it all up and run into memory file swapping. And you want to start closing applications first when that happens.

Hey, this is AWESOME!!!

Cheers.
  • 0

#42 amorbis2012

amorbis2012

    GMC Member

  • New Member
  • 26 posts

Posted 27 May 2009 - 07:56 PM

I've been trying out the BassMod extension. but i'm having a slight problem with it not picking up the volume commands from the .XM file...

in my music file, i have the volume of the notes controlled directly in the channels(example below)...

Posted Image

is there any way to get the extension to read the commands?
  • 0
currently working on: Super Go-Kart Racer
game type: Racing
game style: 8bit
code: 70%~
sprites: 60%~
music/sounds: 80%~
Livestream: http://www.livestrea...lverblazestream

#43 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 27 May 2009 - 11:42 PM

In some cases you need to specify additional options to indicate that the file should be played according to, I think in your case, Fast Tracker 2. You can use this command to change options for a particular song:

bmod_set_options(index,repeat,surround,ramp,nonint
er,mode,stopback,posreset)


See the help file for details on what each setting does. I think you want to set mode to 2.
  • 0

#44 amorbis2012

amorbis2012

    GMC Member

  • New Member
  • 26 posts

Posted 28 May 2009 - 02:20 PM

I've set the "mode" to 2 but it still doesn't read?

Posted Image
  • 0
currently working on: Super Go-Kart Racer
game type: Racing
game style: 8bit
code: 70%~
sprites: 60%~
music/sounds: 80%~
Livestream: http://www.livestrea...lverblazestream

#45 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 28 May 2009 - 02:58 PM

Oh, I see you're using MadTracker. If I'm not mistaken, MadTracker has its own format, I'm guessing you have to save as XM before you can use the file. If wonder if there is anything quirky with that export, because so far I haven't experienced this issue with other XM files (or I haven't noticed them, but the reproduction always seemed right).

Try opening the MT2 file (not the XM file) in e.g. Modplug Tracker and play it to see if the volume changes are coming through, then save it as XM file from there to see if it works better.
  • 0

#46 amorbis2012

amorbis2012

    GMC Member

  • New Member
  • 26 posts

Posted 28 May 2009 - 07:24 PM

yes i use madtracker. but i use the "FastTracker 2" mode... it saves it as a XM file.

I'll try loading the file into Modplug Tracker anyway to see how it transfers.

EDIT: -------------------------------------------

I put the file into ModPlug Tracker, and it has the proper volume effects...

Posted Image

Edited by amorbis2012, 28 May 2009 - 07:35 PM.

  • 0
currently working on: Super Go-Kart Racer
game type: Racing
game style: 8bit
code: 70%~
sprites: 60%~
music/sounds: 80%~
Livestream: http://www.livestrea...lverblazestream

#47 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 28 May 2009 - 08:12 PM

Okay, now try and save it again as XM, and see if the saved file can be properly played.
  • 0

#48 amorbis2012

amorbis2012

    GMC Member

  • New Member
  • 26 posts

Posted 29 May 2009 - 12:54 AM

i tried it out, and it still doesn't seem to be reading the volume commands...

could it be a glitch in Bassmods programming?
  • 0
currently working on: Super Go-Kart Racer
game type: Racing
game style: 8bit
code: 70%~
sprites: 60%~
music/sounds: 80%~
Livestream: http://www.livestrea...lverblazestream

#49 Smarty

Smarty

    GMC Member

  • GMC Elder
  • 7522 posts
  • Version:GM:Studio

Posted 30 May 2009 - 11:31 AM

i tried it out, and it still doesn't seem to be reading the volume commands...

could it be a glitch in Bassmods programming?

I'm not sure where the glitch could be. If I remember well my code does some volume resets before a song starts, they might be of influence. Because I have no clue how such an obvious mistake couldn't have been noticed by Bassmod's creators. I'll have to test some XMs, but would it be possible that I get yours for testing purposes?
  • 0

#50 amorbis2012

amorbis2012

    GMC Member

  • New Member
  • 26 posts

Posted 31 May 2009 - 01:42 AM

sure thing... i'll send it asap.
  • 0
currently working on: Super Go-Kart Racer
game type: Racing
game style: 8bit
code: 70%~
sprites: 60%~
music/sounds: 80%~
Livestream: http://www.livestrea...lverblazestream