I managed to get the two emulators to run on Windows, but can't figure out how to do that on Ubuntu. I'd appreciate if you guys could give me step-by-step instructions for both because I have absolutely no idea what I have to do (I'm not as experienced with Linux as I am with Windows).
My distro is Mint 21.3 (Cinnamon) more specifically.
You probably have to compile both yourself, i.e. install a C++ compiler, cmake and all the development libraries that Munt/Nuked need for compilation.
If you're going to use Munt only for DOSBox, you could just install some DOSBox fork that comes with Munt integrated (I think Staging and DOSBox-x both have it). I don't know if Nuked is also integrated in some forks.
I'd agree that it depends on the intended usage, and if the goal is to add MT-32 emulation to DOSBox, then an integrated solution is a clear winner.
OTOH, if a stand-alone application is needed, it's possible to get an AppImage from SourceForge which ought to be highly compatible with lots of distributions. As a matter of fact, both currently available images work with Ubuntu-24.04 (after installing libfuse2) even.
I've been using MUNT and SC-55 SoundFont via TiMidity++ in Linux ever since I changed my main OS to Linux.
1.
To install MUNT, download the source file from https://github.com/munt/munt.git.
If you already have git installed, it's easy to pull it from github :
From a workspace directory, type
1git clone https://github.com/munt/munt.git
(I always compile from source in my own ~/.build directory.)
Once the above file is downloaded, extract from the compressed source. ( If using git, the source is already expanded into it's own directory.)
There, you only need to compile from two directories. First you have to setup the mt32emu libraries for MUNT to use. For this, enter into the mt32emu directory.
You need cmake to compile, so before starting, make sure you have the development files installed : build-essential, cmake, etc. Details are in the README.md file.
Personally, I use cmake-gui, since I can see at a glance what is missing, and enter data directly before configuring and generating the make files.
Then type
1make 2sudo make install
to install it.
Next, you need to compile the mt32emu_qt.
Enter the mt32emu_qt directory. This compilation needs additional developmental files. Including Jack, Portaudio, Alsa, Pulseaudio, QT6, etc developmental files. Again, details are in the README.md file of this directory.
As I mentioned above, when I use cmake-gui, and press configure, it will give me the list of installed libraries and if it satisfies for generating the make files. (Press Configure and then Generate in cmake-gui). If you are using cmake-gui, choose the unix makefiles to configure. Then generate. After successful generation, type
1make 2sudo make install
Once compilation is complete, it will put out the mt32emu-qt executable in the /usr/local/bin directory. It doesn't start without a logout and a login I think, but I just manually copy this mt32emu-qt file and overwrite the file in /usr/local/bin, and then it starts. Just start the mt32emu-qt to load MUNT.
Type aplaymidi -l while MUNT is loaded to see which port it is using. For me it is 128:0. Enter this information if Dosbox or other programs that look for the MIDI port for MT-32.
2.
[Note - Many prefer to use Fluidsynth, but for me I use TiMidity++]
AS for loading a SC-55 soundfont for GM/GS sounds, I use TiMidity++ : https://timidity.sourceforge.net/. As for the SC-55 SoundFont, I am using EmperorGrieferus' soundfont, which imho, is the closest sounding to my SC-55 MKII.
Compiling this is easier. After downloading the source file, extract it, and if you are using default Linux Mint installation, type :
This will autoconfigure. And once configured, type
1make 2sudo make install
Once it is done, you need to do one more step to make TiMidity++ to use the SC-55 soundfont you have. Create a file called timidity.cfg in /usr/local/share/timidity/ (create the timidity directory first).
Then enter the following :
1soundfont <space> <path to your soundfont file>
.
Example :
1soundfont ~/Roland/sc-55empgrieferus.sf2
Then to start TiMidity, run
1timidity -iA
You can run MUNT and TiMidity++ at the same time. They will open their own ports as shown in my screenshot below. I load MUNT first then TiMidity, during startup, and I delay the TiMidity autostart by a few seconds, to prevent port mix-up in games.
So for a profile that uses SC-55, I use the port 129:0 (taken from the aplaymidi -l output) in Dosbox or 86Box.
I run them both at startup via autostart, so that both MUNT and TiMidity++ run in background, and there is no need to keep a terminal window open and running.
If you are using XFCE, then whenever a games is using MUNT, you have this nice notification window popping up to display the MT-32 messages!
Last edited by Malik on 2024-07-23, 04:03. Edited 1 time in total.
As mentioned above, if you are using the above MIDI synths only for Dosbox, I suggest getting Dosbox-Staging, which comes with MUNT and Fluidsynth integrated. It is actively developed with more options.
It has some more dependencies required, which are all explained in the readme file.
I don't use the integrated MUNT and Fluidsynth from this Dosbox-Staging, and leave them out before compiling, since I also use 86Box, and it is easier to direct it and any other programs to use the permanent system-wide ports.
But if you would like to have a permanent MIDI "cards" installed like feeling, then you can try my above guide. And with it, you can use any readily available software like the official Dosbox from the Linux Mint repo. And you can direct any other software you install to use the pre-opened ports.
Thank you for the directions, guys. I was able to get them to run in Linux now.
Hey sergm, you're the creator of MUNT, right? I have a question for you. Would it be possible to implement a .WAV dumping feature? Since MUNT is also an emulator, it'd work basically like video game/computer emulators that can dump a game's .avi/.wav. That way you'd have a perfect audio record of your session, regardless if there were slowdowns or speedups during the process. Then you could share it in places like youtube or elsewhere.
...
Hey sergm, you're the creator of MUNT, right? I have a question for you. Would it be possible to implement a .WAV dumping feature? Since MUNT is also an emulator, it'd work basically like video game/computer emulators that can dump a game's .avi/.wav. That way you'd have a perfect audio record of your session, regardless if there were slowdowns or speedups during the process. Then you could share it in places like youtube or elsewhere.
THe 2nd record button on the Munt Qt interface at the 'Audio Output' part is for recording audio/wav: http://linuxmao.org/dl6602?display
THe 2nd record button on the Munt Qt interface at the 'Audio Output' part is for recording audio/wav: http://linuxmao.org/dl6602?display
That doesn't seem to work like in an emulator's .wav dumper though. It's a real-time recorder, similar to a screen recorder like OBS or such. So if there are any audio slowdowns or speedups during the recording session, they will appear in the recorded .wav file as well.
Anyway, I got another question. On MUNT, is there any difference between loading a mt32_1.0.7.ic26.bin + mt32_1.0.7.ic27.bin or only a r15449121.ic37.bin? Would the latter be less resource intensive since it's only one ROM or something?
THe 2nd record button on the Munt Qt interface at the 'Audio Output' part is for recording audio/wav: http://linuxmao.org/dl6602?display
That doesn't seem to work like in an emulator's .wav dumper though. It's a real-time recorder, similar to a screen recorder like OBS or such. So if there are any audio slowdowns or speedups during the recording session, they will appear in the recorded .wav file as well.
...
For such rendering of Midi files (instead of capturing real-time Midi output of games) you can find smf2wav in Munt's package.
I used MUNT and Fluidsynth to provide MIDI backends for old win9x games (via WINE), like FF7pc, War2BNE, and pals.
Rather than integrate MUNT with Fluidsynth though, I used daemonize along with 'what's left' of sysv-init (curse you lennart poettering! I cant take 2 steps without having to futz with 5 different tools set up what is adequately handled with an /etc/init.d start/stop script with your horseshit systemd bs running!) to start the provided alsa midi daemon.
Works just fine.
Still had to build it from source, but it does the job admirably!
Malikwrote on 2024-07-23, 03:02:1.
To install MUNT, download the source file from https://github.com/munt/munt.git.
If you already have git installed, it's easy […] Show full quote
1.
To install MUNT, download the source file from https://github.com/munt/munt.git.
If you already have git installed, it's easy to pull it from github :
From a workspace directory, type
1git clone https://github.com/munt/munt.git
(I always compile from source in my own ~/.build directory.)
Once the above file is downloaded, extract from the compressed source. ( If using git, the source is already expanded into it's own directory.)
There, you only need to compile from two directories. First you have to setup the mt32emu libraries for MUNT to use. For this, enter into the mt32emu directory.
You need cmake to compile, so before starting, make sure you have the development files installed : build-essential, cmake, etc. Details are in the README.md file.
Personally, I use cmake-gui, since I can see at a glance what is missing, and enter data directly before configuring and generating the make files.
Then type
1make 2sudo make install
to install it.
Next, you need to compile the mt32emu_qt.
Enter the mt32emu_qt directory. This compilation needs additional developmental files. Including Jack, Portaudio, Alsa, Pulseaudio, QT6, etc developmental files. Again, details are in the README.md file of this directory.
As I mentioned above, when I use cmake-gui, and press configure, it will give me the list of installed libraries and if it satisfies for generating the make files. (Press Configure and then Generate in cmake-gui). If you are using cmake-gui, choose the unix makefiles to configure. Then generate. After successful generation, type
1make 2sudo make install
Once compilation is complete, it will put out the mt32emu-qt executable in the /usr/local/bin directory. It doesn't start without a logout and a login I think, but I just manually copy this mt32emu-qt file and overwrite the file in /usr/local/bin, and then it starts. Just start the mt32emu-qt to load MUNT.
Type aplaymidi -l while MUNT is loaded to see which port it is using. For me it is 128:0. Enter this information if Dosbox or other programs that look for the MIDI port for MT-32.
Hey Malik, I'm only attempting to compile MUNT now. Previously I got it to work by using its AppImage from sourceforge, but I realized it's sometimes running kinda slowly, and that's because it's a containerized format.
So, I followed your instructions and pulled from github. You said I first need to run "make", then "sudo make install" in the mt32emu directory. However, there's no Makefile at all there, so I can't make anything. This is how my directory looks like:
You said I first need to run "make", then "sudo make install" in the mt32emu directory. However, there's no Makefile at all there, so I can't make anything.
You missed the cmake step. Something like (in the mt32emu directory):
1mkdir build 2cd build 3cmake ..
will create the Makefile and other supporting files so you can then run make and the rest.
MIDIfanwrote on 2024-09-21, 20:42:Hey Malik, I'm only attempting to compile MUNT now. Previously I got it to work by using its AppImage from sourceforge, but I r […] Show full quote
Malikwrote on 2024-07-23, 03:02:1.
To install MUNT, download the source file from https://github.com/munt/munt.git.
If you already have git installed, it's easy […] Show full quote
1.
To install MUNT, download the source file from https://github.com/munt/munt.git.
If you already have git installed, it's easy to pull it from github :
From a workspace directory, type
1git clone https://github.com/munt/munt.git
(I always compile from source in my own ~/.build directory.)
Once the above file is downloaded, extract from the compressed source. ( If using git, the source is already expanded into it's own directory.)
There, you only need to compile from two directories. First you have to setup the mt32emu libraries for MUNT to use. For this, enter into the mt32emu directory.
You need cmake to compile, so before starting, make sure you have the development files installed : build-essential, cmake, etc. Details are in the README.md file.
Personally, I use cmake-gui, since I can see at a glance what is missing, and enter data directly before configuring and generating the make files.
Then type
1make 2sudo make install
to install it.
Next, you need to compile the mt32emu_qt.
Enter the mt32emu_qt directory. This compilation needs additional developmental files. Including Jack, Portaudio, Alsa, Pulseaudio, QT6, etc developmental files. Again, details are in the README.md file of this directory.
As I mentioned above, when I use cmake-gui, and press configure, it will give me the list of installed libraries and if it satisfies for generating the make files. (Press Configure and then Generate in cmake-gui). If you are using cmake-gui, choose the unix makefiles to configure. Then generate. After successful generation, type
1make 2sudo make install
Once compilation is complete, it will put out the mt32emu-qt executable in the /usr/local/bin directory. It doesn't start without a logout and a login I think, but I just manually copy this mt32emu-qt file and overwrite the file in /usr/local/bin, and then it starts. Just start the mt32emu-qt to load MUNT.
Type aplaymidi -l while MUNT is loaded to see which port it is using. For me it is 128:0. Enter this information if Dosbox or other programs that look for the MIDI port for MT-32.
Hey Malik, I'm only attempting to compile MUNT now. Previously I got it to work by using its AppImage from sourceforge, but I realized it's sometimes running kinda slowly, and that's because it's a containerized format.
So, I followed your instructions and pulled from github. You said I first need to run "make", then "sudo make install" in the mt32emu directory. However, there's no Makefile at all there, so I can't make anything. This is how my directory looks like:
And this is the error I get:
Some help would be appreciated.
Sorry for the delay. And sorry, I didn't stress the cmake part enough, even though I mentioned it and posted the cmake-gui window in progress.
I use CMAKE-GUI to configure and generate the make files. This needs to be done before "make".
Once you have cmake-gui, choose the source and build directory ( source is the directory for the current program to compile, and build directory is where you will have the compiled build placed after making, which can be anything, but you can just create "build" directory within the current one and point cmake to that.)
Then choose configure button there to configure, and if all dependencies are installed, cmake-gui will display that configuration is done. Then click generate to genrerate the make files. Then proceed with the rest of the steps.
(I use cmake-gui - the gui front-end for cmake which makes things easier.)