[wdmaudiodev] stackable drivers as sync solution - a crazy idea?

  • From: "Andy Voelkel" <andy@xxxxxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>, "Ron Kuper - Cakewalk \(Ron Kuper - Cakewalk\)" <ronkuper@xxxxxxxxxxxx>, "Michael Tippach" <mtippach@xxxxxxx>
  • Date: Tue, 13 Jun 2006 16:12:40 -0700

Hi All,
I've been struggling for a while now trying to figure out how to send
sample sync information from an existing soundcard in a PC to a custom
digital audio input device (a multi-channel digital guitar project). The
idea is to be able to run a PLL in the digital guitar so that its ADCs
are sample synced to the regular PC soundcard, without resorting to
solutions such as a HW word clock signal. I don't need a high degree of
phase accuracy between the two audio systems or anything like that. I
just need to keep the ADCs from drifting apart over time.
The problem is that the Windows OS doesn't support this sort of concept.
(Apparently the Mac doesn't either, but they have some built-in sample
rate converter code to make things workable).
Anyway, I had this nutty idea of solving the problem by building a piece
of interposer software that stacks on top of the existing soundcard
driver, and taps off a "buffer clock" signal (sent whenever the
soundcard needs to source or sync new audio data). The buffer clock
signal would be sent to the digital guitar as an input to the PLL, and
the interposer SW would merge in audio data received from the digital
guitar.
So the interposer SW would appear to the original soundcard driver to be
a host app, and would appear to the host app (DAW software, etc) to be a
driver with some input signals added.
I had this idea after rereading the ASIO spec, so I was thinking in
terms of ASIO. But I could imagine that this concept might work with WDM
too.
My question is - does this seem like a workable idea, or is there some
obvious gotcha I hadn't thought of? Would it be much much easier to do
in the ASIO domain? I'm guessing it would, but then one would be limited
to devices that support ASIO. Or would it be something that could also
be done in the WDM domain?
I would very much appreciate any opinions on this!
- Andrew Voelkel

Other related posts:

  • » [wdmaudiodev] stackable drivers as sync solution - a crazy idea?