space-station-14 icon indicating copy to clipboard operation
space-station-14 copied to clipboard

No midi support on Ubuntu 18.04

Open tmsbrg opened this issue 3 years ago • 5 comments

Description

Ubuntu 18.04 does not have an up to date version of libfluidsynth, only supporting up to version 1.1.9-1 as of this time. The game does not seem to support this version of libfluidsynth, and will show the regular error of fluidsynth not being installed even though it is.

Maybe this could be fixed by bundling a newer version of libfluidsynth with the client.

Screenshots Screenshot_2021-11-07_16-37-01

Additional context

$ dpkg -l | grep libfluidsy
ii  libfluidsynth-dev:amd64                       1.1.9-1                                           amd64        Real-time MIDI software synthesizer (development files)
ii  libfluidsynth1:amd64                          1.1.9-1                                           amd64        Real-time MIDI software synthesizer (runtime library)
$ apt search libfluidsynth
Sorting... Done
Full Text Search... Done
libfluidsynth-dev/bionic,now 1.1.9-1 amd64 [installed]
  Real-time MIDI software synthesizer (development files)

libfluidsynth1/bionic,now 1.1.9-1 amd64 [installed,automatic]
  Real-time MIDI software synthesizer (runtime library)

$ cat /etc/issue
Ubuntu 18.04.6 LTS \n \l

tmsbrg avatar Nov 07 '21 15:11 tmsbrg

all I can really say in this regard is "oof" there's a build script to solve this I PR'd to the native libraries thing... um... @PJB3005 pls

20kdc avatar Nov 07 '21 15:11 20kdc

If it is still relevant for anyone: there is a workaround (haven't tested on Ubuntu, but it worked on Fedora).

The game tries to load fluidsynth library from the /path/to/space-station-14/bin/loader/libfluidsynth.so.2. So all you need to do is just to put the library there. In my case, I just symlinked it:

cd /path/to/space-station-14/bin/loader
ln -s /usr/lib64/libfluidsynth.so libfluidsynth.so.2

By the way, Space Station 14 looks for libfluidsynth.so.2, but at least on Fedora (though it is 37 which is still in beta) it is already libfluidsynth.so.3

Jark255 avatar Oct 15 '22 18:10 Jark255

That last note is a bit of a complicated mess. Dropping support for libfluidsynth.so.2 will break things for some users and not having support for libfluidsynth.so.3 will be messy for others. Blame Fluidsynth - they appear to have decided to make a major ABI change because they couldn't just keep around the 32-bit soundfont access API for some unknown reason (source: https://github.com/FluidSynth/fluidsynth/blob/master/doc/recent_changes.txt What's new in 2.2.0?). I'm not sure if that will cause a problem or not, but it's worth mentioning why that happened.

20kdc avatar Oct 15 '22 18:10 20kdc

Also for the record, the current plan is to make our nfluidsynth fork target libfluidsynth.so.3 and ship it ourselves, although I can't give an estimate of when this will happen sadly.

gradientvera avatar Oct 15 '22 18:10 gradientvera

I see... Good to know, thanks. For now the workaround seems to work anyways. Though it is funny to see it working in that case

Jark255 avatar Oct 15 '22 20:10 Jark255

Also bit of an issue on NixOS, where fluidsynth.so.2 was removed a year ago by https://github.com/NixOS/nixpkgs/pull/141918.

For NixOS it's easies to run SS14 using Steam, so to add Fluidsynth to it's environment I added an override:

  nixpkgs.config.packageOverrides = pkgs: {
    steam = pkgs.steam.override {
      extraPkgs = pkgs: [ pkgs.fluidsynth ];
    };
  };

And linked the file:

ln -s /lib64/libfluidsynth.so ~/.local/share/Steam/steamapps/common/Space\ Station\ 14\ Playtest/bin/loader/libfluidsynth.so.2

jicksaw avatar Nov 28 '22 16:11 jicksaw