Developing an ASIO device


I’m interested in building a simple ASIO compatible device, that will be picked up by any VST Host.
For example, (hope this won’t be considered spamming) if I connect the Fast Track to my laptop, it shows up as regular audio device, but if I open cubase, it also shows up as an ASIO soundcard, and I can read/write to it with low latency.

I made a very simple prototype device which enumerates under windows as two audio inputs, two audio outputs, and two midi pairs. One audio input keeps generating a sinewave (so I can hear everything is ok), and one midi input keeps generating midi on/offs (so I can also see activity). Now I want to upgrade my device to do ASIO - enumerate as an ASIO device and stream its samples with low latency

Is the ASIO SDK what I’m looking for? Are there any examples?
What packets do I need to exchange over USB to be known by the OS as an ASIO device? Do I need extra usb endpoints for ASIO, apart from the standard usb audio ones?



Ah yes, seems that most of my questions are covered by the ASIO driver.
I was confusing the headers and SDK with the one for VST - for some reason I recalled the support for headers for ASIO is closed or paywalled.

There’s also mention of an asio2dev mailing list - but a google returns nothing.

Thank you.

Check your PM