Skip to main content

Topic: BASSMIDI MIDI synthesiser for Windows XP/Vista/7 (Read 234124 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
This is a new SoundFont-based usermode MIDI system driver for Windows XP, Vista, 7 and 8.
It uses the BASSMIDI library by Ian Luck, as the synthesiser.

Features:
* Dynamic sample caching
* Unlimited polyphony
* Compressed SoundFont support
* SoundFont chaining/stacking
* Works on Windows Vista and Windows 7, including 64-bit versions.
* Support for the following controllers & events:

MIDI note events.
MIDI program events.
Channel pressure.
Pitch wheel.
Bank change MSB. (CC#0)
Modulation. (CC#1)
Portamento. (CC#65 / CC#84 / CC#5)
Volume. (CC#7)
Panning. (CC#10)
Expression. (CC#11)
Sustain pedal. (CC#64)
Soft pedal. (CC#67)
Low-pass filter resonance. (CC#71 or NRPN 121h)
Release time. (CC#72 or NRPN 166h)
Attack time. (CC#73 or NRPN 163h)
Low-pass filter cut-off. (CC#74 or NRPN 120h)
Reverb send level. (CC#91)
Chorus send level. (CC#93)
Stop all sounds. (CC#120)
Reset all controllers. (CC#121)
Release all keys. (CC#123)
Mono/poly mode. (CC#126 and CC#127, respectively.)
Pitch wheel range. (RPN 0)
Fine tuning. (RPN 1)
Coarse tuning. (RPN 2)

And presumably if GS/GM2 mode is activated:
Drum key low-pass filter cut-off. (NRPN 14knh)
Drum key low-pass filter resonance. (NRPN 15knh)
Drum key coarse tune. (NRPN 18knh)
Drum key fine tune. (NRPN 19knh)
Drum key volume level. (NRPN 1Aknh)
Drum key panning. (NRPN 1Cknh)
Drum key reverb send level. (NRPN 1Dknh)
Drum key chorus send level. (NRPN 1Eknh)

It also supports GM, GS, and XG reset System Exclusive messages, and the drum channel enabling features of GS and XG when switched into those modes. It also supports GS and possibly XG reverb preset control messages for adjusting reverb time, delay, low-pass cut-off, high-pass cut-off, and level. And chrorus delay, depth, rate, feedback, level, and chorus to reverb send level. It also supports the master volume level message.

kode54 should be thanked for making this possible. I wrote the installer and configuration app.

http://mudlord.info/bassmididrv
  • Last Edit: 02 August, 2012, 07:57:04 PM by mudlord

  • romor
  • [*][*][*][*][*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #1
Thanks kode54



How should I add Colossus?
It's one instrument per soundfont, and it seems that it can't load sflist (like foo_midi i.e.)
  • Last Edit: 29 March, 2011, 03:52:17 AM by romor

  • RichNagel
  • [*][*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #2
Hi Mudlord and Kode54,

Man... I've been looking for something like this for EONS! Heh, I've been nagging Ian Luck (the author of XMPlay/XMPlay MIDI Plugin/BASS libraries) for ages now for something like this, a "global" Windows MIDI driver of sorts based upon XMPlay's MIDI plugin.

In the last bit of discussion with him on the subject (quite some time ago) he replied, "Find someone to code it in BASS" <grin>, and now it looks like someone actually did

Anyhow, I installed the BASSMIDI MIDI Synthesizer driver... and it works GREAT!!!

From what I could tell, ZERO latency, and it sounds just like XMPlay's MIDI plugin  Running on a P4 2.666Ghz CPU with 768MB RAM under Windows XP Pro SP3, output was smooth with no glitches or stutters.

One problem for me though, it seems to completely knock out/disable Jamie O'Connell's "MIDI Yoke" patch driver (MIDI devices: "Out To MIDI Yoke: #", "In From MIDI Yoke: #", etc...). I use that driver for various things when composing MIDI music.

Other than that, it works great. Any idea as to why the driver would disable MIDI Yoke?

Anyways, thanks for a GREAT soundfont compatable MIDI driver!
  • Last Edit: 31 March, 2011, 02:52:54 AM by RichNagel

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #3
I guess the reason why it knocks out MIDI Yoke, is because it writes to a specific reg entry, to work around issues with some Creative drvers.
I guess that reg entry is used for MIDI Yoke as well, unfortunately. I guess I can try and redo the registry code to write to any other reg key which is the default WDM synth (which there is PLENTY of free slots, since the WDM driver takes a lot....heh).

Any download links for MIDI Yoke, so I can try and make a workaround? I personally use Win7 x64, if that will be a problem...
  • Last Edit: 31 March, 2011, 03:42:17 AM by mudlord

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #4
Thanks kode54



How should I add Colossus?
It's one instrument per soundfont, and it seems that it can't load sflist (like foo_midi i.e.)



One workaround until I fix that is you can reuse your foo_midi SoundFont lists. In your %systemroot% folder, copy your listfile, to "bassmidi.sflist".

  • romor
  • [*][*][*][*][*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #5
great
thanks for the tip

I used in the past MIDI Yoke (or Maple MIDI), with Putzlowitschs MIDI Mapper for Vista/7 and load SF from sfx+ then route the player/app or whatever was using MIDI which now is done without all this trouble

  • romor
  • [*][*][*][*][*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #6
also allow me to throw another thing I forgot to praise: SF that were impossible to load due to memory limitation now can be loaded thanks to dynamic handling (which I suspect is just the same feature as present in foo_midi)
  • Last Edit: 31 March, 2011, 05:33:52 AM by romor

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #7
Same feature, because of exact same synth library used.

  • RichNagel
  • [*][*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #8
I guess the reason why it knocks out MIDI Yoke, is because it writes to a specific reg entry, to work around issues with some Creative drvers. I guess that reg entry is used for MIDI Yoke as well, unfortunately.


Thanks for the info


I guess I can try and redo the registry code to write to any other reg key which is the default WDM synth (which there is PLENTY of free slots, since the WDM driver takes a lot....heh).


That would be great!


Any download links for MIDI Yoke, so I can try and make a workaround? I personally use Win7 x64, if that will be a problem...


MIDI Yoke can be downloaded from here -> http://www.midiox.com/myoke.htm . I'm not sure about issues with Windows 7, but here are the forums for MIDI Yoke (which mention installation under W7) -> http://www.midiox.com/cgi/yabb/YaBB.pl?board=MYInstall .


Again, thanks for a great MIDI driver, and any help

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #9
I posted a updated driver a while back on my site, to work around these bugs.

  • Vagabond
  • [*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #10
If I have a Creative sound card and use the Creative Sound Font Bank Manager, will I have any use for this? The prospect of lower memory usage is appealing.

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #11
If you play around with MIDI's a fair bit, sure.

The driver emulates some GS features that E-mu based synths don't do, as well as some XG features too.

So, its a GM2 level synth. Creative's hardware synth is not.. Also, if you use a LOT of SoundFonts OR you want to load more than 4GB of soundfonts easily, sure, the memory usage will be a major contributer.

And the synth was tested with around 4.5GB of SoundFonts.

  • Vagabond
  • [*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #12
Thanks! Now to figure out how to remove Microsoft GS as the 0 ID device.

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #13
Thanks! Now to figure out how to remove Microsoft GS as the 0 ID device.


And why is that?
Last time a user did that, it hosed all sorts of MIDI related stuff.

  • RichNagel
  • [*][*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #14
And why is that? Last time a user did that, it hosed all sorts of MIDI related stuff.


I myself don't mind keeping the MSGS SW Synth around on my PC.

Why's that? Although I'm no fan whatsoever of the sound of the Roland SC-55 MIDI modules, the "GM.DLS" sound set that the MSGS SW Synth uses is essentially a direct dump of the SC-55's onboard sample ROM.

Configure WinDoze to use the MSGS SW Synth, add a bit of Sound Blaster Live EAX reverb (as the MSGS SW Synth is 'dry' as a bone), and whammo... instant virtual SC-55 <grin>.

Although, with the newer drivers for the SBLive/Audigy/X-Fi/etc... one could always load the GM.DLS directly into the EMU of those sound cards, as the Windows XP (and newer) drivers for them support loading DLS format sound sets (as well as SoundFonts, of course).
  • Last Edit: 04 April, 2011, 07:23:35 AM by RichNagel

  • Vagabond
  • [*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #15
Thanks! Now to figure out how to remove Microsoft GS as the 0 ID device.


And why is that?
Last time a user did that, it hosed all sorts of MIDI related stuff.


What I meant to say was making BASS the default MIDI device. For things like PRBoom+ and eDuke32, they auto-default to MSGS. I'm assuming it's because of its placement as the 0 ID. In their config files, there are settings to specify which device to use, but regardless of what I put, it always uses MSGS.

Setting the default device in the BASSMIDI config isn't working.

  • tima
  • [*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #16
This is a great idea! I've been using loopbe1 and programs like SFZ+ and SyFonOne, and BASSMIDI could definitely simplify things. Unfortunately, I'm getting audio glitches with BASSMIDI that I don't get with the other method. For example, I use the "ProTrax_Classical_Guitar" for the nylon string guitar, and when I play a simple .ptb file in PowerTab that uses just that single instrument, e.g. "Jesu Joy Of Man's Desiring", within 10 seconds or so, I start to hear little "bzzzt" or staticky sounds after most every note. There are also some glitches with the configuration program's listbox handling, e.g. it can generate blank items and write them to the file, clicking "Down" on the bottom item removes it, etc. Finally, am I correct in thinking that to observe changes made via the configuration program, you have to restart the client program, e.g. PowerTab?

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #17
Thanks! Now to figure out how to remove Microsoft GS as the 0 ID device.


And why is that?
Last time a user did that, it hosed all sorts of MIDI related stuff.


What I meant to say was making BASS the default MIDI device. For things like PRBoom+ and eDuke32, they auto-default to MSGS. I'm assuming it's because of its placement as the 0 ID. In their config files, there are settings to specify which device to use, but regardless of what I put, it always uses MSGS.

Setting the default device in the BASSMIDI config isn't working.


Tried other stuff like:
http://software.bootblock.co.uk/?id=vistamidipicker
http://www.brainmaster.com/kb/entry/334/

?

If those don't work, I dunno what the issue is.
  • Last Edit: 05 April, 2011, 06:09:03 AM by mudlord

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #18
There are also some glitches with the configuration program's listbox handling, e.g. it can generate blank items and write them to the file, clicking "Down" on the bottom item removes it, etc. Finally, am I correct in thinking that to observe changes made via the configuration program, you have to restart the client program, e.g. PowerTab?


Thanks for reporting, they seem to be all fixed, so it should be ready for the next version.

And yes for SoundFont changes, the host app needs to be restarted.
  • Last Edit: 05 April, 2011, 06:55:30 AM by mudlord

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #19
Actually, might have a solution to the MIDI sticking issue for some issues, which will be in the next version. Worked with someone who had the exact same issues, to fix it for him, so the fix might work for others.

  • Vagabond
  • [*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #20
Thanks! Now to figure out how to remove Microsoft GS as the 0 ID device.


And why is that?
Last time a user did that, it hosed all sorts of MIDI related stuff.


What I meant to say was making BASS the default MIDI device. For things like PRBoom+ and eDuke32, they auto-default to MSGS. I'm assuming it's because of its placement as the 0 ID. In their config files, there are settings to specify which device to use, but regardless of what I put, it always uses MSGS.

Setting the default device in the BASSMIDI config isn't working.


Tried other stuff like:
http://software.bootblock.co.uk/?id=vistamidipicker
http://www.brainmaster.com/kb/entry/334/

?

If those don't work, I dunno what the issue is.


Doesn't work. Maybe the issue is with the programs I mentioned.

Regardless, thanks for the help!

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #21
Uploaded new version. Don't blame me if your AV goes utterly haywire. Blame the leeching slut for it....

  • RichNagel
  • [*][*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #22
Uploaded new version. Don't blame me if your AV goes utterly haywire. Blame the leeching slut for it....


Mine simply reported that the file(s) were packed with something (I forget now, "EXE Append" or "EXE Pack", something like that, I forget now). Otherwise, no reports of viri

P.S. This using McAfee Command Line v6.0.3, with the latest DAT files/updates.

Anyhow, works perfectly, Mudlord, thanks!
  • Last Edit: 07 April, 2011, 08:35:34 AM by RichNagel

  • mudlord
  • [*][*][*][*][*]
  • Developer (Donating)
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #23
Wow, only those?
I was expecting much, much worse false positives. But yes, the files are indeed encrypted, and not just packed with something stupid like UPX/ASPack/PECompact/etc.....
  • Last Edit: 07 April, 2011, 08:43:27 AM by mudlord

  • RichNagel
  • [*][*]
BASSMIDI MIDI synthesiser for Windows XP/Vista/7
Reply #24
Wow, only those? I was expecting much, much worse false positives. But yes, the files are indeed encrypted, and not just packed with something stupid like UPX/ASPack/PECompact/etc.....


Yeah, they were simply reports of packed EXE/DLL files.

I found McAfee Command Line to be pretty  reliable... with the expanse of command line options that I use when scanning files, it will report anything that is packed, and if it finds anything within those packed files.

In other words, as long as it doesn't report an _actual_ virus, the packed files messages can simply be ignored (as well as the "Objects Possibly Infected" and "Possibly Infected" summaries, as if McAfee actually found a virus, it would report what it actually found; the name of the virus/infection)

FWIW, here's a scan log:

Code: [Select]
Copyright (C) 2010 McAfee, Inc.
(408) 988-3832 LICENSED COPY - June 16 2010

AV Engine version: 5400.1158 for Win32.
Dat set version: 6308 created Apr 6 2011
Scanning for 657207 viruses, trojans and variants.

Summary Report on Process Scanning
Process(es)
        Total processes:...............     22
        Clean:.........................     22
        Not Scanned:...................     0
        Possibly Infected:.............     0

C:\Test\BASS.dll ... is packaged using New Packer.
C:\Test\BASSMIDI.dll ... is packaged using New Packer.
C:\Test\BASSMIDIDrv.exe ... is packaged using Nullsoft.
C:\Test\BASSMIDIDrv.exe\6.nsis ... is packaged using New Packer.
C:\Test\BASSMIDIDrv.exe\7.nsis ... is packaged using New Packer.
C:\Test\BASSMIDIDrvUninstall.exe ... is packaged using Nullsoft.

        Possibly Infected:.............     0

C:\Test\BASS.dll ... is packaged using New Packer.
C:\Test\BASSMIDI.dll ... is packaged using New Packer.
C:\Test\BASSMIDIDrv.exe ... is packaged using Nullsoft.
C:\Test\BASSMIDIDrv.exe\6.nsis ... is packaged using New Packer.
C:\Test\BASSMIDIDrv.exe\7.nsis ... is packaged using New Packer.
C:\Test\BASSMIDIDrvUninstall.exe ... is packaged using Nullsoft.

Summary Report on C:\Test
File(s)
        Total files:...................     6
        Total Objects:.................     24
        Clean:.........................     2
        Not Scanned:...................     0
        Possibly Infected:.............     4
        Objects Possibly Infected:.....     6

  • Last Edit: 07 April, 2011, 09:11:11 AM by RichNagel