Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: BASSMIDI MIDI synthesiser for Windows XP/Vista/7 (Read 316091 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #151
Our advice would be to somehow get your hands on a decent PS1 emulator and a copy of FF7.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #152
One thing i missed is the caching feature: "Static caching" has better performacnce on Playback. XMPlay supports this for default.


BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #154
Updated to have sinc interpolation plus kode54's fixes to GS detection.
The VST driver got a complete rewrite too, now it uses the same basecode as the bassmidi driver.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #155
Hi,

May I ask for even better interpolation quality? The current sinc interpolation still has audible aliasing, audio sample included:

http://www.sendspace.com/file/cmdxd7

midi data is from vgmusic
http://www.vgmusic.com/music/console/ninte.../DKCMine-GM.mid

soundfont can be downloaded here (AnotherGS v2.x)
http://music.geocities.jp/bennetng01/

I used the foobar plugin to render the audio files, I need to set the plugin's sample rate to 192k to reduce aliasing, the 44k one has severe aliasing.

The driver version of BASSMIDI cannot change sample rate to reduce aliasing, the foobar version of BASSMIDI cannot change volume conveniently (need to change replaygain volume instead of output volume, otherwise clipping will occur in louder midi files) . I really hope these problem will be fixed in future versions.

My X-Fi hardware synth and sfz software synth (when set to high quality) have no audible aliasing when using the same soundfont. I also followed the instruction in MAZ's aliasing test and found that BASSMIDI's aliasing is pretty severe:
http://www.maz-sound.de/index.php?show=mpc...&page_id=60

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #156
You'll have to report any aliasing issues in BASSMIDI to Ian Luck at un4seen.com, as it's his project.

Also, at least with Windows Vista or newer, the MIDI files should not clip in foobar2000, as long as you use DirectSound output. Otherwise, you'll need an Advanced Limiter DSP or similar.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #157
Thanks. I just compared DS, WASAPI and ASIO output and found that the volume/clipping problem is not related to BASSMIDI's foobar plugin. Also thanks for pointing me to un4seen.com.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #158
3.1 uploaded.
Major changes were done, including compressed sample support in SoundFonts. This makes it in line with most recent foo_midi.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #159
3.2 out, with updates to the sound output for Asus Xonar cards. Includes the updated soundfont packer too.

the vsti driver got updated too, with same output stuff as well as fixes to the config too (sorry to the people that had troubles).

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #160
3.2 out, with updates to the sound output for Asus Xonar cards. Includes the updated soundfont packer too.


Did you actually upload the new installer? It appears that:

http://www.mudlord.info/bassmididrv/bassmididrv.exe (502,324 bytes)

...is the exact same as the bassmididrv.exe v3.1 installer, byte for byte <grin>.


BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #162
I have uploaded the latest version here, until mudlord updates his site:

http://kode54.foobar2000.org/bassmididrv.exe


A-OK, and thanks


BTW, I've been meaning to ask another question.

In one of your changelog comments at https://github.com/mudlord/BASSMIDI-Driver/...4e437198cb71bdc you posted:

Quote
Fixed DirectSound fallback to only occur if sound was opened in floating point mode first


...and over in the VOGONS BASSMIDI Driver message thread http://vogons.zetafleet.com/viewtopic.php?t=27975 you posted:

Quote
Bah, I misinterpreted the GX mode button. It does seem to interfere with floating point output through DirectSound. I've implemented my own sound output code based on XAudio2. That failing, it will attempt to open DirectSound with floating point, or otherwise fall back on 16 bit integer format.


I was just a-wondering... does that mean that if there was some sort of problem starting the BASSMIDI Driver in "DirectSound" mode, that the driver would fallback to "WinMM" mode? Does the "DirectSound" mode have anything to do with the way that the driver used to work ("DirectMusic" mode) several versions ago?

As a non-coder... sorry for the (probably) dumb questions, that I (probably) won't understand the answers to in the first place <grin>

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #163
The DirectSound has to do with how BASS worked in the earliest driver, as well as the more recent versions. I replaced BASS for output, and instead use my own output interfaces. I default to XAudio2, which is guaranteed to support floating point output. If that fails to open, likely in the event that the user does not have XAudio2 installed (which requires the DirectX runtime to be installed on Windows 7 and older systems), then it will fall back on DirectSound. On Vista and up, it will then attempt to open DirectSound using a floating point sample format. If that fails, it will try to reopen it with 16 bit integer format.

The XAudio2 driver also uses a Windows Vista sound device interface to register a callback, so that it will be notified any time the default sound output device changes, which will cause it to tear down and reopen the sound output. This is because XAudio2 does not react well to its current device being disconnected. It likes to stall the output, which would stall playback completely while the player waits for a free buffer to output more sound. Nope, no free notification of sound device error in that case. So, thus, a system notification callback, and I tear it down myself.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #164
Thanks for the detailed info, Kode54

Hehe, even as a non-coder, I understood your detailed explaination fully

BTW, one last little question:

That VST Driver that you and MudLord created... from what i understand, that allows any VSTi DLL to be used as a standard Windows MIDI device, correct?

My main question is (if so):

When used with the S-YXG50 VSTi DLL, does it have extremely low latency (like the newer versions, and the oldest versions; of the BASSMIDI Driver do)?

The standalone Yamaha S-YXG50 v4.23.14S WDM has some pretty bad latency running under Windows XP. And I, was simply wondering if using the S-YXG50 VSTi DLL with your VST Driver resulted in really low latency (like the BASSMIDI Driver has)... or if the latency is "hard-coded" into the DLL itself.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #165
latency for the XG VSTi sounds fine to me O_O
bassmidi driver reuploaded.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #166
latency for the XG VSTi sounds fine to me O_O


Thanks for the info... I'll definitely have to give that a try

'Twould be awesome if my SBLive_A/B+BASSMIDI Driver would 'natively' synch to the S-YXG50 (not to mention, the ability to use some of the other VSTi's that I have as a regular WinDoZe MIDI device) 

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #167
The latency of both the BASSMIDI and VSTi drivers is hard coded at 80ms for XAudio2 and 100ms for DirectSound. Although actually, it may not be that bad.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #168
Guys,

