19 May '13 - 12:10 *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
 
   Home   Help Search Login Register  
Pages: [1]
  Reply  |  Print  
Author Topic: BASSMIDI interpolation quality  (Read 1227 times)
bennetng
Posts: 4


« on: 3 Aug '12 - 18:39 »
Reply with quoteQuote

Hi,

Thanks for making BASSMIDI the best software synth for playing GM and XG files.

May I ask for even better interpolation quality? If CPU load or latency is a concern then a selectable high quality will be appreciated. The current sinc interpolation still has audible aliasing, audio sample included:

http://www.sendspace.com/file/cmdxd7
midi data is from vgmusic

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.

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

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=mpcs&id=&mpcg=&mpc_id=34&page_id=60
Logged
Ian @ un4seen
Administrator
Posts: 15244


« Reply #1 on: 6 Aug '12 - 12:52 »
Reply with quoteQuote

BASSMIDI's sinc interpolation uses only 8 sample points so the quality won't be the best ever (ie. there will be some aliasing), but it should generally be decent enough. Still, perhaps it can be tweaked a bit without compromising performance. I tried to reproduce your recording to investigate what's happening, but the MIDI file and soundfont combo isn't sounding the same when I try it; I don't hear the sweeping high pitch sound that's present in your recording. Did you modify the MIDI file and/or soundfont at all to produce your recording?
Logged
bennetng
Posts: 4


« Reply #2 on: 6 Aug '12 - 14:56 »
Reply with quoteQuote

Sorry it was my fault. There is a file called AnotherGS_v20_to_v23.exe in the soundfont archive you downloaded. You need to use that exe file to patch bennetng_AnotherGS_v2-0.sf2 to v2.3 then you can hear the sweeping high pitch sound.

I do admit that it is a rare case that aliasing can be heard clearly, but in general I can hear that BASSMIDI sounds harsher than sfz and X-Fi. I really love BASSMIDI's ability to play GS and XG files with higher compatibility than sfz and X-Fi. Therefore, if BASSMIDI can have better sound quality it will become a killer soundfont synth.

Although I can use 192k to reduce aliasing, high frequency will be filtered. Therefore it is not a good workaround.
« Last Edit: 6 Aug '12 - 15:07 by bennetng » Logged
Ian @ un4seen
Administrator
Posts: 15244


« Reply #3 on: 8 Aug '12 - 16:52 »
Reply with quoteQuote

OK. Here's an update to try...

   www.un4seen.com/stuff/bassmidi.zip

It won't totally eliminate aliasing but it should reduce more severe cases (like your example) without affecting performance (it's still using 8 sample points).
Logged
Shade
Posts: 1


« Reply #4 on: 9 Aug '12 - 05:05 »
Reply with quoteQuote

I still can hear and see aliasing at 2:12.


The aliasing sweep down to 4~6KHz, and the human ear is sensitive to these  frequencies.
Logged
bennetng
Posts: 4


« Reply #5 on: 9 Aug '12 - 10:44 »
Reply with quoteQuote

Thanks Ian.

Now the sound quality is slightly better than SB Live and Audigy's hardware synth, and similar to sfz's "08" quality. It is a nice tweak if CPU load or latency remains the same. I guess it is the limitation of 8-point interpolation.

I guess, in order to reduce aliasing to inaudible level, CPU load will at least be doubled. Am I right? I don't know how other users think but personally I prefer higher sound quality even if CPU load or latency increases.
Logged
rv
Guest
« Reply #6 on: 9 Aug '12 - 20:26 »
Reply with quoteQuote

Yes !
I would love to see an option to get a better interpolation, even if more CPU is needed.
On my computer, BASSMIDI is taking almost 0% CPU, so why not more quality?Huh
Only for user who need it...
Logged
maurmun
Posts: 6


« Reply #7 on: 23 Aug '12 - 19:03 »
Reply with quoteQuote

Sorry for "inserting" into this thread but even without the latest version Ian produced in this days we can set a better interpolation by calling the BASS_SetConfig(BASS_CONFIG_SRC, 3), or BASS_CONFIG_SRC_SAMPLE, where 3 stays for 32 point interpolation.
It should be better the default 1

Mauro
Logged
maurmun
Posts: 6


« Reply #8 on: 23 Aug '12 - 19:41 »
Reply with quoteQuote

Sorry ...
I would say "It should be better than the default 1"
Logged
Ian @ un4seen
Administrator
Posts: 15244


« Reply #9 on: 24 Aug '12 - 17:49 »
Reply with quoteQuote

Just to clarify, the BASSMIDI sinc interpolation currently always uses 8 sample points, and the BASS_ATTRIB_SRC attribute doesn't affect that. The BASS_ATTRIB_SRC attribute will only come into play when the rendered MIDI stream needs to be resampled for the output device, ie. if they have differing sample rates. That should be avoided whenever possible, by creating MIDI streams with the same sample rate as the output device (eg. use freq=1 in the BASS_MIDI_StreamCreateFile call).
Logged
bennetng
Posts: 4


« Reply #10 on: 26 Aug '12 - 11:00 »
Reply with quoteQuote

Now I am using 88.2khz in foobar2000, this sample rate can reduce aliasing when pitching up (not pitching down) samples without very obvious side effects.
Logged
Pages: [1]
  Reply  |  Print  
 
Jump to:  

Powered by SMF 1.1.18 | SMF © 2013, Simple Machines