Jump to content
This Topic

BASSMIDI Soundfont Compatible MIDI Synthesiser Driver for Windows XP/Vista/7


Recommended Posts

I definitely second Vulture's request for allowing BASSMIDI's volume to be adjusted through an engine like Odamex. I enjoy using BASSMIDI very much but it is difficult to use with Odamex because the volume of the music cannot be turned down independently.

I'm sure that if this were corrected A TON of Odamex, PRBoom, Chocolate Doom, and Eternity (as well as any other engine that uses midi and sdl_mixer) users would absolute love to use BASSMIDI.

Very happy with BASSMIDI, this is the only missing piece.

Share this post


Link to post
  Ralphis said:

I'm sure that if this were corrected A TON of Odamex, PRBoom, Chocolate Doom, and Eternity (as well as any other engine that uses midi and sdl_mixer) users would absolute love to use BASSMIDI.

Expand  


Yes. As my comment here:
http://msdn.microsoft.com/en-us/library/dd798480%28v=vs.85%29.aspx

suggests, people around here have had it with Microsoft's ridiculous decision to tie the Vista/7 software sequencer's volume level to the appplication's system audio stack volume. We need independent controls for MIDI and digital sfx output levels ;)

Share this post


Link to post

That's awesome. Would it be possible to somehow tie that into the midi control in particular? So that if I slide the midi bar in Odamex, it would actually slide that up and down instead of the Windows wave volume?

Share this post


Link to post

That volume in that control, is tied to the synth volume itself, not MIDI or any other volume. So, its independant of the system volume.

Is there a API for Odamex or something?
Not much can be done if there is no MIDI API anymore in Windows.

Share this post


Link to post

Well Odamex uses SDL_Mixer for sound (as well as almost every other Doom port that isn't ZDoom). For whatever reason, SDL_Mixer can't adjust the midi volume on Windows Vista/7 independently from the rest of the wave sounds. What this results in is either having music blaring and not being able to hear many sounds OR having to play with no music at all to hear sounds.

Many of the Doom engines (and other classic games that use midi and sdl_mixer) have been looking for a solution to this that also is compliant with the GPL. I'm no expert on these sorts of affairs when it comes to the fine details of things, but being able to control the BASSMIDI volume from within these engines would be a huge advantage to literally dozens upon dozens of old school game engine ports that use midi for music.

Perhaps this is all outside of the scope of your BASSMIDI windows driver, but it was worth bringing up to somebody that obviously understands midi on these newer Windows platforms since the rest of the internet has apparently not been able to figure out a solution to this (except for FMOD, which uses an incompatible license and is closed source).

Share this post


Link to post

That would be easy.

Whats in testing is that the driver uses some registry keys for internal synth settings.

These settings in the config are controlled by:

  Quote

void load_settings()
{
long lResult;
DWORD voices;
DWORD volume;
CRegKeyEx reg;
lResult = reg.Create(HKEY_CURRENT_USER, L"Software\\BASSMIDI Driver");
reg.QueryDWORDValue( L"voices",voices);
reg.QueryDWORDValue( L"volume",volume);
reg.Close();
slider_voices.SetPos(voices);
slider_volume.SetPos(volume);
}

void save_settings()
{
DWORD voices = slider_voices.GetPos();
DWORD volume = slider_volume.GetPos();
HKEY hKey, hSubKey;
long lResult;
CRegKeyEx reg;
lResult = reg.Create(HKEY_CURRENT_USER, L"Software\\BASSMIDI Driver");
reg.SetDWORDValue(L"voices",voices);
reg.SetDWORDValue(L"volume",volume);
reg.Close();
}

Expand  


Note that the CRegKeyEx code is WTL, but should be very easy to port to other Doom based stuff. "voices" is from 0 to 256, where 0 is unlimited. "volume" is a linear value from 0 to 10000.

All this is subject to change.

Of course, that fucks up because then you need to set the volume back to where you want it for other apps. Maybe thats something the end users can deal with.

Share this post


Link to post
  mudlord said:
Expand  


I like the looks of that new config utility :) BTW, any chance of a "global reverb" slider of sorts that I mentioned over in the XMPlay forums? I'm no coder by any sense of the term (so's this all looks like gobbledygook to me <grin>), but I think Ian had posted a possible way to implement something like this here -> http://www.un4seen.com/forum/?topic=5337.msg86791#msg86791 .

Share this post


Link to post

What settings do you want changed?
Static soundfont loading is possible for those insane enough to try. Along with volume controls (I tested it).

Share this post


Link to post
  mudlord said:

What settings do you want changed?

Expand  


Something like a global reverb slider that could dramatically increase (or decrease) the reverb even moreso than the usual reverb MIDI controllers (CC#91) embedded in any given MIDI file (overriding the embedded MIDI controllers).

Something like what the XMPlay MIDI plugin can do in the lower-right of this pic -> http://www.cmoo.com/snor/weeds/SoundFonts/XMPlay/XMPlay_MIDI_Mixer_Panel.gif :)

AFAIK, Ian had posted some way to do this within this message post -> http://www.un4seen.com/forum/?topic=5337.msg86791#msg86791 , but (as a non-coder) I dunno if it's possible.

Share this post


Link to post
  • 3 weeks later...

Will have to take a look at this later tonight. :) Got some new soundfonts to test with it, as well. Crisis GM is sounding pretty neat on my Desktop.

Share this post


Link to post
  • 1 year later...

Hiya Folks,

Long time, no type. Just a few heads-ups:

MudLord finally created a PERMANENT home for the BASSMIDI Driver at http://www.mudlord.info/bassmididrv .

FYI, the driver has went through quite a bit of changes, and the latest release version is 3.1. One of the MOST EXCELLENT features of this new version is the SUPER LOW LATENCY that could be seen in v1.06 of the driver (in other words, perfect for realtime performance and sequencing)! Also, this new version supports packed/compressed SoundFonts, and includes a SoundFont packer utility :)

Anyhow, surf here: http://www.mudlord.info/bassmididrv

...and the direct download is here:

http://www.mudlord.info/bassmididrv/bassmididrv.exe

P.S. Directly from the BASSMIDI Driver readme:

  Quote

Installation
------------
First-Time Installation:

1) Download the latest released version of the BASSMIDI Driver from http://www.mudlord.info/bassmididrv/bassmididrv.exe .

2) Run the installer (BASSMIDIDrv.exe). The installer will register the BASSMIDI Driver with the system.

3) Configure the desired SoundFont usage using the included BASSMIDI Driver Configuration Utility (BASSMIDIDrvcfg.exe).

Upgrade Installation:

1) Download the newly released version of the BASSMIDI Driver from http://www.mudlord.info/bassmididrv/bassmididrv.exe .

2) Run the new installer (BASSMIDIDrv.exe). You will be prompted to uninstall the previous version of the BASSMIDI Driver.

3) Run the new installer again (BASSMIDIDrv.exe), and follow the instructions for the "First-Time Installation" section above.

Expand  

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...