Virtual MIDI port

Is there any way to instantiate a virtual MIDI port, with or without sndiod.

I have working USB midi interface and MIDI controller with USB connection, both work fine with jack and jack_umidi. What I'm trying to do is to connect DosBox that has oss midi driver to jack bus, but there is simply no /dev device to connect it through.
 
I'm willing to put development effort into MIDI and sequencer support for FreeBSD. I will connect with the multimedia mailing list but I'm also interested in experiences and efforts that people from this forum have done.

FreeBSD currently supports jack, and end-user applications concerned, jack is the only MIDI transport system that actually works. The entirety of MIDI IO is performed by jack, while physical USB devices can be connected through only FreeBSD native facility that's actually usable in 2021, the umidi driver.

For end-user applications this means the "DAW" stack is missing the control protocol in the protocol suite. In order to connect the entire stack one must target jack API and leave OSS behind.

For instance, I've come to conclusion that for my workload, it's better to look at classic abandonware 16-bit PC applications, such as Voyetra Sequencer Gold. These applications were standard of the day, they have quite in features, professional documentation and keyboard driven. Stupid as it sounds, a SVGA application scaled up to desktop size might look better than some Linux toolkit UI program that didn't pay attention to DPI and things like that.

Right now I am looking to patch dosbox-staging to connect emulated MIDI to jack.

Although this will give me the functionality I seek I find it quite stupid FreeBSD doesn't have a native OSS compatible MIDI facility (but elaborate and controllable with virtual device support and routing) and I'd rather concentrate my efforts in patching jack to use FreeBSD MIDI than patching dosbox to use jack because I only care about FreeBSD on the project level.
 
I stated work on dosbox+jack, and implemented the initial functionality.

The tooling issues persist. There's not a single program alike MIDI-OX (25 year old Windows software) that can debug MIDI on the bus easily. I'm not sure whether sampler plugins I have (ZynAddSubFX) respond to multiple channels. The general purpose software synths like Bristol do not run (the Brighton GUI fails to load and mumbles something about ALSA buffers - while clearly being compiled without ALSA).

This is exactly what I fear about future of FreeBSD audio - heavy maintenance is needed over those Linux ports because we don't have ALSA.

Right now for testing, I need a reliable way for full General MIDI synthesis over jack's bus, or a MIDI diagnostic utility for jack's bus. I can dump messages right out of the driver for tracing, but it's also about having a normal tooling and infrastructure. If we don't have a MIDI-OX for the most used MIDI API, we're still in 1995 as far as I'm concerned. I can also test dosbox patch on another OS, but that again does little for FreeBSD itself.

There are two modern maintained MIDI monitors that require ALSA, one Qt, one GTK, neither available for FreeBSD. I do not believe porting these is a valid goal. If I decide to take on a small project in entirety, this will be it.
 

Attachments

  • Screenshot_20211227_162312.png
    Screenshot_20211227_162312.png
    268.7 KB · Views: 108
I have this same problem with wine, i could get other software to work with jack but wine doesn't support it... Warcraft 3, Morrowind and Oblivion doesn't work because of that MIDI problem, they cannot find devices in /dev in order to work.

EDIT: see THIS
 
Back
Top