I am following the ZDoom wiki instructions to compile GZDoom for Linux. The timidity and wildmidi libraries are listed as optional build and runtime dependencies. Similarly, the dependencies installation examples for most of the Linux distros lists these packages in their install list.
However, from the CMake configuration print out, it looks like it only searches for fluidsynth on the system. Does GZDoom ever build dynamically linked to the system's timidity and wildmidi libraries, or does it always build statically linked to the timidity and wildmidi provided locally within the GZDoom source code repository?
Are the timidity and wildmidi system packages dependencies
Moderator: GZDoom Developers
Forum rules
Contrary to popular belief, we are not all-knowing-all-seeing magical beings!
If you want help you're going to have to provide lots of info. Like what is your hardware, what is your operating system, what version of GZDoom/LZDoom/whatever you're using, what mods you're loading, how you're loading it, what you've already tried for fixing the problem, and anything else that is even remotely relevant to the problem.
We can't magically figure out what it is if you're going to be vague, and if we feel like you're just wasting our time with guessing games we will act like that's what you're really doing and won't help you.
Contrary to popular belief, we are not all-knowing-all-seeing magical beings!
If you want help you're going to have to provide lots of info. Like what is your hardware, what is your operating system, what version of GZDoom/LZDoom/whatever you're using, what mods you're loading, how you're loading it, what you've already tried for fixing the problem, and anything else that is even remotely relevant to the problem.
We can't magically figure out what it is if you're going to be vague, and if we feel like you're just wasting our time with guessing games we will act like that's what you're really doing and won't help you.
-
- Posts: 15
- Joined: Thu May 09, 2019 8:19 am
- Contact:
Are the timidity and wildmidi system packages dependencies
Last edited by vilhelmgray on Sat May 11, 2019 8:43 pm, edited 1 time in total.
Re: Are the timidity++ and wildmidi system packages dependen
The build instructions are actually a bit outdated. GZDoom uses an internal timidity library - I don't have any idea if Graf implemented support to have it use a system library for it. I would suspect not. It used to actually use timidity externally because with Timidity's licensing status it used to be illegal to include its code inside GZDoom. Even in Windows, you had to provide your own Timidity executable for it to work.
Once Graf got GZDoom into the GPL licensing status, he was able to import Timidity's library completely and use it internally, instead, which boosted its performance considerably, especially with song loading.
I am not sure about wildmidi, though. I have not kept myself appraised to its developments.
Once Graf got GZDoom into the GPL licensing status, he was able to import Timidity's library completely and use it internally, instead, which boosted its performance considerably, especially with song loading.
I am not sure about wildmidi, though. I have not kept myself appraised to its developments.
-
- Posts: 15
- Joined: Thu May 09, 2019 8:19 am
- Contact:
Re: Are the timidity and wildmidi system packages dependenci
Ah, so in the past Timidity was linked externally; but now that the license allows it, Timidity will always be linked statically since it's provided internally with the GZDoom source code?
Re: Are the timidity and wildmidi system packages dependenci
That is correct.
-
- Posts: 15
- Joined: Thu May 09, 2019 8:19 am
- Contact:
Re: Are the timidity and wildmidi system packages dependenci
You're right, it looks like the Timidity++ ZDoom wiki page lists the version this started as GZDoom version 3.3.0.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49056
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Are the timidity and wildmidi system packages dependenci
Both Timidity++ and WildMidi are heavily modified versions so they cannot be an external dependencies. For WildMidi the MIDI loader was removed to allow driving it by ZDoom's own MIDI player and in case of Timidity++ even more work was needed. The original code was a self-contained executable with a complete GUI that had no means to hook it up to an external player. This was stripped down to only contain the actual MIDI event processing so that, like all the other synths, could be driven by ZDoom's MIDI player.
Please note that the ZDoom building instructions no longer apply to GZDoom, because many important changes were made after ZDoom ceased development!
This still begs the question: Should the build instructions page be kept in such a messy state where it still covers 1.x and 2.x which are more than two years old? I think that page should reflect the current state of things and not be such a mess that tries to cover all eventualities.
Please note that the ZDoom building instructions no longer apply to GZDoom, because many important changes were made after ZDoom ceased development!
This still begs the question: Should the build instructions page be kept in such a messy state where it still covers 1.x and 2.x which are more than two years old? I think that page should reflect the current state of things and not be such a mess that tries to cover all eventualities.
Re: Are the timidity and wildmidi system packages dependenci
The build instructions these days are pretty simple: Install git+compiler+cmake, Install OpenAL (if non-Windows, otherwise if Windows then grab the .dll's from the distributions), clone+cmake+build. If I am wrong, CMake will tell you what packages you need.
In fact, you could follow the .travis.yml file for hints on how to properly create the build system for any platform.
Hopefully someone more knowledgeable about wiki markdown will be able to update that wiki page...
In fact, you could follow the .travis.yml file for hints on how to properly create the build system for any platform.
Hopefully someone more knowledgeable about wiki markdown will be able to update that wiki page...