Bug#929185: default soundfonts

2019-07-11 Thread Tim Colgate
On Thu, 11 Jul 2019 14:50:30 + (UTC) Thorsten Glaser  wrote:
> > - Patch libraries using soundfonts to fallback to the new default
> >   soundfont path and add dependencies accordingly (fluidsynth,
> >   timidity, anything else?)
> 
> gstreamer (the one that started this discussion) perhaps, maybe
> also the various phonon? I’m not well-versed in the “desktop” world.

According to Wikipedia, Phonon can use GStreamer and VLC. QT multimedia used to 
use Phonon, but now uses Gstreamer - this may be configurable somewhere, but 
the problem with Gstreamer at the top of this thread, when fixed, allowed QT to 
work. VLC uses fluidsynth for midi files (configurable?). This doesn't work for 
me by default, because the default audio driver for fluidsynth is Jack, but I'm 
using pulseaudio, and I couldn't find a way in the VLC GUI to specify that the 
fluidsynth plugin should use the pulseaudio driver, although I can set the 
soundfount for fluidsynth to use, and I can set the audio driver for VLC to use 
generally. Come to think of it, this is another problem with fluidsynth, that 
would be solved by having a defaults file under /etc that is always used by 
fluidsynth, rather than only when it is in daemon mode. Neither xine nor 
mplayer seem to know about midi files.

So, in summary, I think addressing gstreamer and fluidsynth should cover most 
cases. I don't know much about timidity.

The code changes for gstreamer and fluidsynth look pretty straightforward; 
they're included at the top of this bug and #929182 respectively, but it's just 
changing one hard-coded name for another. I don't know if upstream have any 
plans to make this configurable at run time instead? Given that Gstreamer seems 
quite widespread, I'm surprised that there doesn't seen to be more in the way 
of system level configuration files.


Bug#929185: default soundfonts (was Re: gstreamer1.0-plugins-bad: no midi sound - gstreamer selects wrong soundfont by default)

2019-05-20 Thread Tim Colgate
The related bug/issue in fluidity is:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929182
(wrong reference earlier in this thread)

> Would users rather have no sound ... or bad sound

I vote for bad sound.

If there is no sound, there could be all sorts of reasons which can be very 
hard to track down, e.g. not in the correct audio group, no permission to 
access device, soundfont not installed, blocked by another program, daemon not 
running, unable to find library/plugin, volume too low etc. (These are not all 
relevant to gstreamer, but are problems I've had in the past that can be 
difficult to trace.)

If there is bad sound, then the system is basically working, so there are fewer 
things to check, e.g. poor audio file, poor soundfont, CPU too slow. It's then 
much easier to try a different audio file or soundfont, or nice the process.

The problem I had is that I wasn't getting errors reported, I just had no 
sound. It took quite a while to track down the problem, and the fix was nasty 
(I editted the plugin binary to change the directory searched from sounds/sf2 
to sounds/gst, then created that directory with a link in it to my preferred 
soundfont).



Bug#929182: fluidsynth: no sound by default - soundfont location doesn't exist

2019-05-20 Thread Tim Colgate
On Monday, 20 May 2019 07:50:06 BST you wrote:
> According to the man page, you may give the soundfont on the command line.
> There is  even an example in the third paragraph: 'fluidsynth -ni
> soundfont.sf2 midifile1.mid midifile2.mid'
> 
> So, this is the "official" way of starting fluidsynth with a specific
> soundfont. 

I'm aware of the commandline option for specifying the soundfont, but wanted 
something that works out-of the-box and for all users. A global alias or a 
wrapper script would work in most cases, but wouldn't be linked to Debian 
updates so would need to be maintained separately if the soundfont name changed.

A similar issue was raised on the fluidity github a while ago, and a patch was 
even put forward, but was abandoned:
https://github.com/FluidSynth/fluidsynth/issues/453
https://github.com/FluidSynth/fluidsynth/pull/454

I haven't checked newer versions of fluidity to see if they work differently.

> Nevertheless, if /usr/share/soundfonts/default.sf2 is the
> hard-coded fallback, we should make sure this file can be found out-of
> the-box. Adding the packaged soundfonts to a set of alternatives might be
> a good idea to solve this.

I raised a similar issue about default soundfount with gstreamer. I hope it's 
possible to come up with a common approach in Debian:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929185


Bug#929185: gstreamer1.0-plugins-bad: no midi sound - gstreamer selects wrong soundfont by default

2019-05-18 Thread Tim Colgate
Package: gstreamer1.0-plugins-bad
Version: 1.14.4-1+b1
Severity: wishlist
Tags: upstream

Dear Maintainer,

I've been trying to get gstreamer to play midi files. Initially it was when 
using QMediaPlayer in a QT application. However it also applies when running 
gstreamer from the commandline, e.g.

