"Additional output buffer" causes distortion when greater than 0

Please let our ADS show!

This sites offers only FREE software and it's supported by a few advertisement boxes (no intrusive popups).
Please:

  • disable your AdBlocker by adding CoolSoft website to whitelist
  • give the proper cookie consent
  • enable JavaScript for this website

This seconds wait is to let you update your browser configuration...

Ok, I've done the required changes... now show me your content!
!!! Please enable JavaScript !!!

Pagine

Posts: 129
Joined: 25 Set 2013 - 16:38
Re: "Additional output buffer" causes distortion when greater than 0
coolsoft wrote:

@falcosoft: AdditionalBuffer setting in VMS is applied to the BASS MIDI stream like this:

BASS_SetConfig(BASS_CONFIG_BUFFER, additionalBuffer);

@ceski: it should be great if you could do the test suggested by @falcosoft.
If you get the same bug in FSMP, then the issue is related to BASS/BASSMIDI and I (we) can involve Un4seen into this.
Otherwise it's a VMS bug and it's up to me to fix it 🙄

Yep, it is the same then: 
BASS_SetConfig(BASS_CONFIG_BUFFER, Latency);

Posts: 8
Joined: 1 Dic 2022 - 20:35
Re: "Additional output buffer" causes distortion when greater than 0

Here's a comparison of VMS and FSMP.

VMS:
0 (lowest) - ok but audio crackles occasionally
10 - ok
166 - ok
250 (default) - first note plays incorrectly
500 - every note plays incorrectly
1000 (highest) - every note plays incorrectly

FSMP:
10 (lowest) - ok
166 - ok
250 - ok
255 (highest) - ok

System details:
Windows 10 Pro 22H2 (10.0.19045.2364) 64-bit
VMS 2.13.4
MIDIMApper 2.1.1
FSMP 6.1.1 64-bit

Posts: 1978
Joined: 25 Mar 2012 - 01:19
Re: "Additional output buffer" causes distortion when greater than 0
ceski wrote:

Well, this confirms it's a VMS-only issue 🤔, thanks for your tests.

@falcosoft: could you please confirm the BASS dll versions bundled in FSMP 6.1.1?
VMS 2.13.4 bundles BASS.dll v.2.4.17.0 and BASSMIDI.dll v.2.4.14.1.

Posts: 129
Joined: 25 Set 2013 - 16:38
Re: "Additional output buffer" causes distortion when greater than 0
coolsoft wrote:
ceski wrote:

Well, this confirms it's a VMS-only issue 🤔, thanks for your tests.

@falcosoft: could you please confirm the BASS dll versions bundled in FSMP 6.1.1?
VMS 2.13.4 bundles BASS.dll v.2.4.17.0 and BASSMIDI.dll v.2.4.14.1.

The Bassmidi version is the same (2.4.14.1) but Bass.dll is an older version (2.4.13.27) since I had problems when Ian removed the native accelerated Directsound path from new Bass versions.
But FSMP does not check exact dll versions so users can test any 2.4.x releases.
So as a counter test OP should check if the problem arises in FSMP when the exact same Bass.dll version is copied from VMS and overwrite with it the existing one in FSMP's folder.

Posts: 129
Joined: 25 Set 2013 - 16:38
Re: "Additional output buffer" causes distortion when greater than 0

Hi,

I have done the testing myself. I copied Bass.dll from VMS folder (C:\Program Files\VirtualMIDISynth) to FSMP's folder so both VMS and FSMP used the same dll versions. Then I used the OP provided midi_test.exe to send the notes. Both FSMP and VMS used the same Buffer value of 255 ms.

FSMP reacted the same way as with the old Bass.dll (first note was not delayed) and the reverb was not cut. In case of VMS the first note was delayed and the reverb was cut abruptly at the end.
BTW I have tested "Disable asynchronous Midi event processing" option both enabled and disabled and the result was the same. The same is true for FSMP.
So not the new async processing caused this problem in VMS.

Video about the test:
https://youtu.be/EHU5ojxjP6M

Posts: 1978
Joined: 25 Mar 2012 - 01:19
Re: "Additional output buffer" causes distortion when greater than 0

VMS has a dynamic update rate with 2 speeds: 10ms (the default one) and 1ms (the fast one).
It starts at default speed, then switches to the fast one if data is coming in "too fast" from MIDI port.
This was done to preserve CPU as much as possible, and give MIDIs the best rendering quality only when needed (think about black-MIDIs).

The algorithm was too much "conservative", so now I've changed it.
The new one starts with 1ms update rate by default, then it switches to slow (10ms) when no data is received in the last 15s (like the device is still open, but the client is paused/stopped).

The attached version includes the new behavior, please check it out on your sides 😉.

(UPDATE: version 2.13.5 released, attachment removed)

Posts: 8
Joined: 1 Dic 2022 - 20:35
Re: "Additional output buffer" causes distortion when greater than 0

The problem is worse in the test version: VMS 2.13.4 first, then 2.13.5-beta1

Posts: 1978
Joined: 25 Mar 2012 - 01:19
Re: "Additional output buffer" causes distortion when greater than 0

Updated version with larger rendering length; it should improve MIDI synthesis efficiency and remove stuttering.

(UPDATE: version 2.13.5 released, attachment removed)

Posts: 8
Joined: 1 Dic 2022 - 20:35
Re: "Additional output buffer" causes distortion when greater than 0
coolsoft wrote:

Updated version with larger rendering length; it should improve MIDI synthesis efficiency and remove stuttering.

Sounds good now, thank you!

Posts: 1978
Joined: 25 Mar 2012 - 01:19
Re: "Additional output buffer" causes distortion when greater than 0

Just released version 2.13.5, closing this...

Pagine