Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Chex Warrior

[SOLVED] GZDoom Fluidsynth Issue with Ubuntu 20.04

Recommended Posts

Hi everyone,

 

I recently installed Ubuntu 20.04 on my machine and installed GZDoom via the provided deb package.  When I attempt to start a game with FluidSynth as the selected midi device the game freezes, the same thing happens when the main menu music finishes its first loop.  The game runs fine with Timidity. I've added the messages displayed in the terminal from the start of the game to the aforementioned freeze at the end of this post, let me know if you need anymore information and thank you in advance.

 

GZDoom g4.3.3 - 2020-01-20 22:20:34 +0100 - SDL version
Compiled on Jan 21 2020

M_LoadDefaults: Load system defaults.
W_Init: Init WADfiles.
 adding /opt/gzdoom/gzdoom.pk3, 612 lumps
 adding /opt/gzdoom/game_support.pk3, 2523 lumps
 adding /home/andy/.config/gzdoom/DOOM2.WAD, 2919 lumps
I_Init: Setting up machine state.
CPU Vendor ID: GenuineIntel
  Name: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
  Family 6, Model 158, Stepping 10
  Features: SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 HyperThreading
V_Init: allocate screen.
S_Init: Setting up sound.
I_InitSound: Initializing OpenAL
  Opened device Built-in Audio Analog Stereo
  EFX enabled
ST_Init: Init startup screen.
Checking cmd-line parameters...
S_InitData: Load sound definitions.
G_ParseMapInfo: Load map definitions.
Texman.Init: Init texture manager.
ParseTeamInfo: Load team definitions.
LoadActors: Load actor definitions.
script parsing took 103.15 ms
R_Init: Init Doom refresh subsystem.
DecalLibrary: Load decals.
M_Init: Init menus.
P_Init: Init Playloop state.
ParseSBarInfo: Loading custom status bar definition.
D_CheckNetGame: Checking network game status.
player 1 of 1 (1 nodes)
Using video driver x11
GL_VENDOR: NVIDIA Corporation
GL_RENDERER: GeForce GTX 1060 6GB/PCIe/SSE2
GL_VERSION: 4.6.0 NVIDIA 440.82 (Core profile)
GL_SHADING_LANGUAGE_VERSION: 4.60 NVIDIA

Max. texture size: 32768
Max. texture units: 32
Max. varying: 124
Max. combined shader storage blocks: 96
Max. vertex shader storage blocks: 16
Resolution: 1920 x 1080
fluidsynth: warning: SDL2 not initialized, SDL2 audio driver won't be usable

----------------------------------------

MAP01 - Entryway

fluidsynth: warning: SDL2 not initialized, SDL2 audio driver won't be usable

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot register existing type 'IpatchSplitsType'

(process:79653): GLib-GObject-CRITICAL **: 06:39:26.516: g_param_spec_enum: assertion 'G_TYPE_IS_ENUM (enum_type)' failed

** (process:79653): CRITICAL **: 06:39:26.516: ipatch_type_install_property: assertion 'G_IS_PARAM_SPEC(prop_spec)' failed

(process:79653): GLib-GObject-CRITICAL **: 06:39:26.516: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot register existing type 'IpatchSF2GenType'

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot retrieve class for invalid (unclassed) type '<invalid>'