gst-play-1.0 sample.mid

I can get it to work if I either specifiy the soundfount manually:

gst-launch-1.0 filesrc location=sample.mid ! midiparse ! fluiddec 
soundfont=/usr/share/sounds/sf2/MuseScore_General_Full.sf2 ! pulsesink

or I can also get the simple case of gst-play-1.0 to work if I remove all the 
soundfounts from /usr/share/sounds/sf2 except the one I want to use; 
unfortunately it was trying to use FluidR3_GS.sf2, which gives no sound.

The problem lies in libgstfluidsynthmidi.so; looking at the source code in 
ext/fluidsynth/gstfluiddec.c:gst_fluid_dec_open(), it tries to open a bunch of 
directories and then reads the first file in the first directory it can open 
(/usr/share/sounds/sf2).

I was hoping that there might be some kind of config file for gstreamer where I 
could set the default soundfont but I couldn't find one.

Unfortunately there doesn't seem to be a standard way in Linux of setting a 
default soundfont to be used by all midi players; I was wondering if it would 
be possible to use e.g. the /etc/alterntives mechanism to choose between 
various Debian soundfonts e.g. MuseScore_General_Full.sf2 and FluidR3_GM.sf2, 
and then modify the gstreamer plugin to use that instead.


-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages gstreamer1.0-plugins-bad depends on:
ii  gstreamer1.0-plugins-base   1.14.4-1
ii  libass9 1:0.14.0-1
ii  libbs2b03.1.0+dfsg-2.2
ii  libbz2-1.0  1.0.6-9
ii  libc6   2.28-5
ii  libcairo2   1.16.0-4
ii  libchromaprint1 1.4.3-1
ii  libcurl3-gnutls 7.58.0-2
ii  libdc1394-222.2.5-1
ii  libdca0 0.0.5-10
ii  libde265-0  1.0.2-2+b2
ii  libdrm2 2.4.97-1
ii  libdvdnav4  6.0.0-1
ii  libdvdread4 6.0.0-1
ii  libfaad22.8.8-1
ii  libflite1   2.1-release-1
ii  libfluidsynth1  1.1.11-1
ii  libgcc1 1:8.2.0-20
ii  libglib2.0-02.58.3-1
ii  libgme0 0.6.2-1
ii  libgsm1 1.0.18-1
ii  libgstreamer-gl1.0-01.14.4-1
ii  libgstreamer-plugins-bad1.0-0   1.14.4-1+b1
ii  libgstreamer-plugins-base1.0-0  1.14.4-1
ii  libgstreamer1.0-0   1.14.4-1
ii  libgudev-1.0-0  232-2
ii  libilmbase232.2.1-2
ii  libkate10.4.1-8
ii  liblcms2-2  2.9-1
ii  liblilv-0-0 0.24.2~dfsg0-1
ii  libmjpegutils-2.1-0 1:2.1.0+debian-5
ii  libmms0 0.6.4-2
ii  libmodplug1 1:0.8.9.0-1
ii  libmpcdec6  2:0.1~r495-1+b1
ii  libmpeg2encpp-2.1-0 1:2.1.0+debian-5
ii  libmplex2-2.1-0 1:2.1.0+debian-5
ii  libnettle6  3.4.1~rc1-1
ii  libnice10   0.1.14-1
ii  libofa0 0.9.3-15
ii  libopenal1  1:1.19.1-1
ii  libopenexr232.2.1-4
ii  libopenjp2-72.3.0-1
ii  libopenmpt0 0.3.6-1
ii  libopus01.2.1-1
ii  liborc-0.4-01:0.4.28-1
ii  libpango-1.0-0  1.42.0-1
ii  libpangocairo-1.0-0 1.42.0-1
ii  librsvg2-2  2.40.20-2
ii  librtmp12.4+20151223.gitfa8646d.1-1+b1
ii  libsbc1 1.3-2
ii  libsndfile1 1.0.28-4
ii  libsoundtouch1  2.1.2+ds1-1
ii  libspandsp2 0.0.6+dfsg-0.1
ii  libsrtp2-1  2.1.0-1
ii  libssl1.1   1.1.1a-1
ii  libstdc++6  8.2.0-20
ii  libusb-1.0-02:1.0.22-2
ii  libvo-aacenc0   0.1.3-1+b1
ii  libvo-amrwbenc0 0.1.3-1+b1
ii  libvulkan1  1.1.97-2
ii  libwayland-client0  1.16.0-1
ii  libwebp60.6.1-2
ii  libwebrtc-audio-processing1 0.3-1
ii  libwildmidi20.4.2-1
ii  libx11-62:1.6.7-1
ii  

Bug#929182: fluidsynth: no sound by default - soundfont location doesn't exist

