This sounds like a great idea. I like the specs. I have a virtual MIDI driver (WDM) I wrote 2 or 3 years ago that I will donate the source for IF somebody is going to run with this idea. I don't have time to offer further contribution. What I did was basically join a couple of examples and replace the READ and WRITE calls with read/write to a buffer instead. All it does is send whatever it receives to the other side. It's not pretty being a rather brute force approach, but if it gets something going I'm game. -----Original Message----- From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Tobias Erichsen Sent: Monday, March 23, 2009 7:25 AM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Generic Virtual MIDI-driver... Hi everyone, like I wrote in my last mail from Friday I would highly welcome a complete MIDI-driver- sample that implements the following functionality: - Software-only (like MSVAD) - Private interface for applications (either by custom KS properties or private IOCTLs) - Dynamically creatable/destroyable MIDI-ports with freely configurable friendly-name without the need for any reboots - the created MIDI-Port is accessible to all kinds of standard application through the standard interfaces like "old-school" MME API, DirectX... - The "backend" / "virtual-hardware" side of the MIDI-port is implemented by the application (if someone needs some clarification on how this would work, I can provide with a more thorough description) This kind of driver would allow for all kind of cool functionality: - DAW-applications could create MIDI-ports on demand to interface to other stand-alone applications for MIDI-message-exchange - Special-operation MIDI-port(s) can be created by just writing a simple user-space application or service. Making a multitude of functions possible like: - MIDI-over-NET tunneling - MIDI-patchbays - MIDI-filters Apart from the "real-world" uses, the driver-writer-community has some benefits as well - For many applications the need of writing a driver would be eliminated totally! - Serve as a blueprint for other driver-writers on how to implement this functionality - Functionality that has not been that well documented (like dynmaic creation of ports, dynamic friendly-names etc.) can be deduced rather easily by browsing this sample. It would by highly convenient if such driver could be incorporated into the standard-shipment of the next Windows OS version. In the last couple of years (and especially in the last months) a large number of companies & individuals have asked many times for information about writing drivers which each implement some of the functionality I have sketched out above - having a generic driver which implements the sum of all those request would really bring forward the DAW-community (both on the developer & on the user side) I would be willing to start up such an endeavor but I must admit that apart from having written several device-drivers (in other areas) already, I have no intimate knowledge about the imple- mentation of the kernel-streaming-mechanisms on the driver side - so any help from other interested parties would be highly welcome. Especially the area of private-interfaces and dynamic creation/destruction of ports with a free friendlyname is something that is still a closed book to me... I have thought about a driver that would be called VMIDI.SYS implementing the functionality described above and also having a matching DLL: VMIDI.DLL which creates an easy to use user- space DLL for applications to interface to this driver in a standard-way. So any feedback on this subject is highly welcome (hopefully some of the folks who have asked for such stuff in the past are still monitoring this mailing-list to get feedback if this contemplated driver would implement most/all of what they were trying to achieve :-) Best regards, Tobias ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/ ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/