jwdj / EasyABC

EasyABC
GNU General Public License v2.0
90 stars 37 forks source link

Running EasyABC on OpenSUSE 15.5 - and 2 minor issues #76

Closed revad closed 6 months ago

revad commented 1 year ago

I had to rebuild EasyABC when I upgraded to OpenSUSE 15.5. I tried various versions of EasyABC, starting with the modified 1.3.8.6 that partly worked before (see #64) and various versions of python. I eventually got it working better than before because it will now play part of a tune.

I used a copy of 1.3.8.7 Master as at 12-AUG-23. I have: python 3.6 (which is still the system version in SUSE 15.5) wx 4.1.1 FluidSynth 2.3.0 (Not using JACK, though I tried it.)

I also have python 3.10 and I tried that in a venv but couldn't get wx to install.

I installed these packages in addition to the ones I already had. They may not all be necessary. python3-wxPython and uninstalled python-wxwidgets which was installed previously fluid-soundfont-gm (I was previously using another soundfont.) gstreamer-plugin-python gstreamer-plugins-bad-fluidsynth

In ABC Settings > File settings I leave midiplayer path blank and only add Soundfont: /usr/share/sounds/sf2/FluidR3_GM.sf2

To stop it segfaulting (#28) I added into fluidsynth.py the extra code from here: https://github.com/jwdj/EasyABC/issues/28#issuecomment-1120236925 I inserted it after these lines:

class Synth:            # interface for the FluidSynth synthesizer
    def __init__(self, gain=0.2, samplerate=44100.0, bsize=64, output_path=None):

I made 2 minor changes - both to suppress warnings:

1 To get rid of the frequent gstreamer error popups I deleted the line self.mc.Load('NONEXISTANT_FILE____.mid') from wxmediaplayer.py

This was noted in #28 & #54 and originally on sourceforge: https://sourceforge.net/p/easyabc/discussion/general/thread/524f3f9c/

I note that the 1.3.8.7 changelog includes "Fixed: Removed loading of NONEXISTANT_FILE for all players except wxmediaplayer" Why not that one too?

2 After a cold restart it displayed a warning popup and set the gs path to a b'/usr/bin/gs'. In easy_abc.py I changed: settings['gs_path'] = unicode(gs_path[0:-1]) to settings['gs_path'] = gs_path.decode()[:-1] That makes it consistent in the file settings.

Edit: I see that change was identified by sudobash1 in #66

I note in the changelog: "Fixed: Some users could not export a PDF because the ghostscript path was a byte string instead of a unicode string..." The pdf export still works.

revad commented 1 year ago

I have discovered that EasyABC is actually using Timidity, not fluidsynth. https://github.com/jwdj/EasyABC/issues/63#issuecomment-1748720887 I am investigating. There were breaking API changes in fluidsynth since it was implemented in EasyABC.

revad commented 6 months ago

Superseded by changes to fluidsynth.py - https://github.com/jwdj/EasyABC/pull/81