Need advice: MIDI Software on Proxmox - Kernel Recompilation versus VM Passthrough?

janvv

Well-Known Member
Jun 21, 2020
64
17
48
68
52.24154182722349, 5.117853866801705
I'm exploring the integration of MIDI software, specifically GrandOrgue, with my Proxmox setup. My machine is robust (24-core AMD Ryzen 9 3900X, 64GB RAM), and currently handles several VMs and containers smoothly.

I'm contemplating two approaches:

  1. Direct installation of XFCE and GrandOrgue on Proxmox.
  2. Running GrandOrgue within a VM, utilizing passthrough for the MIDI interface.
I'm new to passthrough and unsure about potential latency with MIDI in a VM environment. Also, while my CPU seems suitable for low-latency tasks, my kernel's CONFIG_HZ is set to 250, not the recommended 1000 for optimal MIDI performance. This leads me to consider recompiling the kernel.

Has anyone here successfully run MIDI software on Proxmox? I'd appreciate any insights or experiences, especially regarding:

  • Kernel recompilation for MIDI optimization.
  • MIDI interface passthrough in VMs and latency experiences.
Thank you for your help!
 
Last edited:
Did you make any progress on this ?

I'm thinking of trying the same. I will be using lxc, not VM.

Not sure if my equipment is compatible. I have a Roland UM-880, Fantom XR and VK-88. All ancient.
 
I believe the better option would be to use a VM as it would offer more strict isolation. If I recall, lxc does not actually pass through, but shares from the host directly.
 
I believe the better option would be to use a VM as it would offer more strict isolation. If I recall, lxc does not actually pass through, but shares from the host directly.
VM would have higher overhead, though, a big negative for real-time applications such as MIDI.
I don't see what the isolation buys you in this case, also.
 
A VM would better isolate the pass through of the device, giving it sole ownership of it. Lxc's meanwhile can share devices which can lead to device timeouts. Additionally, and I could be mistaken in this regard, but I recall reading that if lxc's or a host reboots, direct pathways to devices, such as USB's being passed through can lose their path if the host doesn't process it in the exact same order it did on the previous boot.
To me the easier setup and isolation seem worth it, but would happily read your thoughts.
 
  • Like
Reactions: Johannes S
Why do you want to run it on ProxmoxVE instead of a Desktop Linux?
My ProxmoxVE box is already always-on, for one, as it does a lot of things including being my router. Running a container would not add much power or RAM consumption to it.
It would be very nice to have the Grandorgue service always on, ready to generate sound when I power up my MIDI keyboard and hit the keys.
Not having to manually intervene to always turn on a specific computer and manually run a program on it would be much nicer when I want to play.
VM maintenance is also a lot more work than lxc, IMO.
 
  • Like
Reactions: Johannes S
A VM would better isolate the pass through of the device, giving it sole ownership of it. Lxc's meanwhile can share devices which can lead to device timeouts. Additionally, and I could be mistaken in this regard, but I recall reading that if lxc's or a host reboots, direct pathways to devices, such as USB's being passed through can lose their path if the host doesn't process it in the exact same order it did on the previous boot.
To me the easier setup and isolation seem worth it, but would happily read your thoughts.
I have passed through PCIe devices (GPUs) to lxc and indeed experienced this problem when the topology changed. The node names changed. That is indeed a bit of a headache. Those were devices of the same type, though. I don't know how the USB MIDI drivers name their nodes in Linux as I have not plugged in the devices to the Linux host yet - they are plugged to a Windows host currently.

I don't normally hotplug anything to the Proxmox system except SATA disks in hotswap bays directly on the motherboard controller - not through USB - so I don't really expect the USB topology to change much over time. The only 2 external USB devices I have currently connected to Proxmox are my Z-Wave and Zigbee interfaces, and those are passed through to my Home assistant VM.
 
Lxc's meanwhile can share devices which can lead to device timeouts.
Why? lxcs are not dependent on any logical handoffs. if the device is accessible to the host, its accessible to the container.

but I recall reading that if lxc's or a host reboots, direct pathways to devices, such as USB's being passed through can lose their path if the host doesn't process it in the exact same order it did on the previous boot.
You wouldnt be passing the device, you'd give permission for the container to access its driver. the bus location is handled by the host.

the only issue (if there is one) is the avaiiability of the drivers to the host kernel version.