1 | #+TITLE: Fluidsynth Notes |
---|
2 | #+AUTHOR: kakuhen |
---|
3 | #+LANGUAGE: en |
---|
4 | |
---|
5 | * Introduction |
---|
6 | This document outlines an update to fluidsynth version 2.2.8 and its effects on |
---|
7 | dependent ports. |
---|
8 | |
---|
9 | Version 2.2.8 compiles successfully, without pathces needed, on Mac OS X 10.15.7 |
---|
10 | using Xcode 12.4. This release introduces breaking API and ABI changes, so we |
---|
11 | will test dependents on this same platform. |
---|
12 | |
---|
13 | * denemo |
---|
14 | |
---|
15 | ** Compiling in source and trace mode |
---|
16 | On my personal machine, I have gtk3 installed with +quartz. This prevents |
---|
17 | =gnome-desktop= from being built. With that said, building other ports, such as |
---|
18 | =gspell= also needed gtk3 with the +x11 variant, so I caved in and installed |
---|
19 | that. ... Then I saw texlive as dependencies and decided to allow binary |
---|
20 | archives. |
---|
21 | |
---|
22 | ** Compiling in trace mode, allowing binary archives |
---|
23 | Compilation of everything succeeded, many ports such as =lilypond= and |
---|
24 | =portmidi= had to be built from source, a good sign. Moreover, the compilation |
---|
25 | of =denemo= was succesful. |
---|
26 | |
---|
27 | A basic test of the binary seems to suggest it is working, albeit with some |
---|
28 | issues unrelated to fluidsynth. For instance, attempting to pread from |
---|
29 | =/proc/self/exe= is almost certainly a bug. This is likely FreeBSD code being |
---|
30 | shared with Darwin code; upstream should know that =/proc= does not exist on |
---|
31 | Darwin and it is further /optional/ on FreeBSD, so it is unsafe to assume a |
---|
32 | procfs is mounted in FreeBSD anyway. |
---|
33 | |
---|
34 | #+begin_example |
---|
35 | Denemo - MESSAGE : Audio driver is 'portaudio' |
---|
36 | Denemo - MESSAGE : Initializing Fluidsynth |
---|
37 | Denemo - MESSAGE : The default fluidsynth soundfont has been loaded |
---|
38 | Denemo - MESSAGE : Initializing Rubberband |
---|
39 | Denemo - MESSAGE : Initializing PortAudio backend |
---|
40 | Denemo - MESSAGE : Opening output device 'Core Audio: 外部ヘッドフォン' |
---|
41 | Denemo - MESSAGE : MIDI driver is 'portmidi' |
---|
42 | Denemo - MESSAGE : Initializing PortMidi backend |
---|
43 | Denemo - WARNING : No MIDI input device, and no default device |
---|
44 | Denemo - MESSAGE : Destroying PortMidi backend |
---|
45 | Denemo - WARNING : Initializing MIDI backend 'portmidi' failed, falling back to dummy |
---|
46 | Denemo - MESSAGE : Initializing dummy MIDI backend |
---|
47 | /proc/self/exe: No such file or directory |
---|
48 | (last message repeated 614 times) |
---|
49 | Denemo - MESSAGE : Denemo version 2.6.0 |
---|
50 | Denemo - MESSAGE : Loaded keymap /opt/local/share/denemo/actions/Default.commands |
---|
51 | #+end_example |
---|
52 | |
---|
53 | ** Conclusion |
---|
54 | Build succeeds and binary seemed functional when testing. The software is |
---|
55 | compatible with fluidsynth 2.2.8. |
---|
56 | |
---|
57 | * lmms |
---|
58 | |
---|
59 | ** Compiling in source and trace mode |
---|
60 | Build fails due to =aqua/fltk= configuration failing. It looks like the problem |
---|
61 | has to do with patching a Makefile and not including autoconf as a dependency. |
---|
62 | #+begin_example |
---|
63 | ---> Fetching distfiles for fltk |
---|
64 | ---> fltk-1.3.8.tar.gz does not exist in /opt/local/var/macports/distfiles/fltk |
---|
65 | ---> Attempting to fetch fltk-1.3.8.tar.gz from https://distfiles.macports.org/fltk |
---|
66 | % Total % Received % Xferd Average Speed Time Time Time Current |
---|
67 | Dload Upload Total Spent Left Speed |
---|
68 | 100 5044k 100 5044k 0 0 529k 0 0:00:09 0:00:09 --:--:-- 695k |
---|
69 | ---> Verifying checksums for fltk |
---|
70 | ---> Checksumming fltk-1.3.8.tar.gz |
---|
71 | ---> Extracting fltk |
---|
72 | ---> Extracting fltk-1.3.8.tar.gz |
---|
73 | Executing: cd "/opt/local/var/macports/build/_Users_kakuhen_Developer_macports-ports_aqua_fltk/fltk/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/fltk/fltk-1.3.8.tar.gz' | /usr/bin/tar -xf - |
---|
74 | Warning: The following existing file was hidden from the build system by trace mode: |
---|
75 | /private/var/select/sh |
---|
76 | ---> Patching Makefile: s|/Applications|/Applications/MacPorts/fltk|g |
---|
77 | ---> Patching Makefile: s|/Applications|/Applications/MacPorts/fltk|g |
---|
78 | ---> Patching makeinclude.in: /^\.SILENT:$/d |
---|
79 | Makefile:17: makeinclude: No such file or directory |
---|
80 | autoconf |
---|
81 | make: autoconf: No such file or directory |
---|
82 | make: *** [configure] Error 1 |
---|
83 | Command failed: CC=/usr/bin/clang make config.sub |
---|
84 | Exit code: 2 |
---|
85 | Warning: The following existing files were hidden from the build system by trace mode: |
---|
86 | /opt/local/bin/autoconf |
---|
87 | /private/var/select/sh |
---|
88 | The following file would have been hidden from the build system by trace mode if it existed: |
---|
89 | /usr/gnu/include |
---|
90 | Error: Failed to patch fltk: command execution failed |
---|
91 | #+end_example |
---|
92 | |
---|
93 | ** Compiling in trace mode, allowing binary archives |
---|
94 | Seems to fail at around 72% of the way compiling on my machine. |
---|
95 | #+begin_example |
---|
96 | /opt/local/var/macports/build/.../lmms/work/lmms-1.1.3/plugins/LadspaEffect/calf/src/modules_limit.cpp:543:27: error: no matching function for call to 'min' |
---|
97 | buffer[pos] = std::min(*params[param_limit] / std::max(fabs(sum_left), fabs(sum_right)), 1.0); |
---|
98 | ^~~~~~~~ |
---|
99 | #+end_example |
---|
100 | This is the exact same problem as reported in [[https://trac.macports.org/ticket/58009][#58009]]. |
---|
101 | |
---|
102 | ** Conclusion |
---|
103 | Build fails, but not due to fluidsynth. The software is likely compatible with |
---|
104 | fluidsynth 2.2.8. |
---|
105 | |
---|
106 | * gstreamer1-gst-plugins-bad |
---|
107 | |
---|
108 | ** Compiling in source and trace mode |
---|
109 | Compilation fails due to compilation of =graphics/grapehene= configuration |
---|
110 | failing. |
---|
111 | #+begin_example |
---|
112 | meson.build:1:0: ERROR: Unknown options: "benchmarks" |
---|
113 | #+end_example |
---|
114 | |
---|
115 | ** Compiling in trace mode, allowing binary archives |
---|
116 | =graphics/graphene= installation proceeds normally and |
---|
117 | =gstreamer1-gst-plugins-bad= succesfully builds. |
---|
118 | |
---|
119 | ** Conclusion |
---|
120 | Build succeeds, the software is compatible with fluidsynth 2.2.8. |
---|