** (process:79653): CRITICAL **: 06:39:26.516: file /build/libinstpatch-i701yY/libinstpatch-1.1.2/libinstpatch/IpatchSF2Gen.c: line 148 (_ipatch_sf2_gen_init): assertion `enum_class != NULL' failed.

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot register existing type 'IpatchSample'

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot register existing type 'IpatchItem'

(process:79653): GLib-GObject-CRITICAL **: 06:39:26.516: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot register existing type 'IpatchSF2GenItem'

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot register existing type 'IpatchItem'

(process:79653): GLib-GObject-CRITICAL **: 06:39:26.516: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot register existing type 'IpatchSF2ModItem'

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot register existing type 'IpatchItem'

(process:79653): GLib-GObject-CRITICAL **: 06:39:26.516: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot register existing type 'IpatchSF2VoiceCache'

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot retrieve class for invalid (unclassed) type '<invalid>'

(process:79653): GLib-GObject-WARNING **: 06:39:26.516: cannot register existing type 'IpatchItem'

(process:79653): GLib-GObject-CRITICAL **: 06:39:26.516: g_type_register_static: assertion 'parent_type > 0' failed

(process:79653): GLib-GObject-CRITICAL **: 06:39:26.517: g_type_register_static: assertion 'parent_type > 0' failed

(process:79653): GLib-CRITICAL **: 06:39:26.517: g_once_init_leave: assertion 'result != 0' failed

(process:79653): GLib-GObject-WARNING **: 06:39:26.517: cannot retrieve class for invalid (unclassed) type '<invalid>'

(process:79653): GLib-GObject-WARNING **: 06:39:26.517: cannot register existing type 'IpatchItem'

(process:79653): GLib-GObject-CRITICAL **: 06:39:26.517: g_type_register_static: assertion 'parent_type > 0' failed

(process:79653): GLib-GObject-WARNING **: 06:39:26.517: cannot retrieve class for invalid (unclassed) type '<invalid>'

(process:79653): GLib-GObject-WARNING **: 06:39:26.517: cannot register existing type 'IpatchConverter'

(process:79653): GLib-GObject-WARNING **: 06:39:26.517: cannot retrieve class for invalid (unclassed) type '<invalid>'

Share this post


Link to post

Here is the output from that command:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                    Version      Architecture Description
+++-=======================-============-============-=======================================================
ii  libfluidsynth-dev:amd64 2.1.1-2      amd64        Real-time MIDI software synthesizer (development files)
un  libfluidsynth1          <none>       <none>       (no description available)
ii  libfluidsynth2:amd64    2.1.1-2      amd64        Real-time MIDI software synthesizer (runtime library)

 

 

 

Share this post


Link to post

Looks recent enough. Could you try a different sound font, e.g. the one provided in the timgm6mb-soundfont package?

Share this post


Link to post

EDIT: Was poking around a bit and saw in the gzdoom.ini that you can include custom directories for soundfonts.  I also saw that you can change the soundfont from within the GZDoom menu.  Setting Fluidsynth as the midi device and changing to the TimGM6.mb results in the same freeze as before. The good news is I can change Timidity's soundfont now so it doesn't sound so awful :)

 

 

I attempted to change the soundfont using the instructions you had posted in an older thread.  I ran the following commands but they resulted in the same freezing issue:

export SDL_SOUNDFONTS=/usr/share/sounds/sf2/TimGM6mb.sf2
gzdoom -iwad DOOM2.wad -file $DOOMWADDIR/akeldama.wad

I also grabbed the MuseScore_General soundfount I found here and tried it again:

export SDL_SOUNDFONTS=/home/andy/Downloads/MuseScore_General.sf2
gzdoom -iwad DOOM2.wad -file $DOOMWADDIR/akeldama.wad

I also read in a random GitHub thread that you can use the SDL_FORCE_SOUNDFONTS env variable, but that didn't seem to change anything either. On my last attempt I got a log of the error, I've attached it in case that's useful.

error.zip

Edited by Chex Warrior

Share this post


Link to post

The question you should actually be asking is "what did Debian/Ubuntu change relative to my package?"  Mine is just the official fluidsynth 1.1.11 source code compiled in a 16.04 chroot like everything else in the repo.  I don't recall any such deps in fluidsynth1 but if there were any ABI unstable deps then they would be compiled by me and static linked as well.  Once I have the binary I build the deb by hand.

 

Anyway I had to compile and provide it since 20.04 does not ship with the fluidsynth1 ABI anymore.  So that package is set up to provide "libfluidsynth1" and if you're on 16.04 through 19.10 it will prefer to install the one from the system universe repo.  On 20.04+ it installs drdteam-libfluidsynth1.

Share this post


Link to post

Well, there was an ABI break upstream, so all more recent packages have to provide libfluidsynth2 instead of libfluidsynth1. 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×