nukeykt / NBlood

Reverse-engineered ports of Build games using EDuke32 engine technology and development principles (NBlood/Rednukem/PCExhumed)
621 stars 78 forks source link

MIDI device missing under Linux? #532

Open putridpete opened 2 years ago

putridpete commented 2 years ago

I've compiled NBlood, Rednukem and PCExhumed under Arch Linux using the build instructions from the EDuke32 wiki. However, unlike with EDuke32 that after compiling has the option of choosing ALSA MIDI as the MIDI driver, I can't do the same in both NBlood and Rednukem. My only options are the OPL3 emulator or directly loading a .sf2 file from the menu.

Am I missing something here like a dependency? Thanks in advance.

PD: I also managed to load a .sf2 file using the source port option, but the music sound is extremely low. I have the music volume set at 100% but it sounds more like 5-10%. Not sure if this is a configuration issue on my part, but maybe it's worth mentioning just in case.

arrowgent commented 2 years ago

fluidsynth or timidity?

i actually use CD audio so i didnt get into testing the midi

putridpete commented 2 years ago

I'm using Fluidsynth, with the Qsynth graphical front end. I've also tried running the game from the terminal with a command like DL_SOUNDFONTS=/path/to/soundfont/soundfont.sf2 ./rednukem as I use in Chocolate/Crispy Doom to no avail. Changing to different MIDI devices using cvars was also unsuccessful.

NY00123 commented 2 years ago

The main problem is that historically, the only EDuke32-based port being around was EDuke32 itself. You didn't have other games modules, like Rednukem or NBlood. A side-effect of this is that each game module has its own separate menu code, with most of the sharing being done via CVARs, at least for what's shared.

SF2 was added to the separate menus as present in EDuke32, Rednukem and NBlood, while ALSA MIDI was added just to EDuke32's. SF2 files also serve a significantly larger audience, namely, Windows users.

Kappa971 commented 2 years ago

PD: I also managed to load a .sf2 file using the source port option, but the music sound is extremely low. I have the music volume set at 100% but it sounds more like 5-10%. Not sure if this is a configuration issue on my part, but maybe it's worth mentioning just in case.

I have the same problem. It also appears that some instruments are not being played, only OPL3 seems to work correctly. Having ALSA MIDI as a MIDI driver like EDuke32 in the game menu would allow us to use Timidity (or other).

SF2 was added to the separate menus as present in EDuke32, Rednukem and NBlood, while ALSA MIDI was added just to EDuke32's. SF2 files also serve a significantly larger audience, namely, Windows users.

Actually the users who need SF2 the most are Linux ones (but in my case it doesn't work correctly, only OPL3 works correctly). Windows doesn't need SF2 option, it has a built-in software synthesizer (MS GS Wavetable) or you can use other synthesizers that use soundfont sf2 or a VST (ex. SCVA), which is currently not possible on Linux due to the lack of ALSA MIDI in Rednukem/NBlood/PCExhumed.