I seem to be having a pretty bad problem when attempting to uninstall version 3.1 of the BASSMIDI Driver (Re: this pic -> http://jasonwilliams400com.startlogic.com/...all_Problem.png ).


I had installed version 3.1 without a hitch, and everything functioned fine. On this particular PC (my main machine) I was updating to v3.1 from one of the 2.x versions of the driver (I forget which version offhand).

After installing v3.1, although everything worked properly, I noticed the things in the above-linked image in the "Before uninstalling v3.1" pics. I didn't really give that a second thought... two entries in the registry, and two entries in the "Legacy Audio Drivers" section of the Device Manager... as everything worked OK with the driver.


The reason that I mention the above, as I'm wondering if that (two entries) could have something to do with the problem I had uninstalling v3.1:


After uninstalling v3.1 the bottom two pics in the image are what I saw in the "Legacy Audio Drivers". I then tried going ahead and installing v3.2, but after the installation all of those entries were still listed.

That sort of scared me a bit, as all of those extra entires are NOT even MIDI devices at all.

I went ahead and did a WinDoZe System Restore, which got me back to v3.1 of the driver (and the entries in the top set of pics, of course).

Any idea as to what could cause this?


P.S. Dunno if this helps any, but here is a list of my usual WinDoZe MIDI devices:

0 = SB Live! Synth A [DF20]
1 = BASSMIDI Driver
2 = Out To MIDI Yoke:  1
3 = Out To MIDI Yoke:  2
4 = Out To MIDI Yoke:  3
5 = Out To MIDI Yoke:  4
6 = MT-32 Synth Emulator
7 = SB Live! Sw Synth [DF20]
8 = SB Live! Synth B [DF20]
9 = SB Live! MIDI Port [DF20]
10 = YAMAHA XG WDM SoftSynthesizer
11 = Microsoft GS Wavetable SW Synth

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #169
The latency of both the BASSMIDI and VSTi drivers is hard coded at 80ms for XAudio2 and 100ms for DirectSound. Although actually, it may not be that bad.


Yeah, the v1.x and 3.x versions seemed to be quite a bit lower than that

That being said, with the 2.x of the BASSMIDI Driver here's the latency that I measured:

http://jasonwilliams400com.startlogic.com/...2.x_Latency.gif

...about 100ms.


But, with the 1.x and 3.x versions, here's the latency I measured:

http://jasonwilliams400com.startlogic.com/...Low_Latency.gif

REALLY low


BTW, the way I performed that test:

I configured my sequencer's port 1 for my SBLive hardware synth, and port 2 for the BASSMIDI Driver.

I then sequenced a single percussion note for each track (I forget which patch now... maybe the woodblock?), and then hard-panned the SBLive to the left and the BASSMIDI Driver to the right.

Fired up GoldWave, recorded my "masterpiece" <grin>, and those screenies were the result

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #170
Hi Everybody,

I tried MASSMIDISynth GS/XG Scale Tuning System Exclusive Messages.
All notes are correctly pitched except the B :

Scale Tuning B : F0 43 10 4C 08 00 4C Cents F7 (Cents from 00 to 7F)

If you can test it please.

Thanks
ZizouHiba

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #171
http://jasonwilliams400com.startlogic.com/...all_Problem.png ).

I would advise looking at HKLM\SOFTWARE\[Wow6432Node\]Microsoft\Windows NT\CurrentVersion\Drivers32 after unintstalling. There should only be one midi* entry of wdmaud.drv for each normal MIDI device.

That failing, I would also suggest using Process Monitor to log the uninstaller and see what keys it's touching.

Oh, right. It also looks like you have a legacy version of BASSMIDI Driver installed, or at least still in the registry. That entry without the bassmididrv directory in the path should be removed, and the entries that follow it renumbered.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #172
I would advise looking at HKLM\SOFTWARE\[Wow6432Node\]Microsoft\Windows NT\CurrentVersion\Drivers32 after unintstalling. There should only be one midi* entry of wdmaud.drv for each normal MIDI device.


Oh, right. It also looks like you have a legacy version of BASSMIDI Driver installed, or at least still in the registry. That entry without the bassmididrv directory in the path should be removed, and the entries that follow it renumbered.


OK, to recap (just so's I don't make a total mess of this <grin>):

(Re: this image -> http://jasonwilliams400com.startlogic.com/...try_Entries.png )

Should I make the registry edits BEFORE uninstalling my current version (3.1)?


In the right-hand pic of the image above, I'm supposing that I should edit these entries:

midi = wdmaud.drv
midi1 = bassmididrv.dll
midi2 = bassmididrv\bassmididrv.dll
midi3 = myokent.dll
MIDI4 = MT32Emu.dll

..to this:

midi = wdmaud.drv
midi1 = bassmididrv\bassmididrv.dll
midi2 = myokent.dll
MIDI3 = MT32Emu.dll


And then in the left-hand pic of the image above, I should delete this entry:

bassmididrv.dll = bassmididrv.dll

...but leave this entry:

bassmididrv\bassmididrv.dll = bassmididrv.dll

...correct?

And of course, leave all of the other entries like they are, right?


P.S. Almost forgot... are there any other "midi#" entries hidden away in the Windows registry that I should look for (or be concerned with)?


(Edit) P.P.S. You know, after looking at those sections in the registry, an interesting thing:

All of the entries/devices listed in the "Legacy Audio Properties" applet shown in the first image that I linked to (in my previous post) are contained in that section of the registry (in the image in this post).

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #173
There shouldn't be any other entries to mess with, except for maybe the entry that handles the default entry, which is set by the configuration programs. That shouldn't cause random drivers to appear as MIDI devices, though.

BASSMIDI MIDI synthesiser for Windows XP/Vista/7

Reply #174
There shouldn't be any other entries to mess with, except for maybe the entry that handles the default entry, which is set by the configuration programs. That shouldn't cause random drivers to appear as MIDI devices, though.


Thanks for the info, Kode54  Anyhow, earlier I decided to go ahead and edit/experiment with the problem (please also see "A BIG UPDATE" below as well):


-=-=-=-=-=-=-=-=-=-

OK, I *THINK* I've got it sorted out now


First (before uninstalling v3.1), I edited this:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
midi = wdmaud.drv
midi1 = bassmididrv.dll
midi2 = bassmididrv\bassmididrv.dll
midi3 = myokent.dll
MIDI4 = MT32Emu.dll

..to this:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
midi = wdmaud.drv
midi1 = bassmididrv\bassmididrv.dll
midi2 = myokent.dll
MIDI3 = MT32Emu.dll


Then, I deleted this registry entry:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc]
"bassmididrv"="bassmididrv.dll"

...but left this one:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc]
"bassmididrv\\bassmididrv.dll"="bassmididrv.dll"


