Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SteamOS 3.5 - Client 128: 'Munt MT-32' Misssing #116

Closed
kingjoma opened this issue Jan 25, 2024 · 5 comments
Closed

SteamOS 3.5 - Client 128: 'Munt MT-32' Misssing #116

kingjoma opened this issue Jan 25, 2024 · 5 comments
Assignees

Comments

@kingjoma
Copy link

kingjoma commented Jan 25, 2024

Hi All

I am a linux noob. After purchasing a SteamDeck and in an attempt to achieve outcomes from first principles I am trying to get MUNT to work with Dosbox 0.74-3 from the flathub repo (??). I successfully grabbed the DosBox flatpak from the Discover Store and successfully downloaded, compiled and installed MUNT using terminal commands. I know that there are Dosbox versions with built in MT-32 support, which I have installed (eg. Dosbox Staging) but in order to understand Linux a bit better am challenging myself to code from first principles. After running the mt32emu-qt command from the terminal and then running:
aconnect -o
I am expecting to see
client 128: 'Munt MT-32' [type=user] 0 'Standard'
The issue is the line regarding client 128 is blank. MUNT launches, I have the ROMs installed and have tested midi files through MUNT and get sound, but when trying to point
midiconfig=128:0
in the dosbox config file, it is not working.
Here are the steps I took to install MUNT, there were dependencies I needed to install and initialise features on SteamOS that are normally not used in vanilla SteamOS builds:
sudo steamos-readonly disable
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --populate holo
sudo pacman -Syu
sudo pacman -S qt5-multimedia
sudo pacman -S qt6-multimedia
git clone http://www.github.com/munt/munt
sudo pacman -S install build-essential
sudo pacman -S libgl
cmake -DCMAKE_BUILD_TYPE:STRING=Release
make
sudo make install
mt32emu-qt
I then added the '/usr/local/lib' path to /etc/ld.so.conf.d to ensure MUNT picked up the local library and then ran
sudo ldconfig
Please assist in trying to understand why the MUNT client is not showing up?
Thanks

@sergm
Copy link
Member

sergm commented Jan 25, 2024

Hi,

I suppose, the build of mt32emu-qt doesn't include support for ALSA MIDI. This is an optional dependency, and is included in the build on Linux systems only, otherwise the compilation proceeds without ALSA MIDI driver. This is controlled by CMake property mt32emu-qt_WITH_ALSA_MIDI_SEQUENCER, check if it is enabled. Ultimately, ALSA MIDI driver resides in ALSADriver.cpp which must be compiled during the build for it to work. If the compilation breaks with this property enabled, some more packages might might need to be added.

Good luck!

@kingjoma
Copy link
Author

kingjoma commented Jan 25, 2024

Hi. Thanks for the quick response.

The build I have includes the following directory:
../munt/mt32emu_alsadrv

I read the readme.txt file in that directory and with the intention to do the following as per the readme notes:

make
su root
make install

After running make I get the following error:
src/asladrv.cpp:36:10: fatal error: alsa/version.h: No such file or directory

I then checked the contents of
../munt/mt32emu_alsadrv/src
and both alsadrv.cpp and alsadrv.h are present in that folder. Where is the alsa/version.h supposed to be located?

Can you provide further troubleshooting guidance?

Thanks

@sergm
Copy link
Member

sergm commented Jan 25, 2024

Hmm, such an error is very likely an indication of missing ALSA development files, AIUI. I have no clue how the related package is named in this OS, so can't be more helpful. However, you probably don't want to compile mt32emu_alsadrv. That is a separate project unrelated to mt32emu-qt, and you might miss its features if switched to it. I'd recommend applying further effort to making mt32emu-qt compiled with full ALSA MIDI support instead.

@kingjoma
Copy link
Author

Hi

Thanks. The guidance to ensure the correct option in the mt32emu-qt compile is selected was great.

To provide further context SteamOS is based on Arch Linux.

What distros did you have in mind when writing the code?

I found the following logic in the Cmakelists.txt file:

find_package(ALSA MODULE)
if(ALSA_FOUND)
  add_definitions(-DWITH_ALSA_AUDIO_DRIVER)
  list(APPEND EXT_LIBS ${ALSA_LIBRARIES})
  include_directories(${ALSA_INCLUDE_DIRS})
  list(APPEND mt32emu_qt_SOURCES src/audiodrv/AlsaAudioDriver.cpp)
  if(mt32emu-qt_WITH_ALSA_MIDI_SEQUENCER)
    add_definitions(-DWITH_ALSA_MIDI_DRIVER)
    list(APPEND mt32emu_qt_SOURCES src/mididrv/ALSADriver.cpp)
  endif()
endif()

I think the clue to solving this particular issue is where in the OS file structure is the compiler supposed to be looking for ALSA MODULE and what file names and/or libraries is it looking for to satisfy the find_package command. Is it distro specific?

Thanks.

@kingjoma
Copy link
Author

Solved. Needed to install the alsa-lib package from Arch Linux Repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants