Midi support

Version 32 introduced support for Musical Instrument Digital Interface (MIDI). Currently two emulations are supported MT-32 and Synth.
Setting mpu401 to none in expert settings instead intelligent will disable MIDI emulation
Synth emulation
This emulation uses external "Soundfont" files (*.sf2) for playing midi. You can find plenty free soundFonts like GeneralUserGSFluidSynthv1.44.sf2 or similar over web.
Enabling Synth

You can setup Synth in game profile. Or in expert settings this way :
[midi]
mpu401=intelligent
mididevice=synth
midiconfig=/storage/emulated/0/SoundFont.sf2
synth.gain=6
synth.sample-rate=48000
synth.gain = 0..100
Distortion fix. Default value is 6.

synth.sample-rate = 44100|49716|48000|32000|22050|16000|11025|8000
Sample quality

MT-32 emulation
MT-32 emulation is based on Munt library and requires two external ROM files - (MT32_CONTROL.ROM or CM32L_CONTROL.ROM) and (MT32_PCM.ROM or CM32L_PCM.ROM). These files can't be part of Magic Dosbox app. Munt library emulates MT-32 device on very accurate level. Turning thread ON will speed up emulation on devices with more processors.
Enabling MT-32

You can setup MT-32 in game profile. Or in expert settings this way :
[midi]
mpu401=intelligent
mididevice=mt32
mt32.romdir=/storage/emulated/0/ROMDIR
mt32.thread=on
Additional settings

Based on Munt documentation
mt32.reverse.stereo = on|off
Reverse stereo channels for MT-32 output

mt32.reverb.mode = 0|1|2|3|auto
MT-32 reverb mode

mt32.reverb.time = 0|1|2|3|4|5|6|7
MT-32 reverb decaying time

mt32.reverb.level = 0|1|2|3|4|5|6|7
MT-32 reverb level

mt32.thread = on|off
MT-32 rendering in separate thread

mt32.chunk = 2|3|16|99|100
Minimum milliseconds of data to render at once. Increasing this value reduces rendering overhead which may improve performance but also increases audio lag. Valid for rendering in separate thread only.

mt32.prebuffer = 3|4|32|199|200
How many milliseconds of data to render ahead. Increasing this value may help to avoid underruns but also increases audio lag. Cannot be set less than or equal to mt32.chunk value. Valid for rendering in separate thread only.

mt32.partials = 8|9|32|255|256
The maximum number of partials playing simultaneously.

mt32.dac = 0|1|2|3
Nice = 0 - default. Produces samples at double the volume, without tricks. Higher quality than the real devices

Pure = 1. Produces samples that exactly match the bits output from the emulated LA32.

GENERATION1 = 2. Re-orders the LA32 output bits as in early generation MT-32s.

GENERATION2 = 3. Re-orders the LA32 output bits as in later generations.

mt32.analog = 0|1|2|3
Digital = 0. Only digital path is emulated. The output samples correspond to the digital output signal appeared at the DAC entrance. Fastest mode.

Coarse = 1. Coarse emulation of LPF circuit. High frequencies are boosted, sample rate remains unchanged. A bit better sounding but also a bit slower.

Accurate = 2. Finer emulation of LPF circuit. Output signal is upsampled to 48 kHz to allow emulation of audible mirror spectra above 16 kHz, which is passed through the LPF circuit without significant attenuation. Sounding is closer to the analog output from real hardware but also slower than the modes 0 and 1.

Oversampled = 3. Same as the default mode 2 but the output signal is 2x oversampled, i.e. the output sample rate is 96 kHz. Even slower than all the other modes but better retains highest frequencies while further resampled in DOSBox mixer.