Then, I went ahead and uninstalled v3.1 using the v3.2 installer, and allowed the installer to reboot my PC.


After rebooting, I noticed that the uninstaller had completely wiped out the MIDIYOKE driver (which I had configured for 4 MIDI ports)... the ports would NORMALLY be displayed within the "Sounds and Audio Devices/MIDI Music Playback/Default Device" dropdown box (as "Out To MIDI Yoke: 1", "Out To MIDI Yoke: 2", etc...), but they were totally gone.


So... I fired up the registry editor again, and saw the following:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
midi = wdmaud.drv
midi1 = bassmididrv\bassmididrv.dll
MIDI3 = MT32Emu.dll

...and this (still):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc]
"bassmididrv\\bassmididrv.dll"="bassmididrv.dll"


I then edited:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
midi = wdmaud.drv
midi1 = bassmididrv\bassmididrv.dll
MIDI3 = MT32Emu.dll

...to read:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
midi = wdmaud.drv
midi1 = myokent.dll
midi2 = MT32Emu.dll

...and deleted this registy entry:

"bassmididrv\\bassmididrv.dll"="bassmididrv.dll"


After rebooting, everything looked fine in the device manager, the Windows registry... as well as the MIDIYOKE driver ports showing up.


I then re-ran the v3.2 installer, and it seemed to install without a hitch... and everything looks fixed now


