Author Topic: BASSMIDI 2.4.12.1 for Linux x64 results in static in KOR 4.5  (Read 724 times)

kode54

  • Posts: 112
Using KOR Soundfont 4.5, either the full 1.9GB uncompressed version, or the 174MB .sfogg (sf2pack format), playing this MIDI file, results in static in the left channel for most of the first playthrough.

https://downloads.kor.ninja/Music/korfontproject/

https://f.losno.co/02-03%20To%20the%20Gateway%20XG.mid
« Last Edit: 8 Feb '19 - 09:35 by kode54 »

Ian @ un4seen

  • Administrator
  • Posts: 22036
It took a while to work out what/where the problem is but eventually found the line of code where it's going wrong for no apparent reason. It seems to be an optimization bug in the GCC 4.5.4 compiler; the problem doesn't happen with optimizations disabled or with the other GCC versions that I tried. Here's an update that's built with GCC 4.6.4:

   www.un4seen.com/stuff/libbassmidi.so

Let me know if you still have any problem with that.

kode54

  • Posts: 112
Yes, this does appear to fix the issue, sort of. There are still some static crackles now and then. I'm assuming you're using a relatively old build environment so you can continue to target old systems?

Ian @ un4seen

  • Administrator
  • Posts: 22036
Do you have an example MIDI file to reproduce the crackles with? Also, to see if it could be something similar to the previous problem, do you only hear them from the 64-bit Linux version, not the 32-bit Linux or Windows/etc versions?

kode54

  • Posts: 112
It may simply have been my setup, as I couldn't reproduce it after lengthy listening. I haven't tried to reproduce with a 32 bit version, as I would have to build a fully 32 bit version of DeaDBeeF to test a 32 bit plugin with.

It never occurred with the Windows 32 bit version. I haven't tested the Windows 64 bit version.

kode54

  • Posts: 112
I found the source for my other forms of crackling: The HDCD decoder DSP for DeaDBeeF performs a roundtrip float to int to float conversion on all streams which are 44100Hz stereo, regardless of if they were originally 16 bit integer, or possibly unclipped raw floating point.