Anyway, the problem is that the per-fd data storing api (cdev_set_priv() or something like that) is mostly incompatible with mmap()**, so OSSv4 can't do mmap() unless the per-fd code is disabled (i.e. OSSv4 is recompiled with VDEV_SUPPORT undefined. One would have to edit kernel/OS/FreeBSD/wrapper/bsddef.h to do this properly). This would have the effect of preventing vmix from being able to get multiple clients on /dev/dsp...

** IIRC, they did a sort-of an hack where it works only for a certain type of accesses...

*** The permissions issue in the original post is probably due to some crazy umask? Latest OSS clears umask before creating the nodes.