P.S. These entries NOW read:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
midi = wdmaud.drv
midi1 = myokent.dll
midi2 = MT32Emu.dll
midi3 = bassmididrv\bassmididrv.dll

-=-=-=-=-=-=-=-=-=-

*A BIG UPDATE* (sorry... I typed up all of the above in WinDoZe Notepad BEFORE I found the problem detailed below):

Seems that after I installed v3.2 of the driver, the driver would crash any time something would access it


When I ran my old antique Cakewalk Professional v3.01 I got the error message shown in the top pic of this image:

http://jasonwilliams400com.startlogic.com/....2_Crashing.png

Running anything else that accessed the driver (when the driver was selected as the active Windows MIDI device) also resulted in a crash (e.g. bottom pic in the above-linked image).


Once, when attempting to actually play a MIDI file using the Creative Play Center (when the driver was selected as the active Windows MIDI device) my PC completed locked up hard as a rock... had to actually UNPLUG the power cable from the wall to turn it off.


Dunno if this helps, but here is the gobbledygook shown in the Windows Event Viewer after the crashes:

Faulting application ntvdm.exe, version 5.1.2600.5512, faulting module bassmididrv.dll, version 0.0.0.0, fault address 0x00003d86.

Faulting application ctplay2.exe, version 3.1.45.0, faulting module bassmididrv.dll, version 0.0.0.0, fault address 0x00003d84.


Maybe some more helpful info (I dunno?), as I have no idea if the crashing is related to my mess that I had to straighten out... or with version 3.2 of the BASSMIDI Driver itself (?).

Seems that the DLL itself for the BASSMIDI Driver is considerably LARGER for version 3.2 of the driver, compared to v3.1 of the driver (almost double the filesize):

BASSMIDIDrv.dll v3.1 - 59,904 bytes
BASSMIDIDrv.dll v3.2 - 104,960 bytes

Another thing that I noticed, version 3.2 of the driver installer installs a MUCH older version of the BASS.dll file:

BASS.dll v2.4.7.1 - 100,408 bytes, dated December 2010

...whereby the BASS.dll installed with version 3.1 of the driver was much newer. Dated (IIRC) somewhere around May of this year.


Needless to say, I tried manually updating the BASS.dll file (and BASSMIDI.dll file as well), rebooted after the updates, but still had the crashing problem.


Anyhow... I re-ran Windows System Restore, and restored back to the previous version 3.1 of the BASSMIDI Driver (which of course, brings me back to square-one; two "MIDI for bassmididrv.dll" entries within Windows "Legacy Audio Drivers" window (which of course is no real big deal, except for the numerious entries in the "Legacy Audio Drivers" window, if/when attempting to uninstall the BASSMIDI Driver again).

-=-=-=-=-=-=-=-=-=-