2019-05-18 Thread Tim Colgate
Package: fluidsynth
Version: 1.1.11-1
Severity: wishlist
Tags: upstream

Dear Maintainer,

I was trying to play a midi file with:

fluidsynth -a pulseaudio sample.mid

but this can never work.

fluidsynth tries to get the soundfont from /usr/share/soundfonts/default.sf2 
which is hardcoded into the executable, but this directory doesn't exist under 
Debian. I thought I might be able to override the default by modifying 
/etc/default/fluidsynth but it doesn't appear that that file gets read at all 
(I used strace and looked for open() and openat() calls). It looks like 
fluidsynth can read config from $HOME/.fluidsynth or /etc/fluidsynth.conf but I 
couldn't work out how to set the soundfont - there is a setting 
"synth.default-soundfont" but that appears to be hard-coded in 
src/synth/fluid_synth.c

I can obviously fix the problem by creating a link from 
/usr/share/soundfonts/default.sf2 to e.g. /usr/share/sounds/sf2/FluidR3_GM.sf2 
but this isn't very satisfactory.

Is there a mechanism in Debian for setting a default soundfount? This could be 
used by gstreamer too. My suggestion would be to add a default soundfont to 
e.g. /etc/alteratives and then modify the hard-coded path in 
cmake_admin/DefaultDirs.cmake to use it.


-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages fluidsynth depends on:
ii  libc6   2.28-5
ii  libfluidsynth1  1.1.11-1

Versions of packages fluidsynth recommends:
ii  qsynth  0.5.0-2

fluidsynth suggests no packages.

-- Configuration Files:
/etc/default/fluidsynth changed:
SOUND_FONT=/usr/share/sounds/sf2/FluidR3_GM.sf2


-- no debconf information



Bug#882114: uhexen2-common: h2patch fails with "Error: delta file not found!"

2017-11-18 Thread Tim Colgate
Package: uhexen2-common
Version: 1.5.8+dfsg-1
Severity: important

Dear Maintainer,

I have the commercial disk for Hexen II (Xplosiv edition). After installing 
uhexen2 (and uhexen2-common), I followed the instructions at 
http://uhexen2.sourceforge.net/ (Read Me/Getting Started).

I copied the data files pak[01].pak from the CD to 
/usr/share/games/hexen2/data1.
I then ran h2patch, which failed with error "delta file not found!"
I ran strace on h2patch to find what file it was looking for; it turned out to 
be patchdat/data1/data1pk0.xd3.
I downloaded the Linux x86_64 binary tarballs for the 1.5.8 version and 
extracted data1pk0.xd3 and data1pk1.xd3.
I copied these 2 files into /usr/share/games/hexen2/patchdat/data1
h2patch now works OK and modifies pak[01].pak correctly.
The game seems to run fine.

So, it looks like the bug can be fixed by just adding these 2 files 
(data1pk[01].xd3) to the uhexen2-common package.

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.12.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

-- no debconf information



Bug#800821: also needs service files

2015-10-20 Thread Tim Colgate
Unfortunately quite a lot of paths have changed in the transition from KDE 4 to 
5, and dolphin moved to KDE5 while konqueror seems to be still on KDE4:

$ konqueror --version
Qt: 4.8.7
KDE Development Platform: 4.14.12
Konqueror: 4.14.10

$ dolphin --version
dolphin 15.08.1

I found that in addition to dolphinpart.so, you also need to copy/link various 
service files:

/usr/share/kde4/services/dolphinpart.desktop -> 
/usr/share/kservices5/dolphinpart.desktop
/usr/share/kde4/services/kcmdolphingeneral.desktop -> 
/usr/share/kservices5/kcmdolphingeneral.desktop
/usr/share/kde4/services/kcmdolphinnavigation.desktop -> 
/usr/share/kservices5/kcmdolphinnavigation.desktop
/usr/share/kde4/services/kcmdolphinservices.desktop -> 
/usr/share/kservices5/kcmdolphinservices.desktop
/usr/share/kde4/services/kcmdolphinviewmodes.desktop -> 
/usr/share/kservices5/kcmdolphinviewmodes.desktop

While the following binary files need to be taken from a previous version of 
dolphin:

/usr/lib/kde4/dolphinpart.so
/usr/lib/kde4/kcm_dolphingeneral.so
/usr/lib/kde4/kcm_dolphinnavigation.so
/usr/lib/kde4/kcm_dolphinservices.so
/usr/lib/kde4/kcm_dolphinviewmodes.so
/usr/lib/libdolphinprivate.so.4

This worked for me, although I can't guarantee it's either a minimal or a 
complete setup.

Ofc, better to downgrade the dolphin package as you suggest and wait for it to 
be fixed properly.