Closed revad closed 6 months 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.
Superseded by changes to fluidsynth.py - https://github.com/jwdj/EasyABC/pull/81
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:
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.