I use the DOS program Voyetra Sequencer Plus Gold to sequence external MIDI synthesizers. I'm able to sequence synths with Voyetra SPG on real 486, Pentium, and Pentium II computers as well as under DOSBox-X and DOSBox in Windows 11 and all of them send and receive MIDI clock sync.
For some odd reason, I can't get DOSBox-X on Linux with the ALSA driver to send nor receive these signals. It will send and receive every other MIDI signal (Note On/Off, CC, etc); everything except MIDI clock sync.
I've used the built-in MIDI monitor on Akai's MPC One to confirm this. In Linux, both amidi and aseqdump confirm that ALSA will receive the 0xFA (start), 0xFB (stop), 0xFC (continue), and 0xF8 (clock sync) signals when I use the MPC One as the clock source. The MPC One will receive the clock signals from Linux when I used Schism Tracker as a clock source.
I've tested this in both Ubuntu 22.04 on a AMD Ryzen 9 5800 computer and in Raspbian 11 on a Raspberry Pi 3B+ to confirm that it isn't an issue with the machine or distro. I tried this in both DOSBox-X's built in OS and a hard drive image with MSDOS 6.22 installed. I even tried to use aconnect to route the MIDI differently. No matter what I do, I can't get DOSBox-X to send or receive MIDI clock sync.
I'm usually pretty good at troubleshooting or at least figuring out a workaround but after 5 hours of stubbornly trying to get it to work, I'm convinced this is a bug with DOSBox-X in Linux. I understand that is is a very niche issue, but if anyone knows a trick to get it to send or receive MIDI clock in Linux, I'd really appreciate the help
Steps to reproduce the behaviour
Run DOSBox-X on a linux-based machine
Set DOSBox-X MIDI configuration to run ALSA driver with your MIDI interface selected as the device
Run a DOS program that produces a MIDI clock sync signal (such as Voyetra SPG) within DOSBox-X
Connect MIDI out from MIDI interface to MIDI hardware that has its own sequencer (or better yet, an external MIDI monitor)
Set your MIDI device to be controlled by an external MIDI clock
If using SPG, load a .SNG or .MID file into SPG or create at least one measure of notes. Make sure SPG is set to an Internal Clock with Real Time Out set to On.
Play MIDI sequence from DOSBox-X
Observe that the external MIDI hardware does not start its sequence or match tempo with MIDI sequence from DOSBox-X (or if using a MIDI monitor, that not stream of F8 signals are sent)
Expected behavior
External MIDI sequencer should start and stop with Voyetra SPG, playing at the same tempo as the tempo set in SPG
What operating system(s) this bug have occurred on?
Ubuntu 22.04, Raspbian 11
What version(s) of DOSBox-X have this bug?
commit 6e747515bd95aea93ac087d397569abc8a5dc6d0
Used configuration
[midi]
# mpu401: Type of MPU-401 to emulate.
# Possible values: intelligent, uart, none.
# mpubase: The IO address of the MPU-401.
# Set to 0 to use a default I/O address.
# 300h to 330h are for use with IBM PC mode.
# C0D0h to F8D0h (in steps of 800h) are for use with NEC PC-98 mode (MPU98).
# 80D2h through 80DEh are for use with NEC PC-98 Sound Blaster 16 MPU-401 emulation.
# If not assigned (0), 330h is the default for IBM PC and E0D0h is the default for PC-98.
# Possible values: 0, 300, 310, 320, 330, 332, 334, 336, 340, 360, c0d0, c8d0, d0d0, d8d0, e0d0, e8d0, f0d0, f8d0, 80d2, 80d4, 80d6, 80d8, 80da, 80dc, 80de.
# mididevice: Device that will receive the MIDI data from MPU-401.
# Possible values: default, win32, alsa, oss, coreaudio, coremidi, mt32, synth, fluidsynth, timidity, none.
# midiconfig: Special configuration options for the device driver. This is usually the id or part of the name of the device you want to use
# (find the id/name with mixer/listmidi).
# Or in the case of coreaudio or synth, you can specify a soundfont here.
# When using a Roland MT-32 rev. 0 as midi output device, some games may require a delay in order to prevent 'buffer overflow' issues.
# In that case, add 'delaysysex', for example: midiconfig=2 delaysysex
# See the README/Manual for more details.
# samplerate: Sample rate for MIDI synthesizer, if applicable.
# Possible values: 49716, 48000, 44100, 32000, 22050, 16000, 11025, 8000.
# mpuirq: MPU-401 IRQ. -1 to automatically choose.
# mt32.romdir: Name of the directory where MT-32 Control and PCM ROM files can be found. Emulation requires these files to work.
# Accepted file names are as follows:
# MT32_CONTROL.ROM or CM32L_CONTROL.ROM - control ROM file.
# MT32_PCM.ROM or CM32L_PCM.ROM - PCM ROM file.
# mt32.model: Model of the MT-32 synthesizer to use.
# Possible values: cm32l, mt32, auto.
# fluid.driver: Driver to use with Fluidsynth, not needed under Windows. Available drivers depend on what Fluidsynth was compiled with.
# Possible values: pulseaudio, alsa, oss, coreaudio, dsound, portaudio, sndman, jack, file, default.
# fluid.soundfont: Soundfont (.SF2 or .SF3) to use with Fluidsynth. One must be specified (e.g. GeneralUser_GS.sf2).
#
# Advanced options (see full configuration reference file [dosbox-x.reference.full.conf] for more details):
# -> mt32.reverse.stereo; mt32.verbose; mt32.thread; mt32.chunk; mt32.prebuffer; mt32.partials; mt32.dac; mt32.analog; mt32.output.gain; mt32.reverb.mode; mt32.reverb.output.gain; mt32.reverb.time; mt32.reverb.level; mt32.rate; mt32.src.quality; mt32.niceampramp; mt32.engage.channel1; fluid.samplerate; fluid.gain; fluid.polyphony; fluid.cores; fluid.periods; fluid.periodsize; fluid.reverb; fluid.chorus; fluid.reverb.roomsize; fluid.reverb.damping; fluid.reverb.width; fluid.reverb.level; fluid.chorus.number; fluid.chorus.level; fluid.chorus.speed; fluid.chorus.depth; fluid.chorus.type
#
mpu401 = intelligent
mpubase = 330
mididevice = alsa
midiconfig = 20:0
samplerate = 48000
mpuirq = -1
mt32.romdir =
mt32.model = auto
fluid.driver =
fluid.soundfont =
Output log
N/A ("LOG:" does not print anything in console when Voyetra SPG is played)
Additional information
No response
Have you checked that no similar bug report(s) exist?
[X] I have searched and didn't find any similar bug report.
Code of Conduct & Contributing Guidelines
[X] I agree to follow the code of conduct and the contributing guidelines.
Describe the bug
I use the DOS program Voyetra Sequencer Plus Gold to sequence external MIDI synthesizers. I'm able to sequence synths with Voyetra SPG on real 486, Pentium, and Pentium II computers as well as under DOSBox-X and DOSBox in Windows 11 and all of them send and receive MIDI clock sync.
For some odd reason, I can't get DOSBox-X on Linux with the ALSA driver to send nor receive these signals. It will send and receive every other MIDI signal (Note On/Off, CC, etc); everything except MIDI clock sync.
I've used the built-in MIDI monitor on Akai's MPC One to confirm this. In Linux, both amidi and aseqdump confirm that ALSA will receive the 0xFA (start), 0xFB (stop), 0xFC (continue), and 0xF8 (clock sync) signals when I use the MPC One as the clock source. The MPC One will receive the clock signals from Linux when I used Schism Tracker as a clock source.
I've tested this in both Ubuntu 22.04 on a AMD Ryzen 9 5800 computer and in Raspbian 11 on a Raspberry Pi 3B+ to confirm that it isn't an issue with the machine or distro. I tried this in both DOSBox-X's built in OS and a hard drive image with MSDOS 6.22 installed. I even tried to use aconnect to route the MIDI differently. No matter what I do, I can't get DOSBox-X to send or receive MIDI clock sync.
I'm usually pretty good at troubleshooting or at least figuring out a workaround but after 5 hours of stubbornly trying to get it to work, I'm convinced this is a bug with DOSBox-X in Linux. I understand that is is a very niche issue, but if anyone knows a trick to get it to send or receive MIDI clock in Linux, I'd really appreciate the help
Steps to reproduce the behaviour
Expected behavior
External MIDI sequencer should start and stop with Voyetra SPG, playing at the same tempo as the tempo set in SPG
What operating system(s) this bug have occurred on?
Ubuntu 22.04, Raspbian 11
What version(s) of DOSBox-X have this bug?
commit 6e747515bd95aea93ac087d397569abc8a5dc6d0
Used configuration
Output log
Additional information
No response
Have you checked that no similar bug report(s) exist?
Code of Conduct & Contributing Guidelines