- Audio and mouse interaction

From: Douglas G. Danforth <"Douglas>
Date: Sat, 11 Jun 2005 12:05:16 -0400

----boundary-LibPST-iamunique-1748704243_-_-
Content-type: text/plain

Folks,

I have given Helmut a first cut at GftAudio but have discovered a very
strange interaction between mouse and audio interaction. I hope someone
can lend a little insight into what might be going on.

What works:
Audio recording and playing to files. No gliches in sound recorded when
played back.

Display of waveform on screen in real time (see below).

What doesn't work:
While displaying realtime audio waveform if the mouse is used to drag
the window then either
   (1) waveform continues correctly
or
   (2) waveform is only displayed in left 1/4 of screen and right 3/4
shows value of waveform when left mouse was first clicked and held.

Frozen right part is not fixed but is shifted version of itself from one
repetition to the next (it jiggles on screen or looks like it is
shifting due to spinning spoke like effect). I am double buffering the
data and yet the number of shifted versions exceeds 2 (there are at
least 3 or 4 different shifts).

What I can say: Data coming from audio card is real. I zero the data
buffer before returning it to the card and yet the card returns it again
on the next cycle.

If I don't touch the mouse after starting the waveform plotting
everything works fine. If I drag ANY window then the bizzar behavior
occurs.

I am using Services.Action to poll when data is available and have an
ASSERT to test if data has been missed (buffer returned before last
buffer processed completely) but I am not getting a trap.

If I hold the mouse down then XYplane.Clear does not take effect until
the mouse is release but data is still displayed correctly in the 1/4
part of the windown (it just becomes overwritten until mouse is
released). This is due to the fact that Views.Update defers its action.

What is really worrisome is the data coming back from the card looks
real which seems impossible. Mouse handling is a pretty low-level
operating system function which has interrupts and so I could just
bearly believe that somehow the audio card and the mouse interrupts
might be stepping on each other but this seems highly unlikely since
many other people would have discovered this flaw.

Every buffer I get I clear and yet the same data keeps comming back to
me even when the audio input line is unplugged from the card. Where is
the data hiding? Where is it coming from, the card or some intermediate
buffer, Microsoft?

-Doug

--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy



----boundary-LibPST-iamunique-1748704243_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIEZvbGtzLFxwYXINClxwYXINCkkgaGF2ZSBnaXZl
biBIZWxtdXQgYSBmaXJzdCBjdXQgYXQgR2Z0QXVkaW8gYnV0IGhhdmUgZGlzY292ZXJlZCBhIHZl
cnkgXHBhcg0Kc3RyYW5nZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIG1vdXNlIGFuZCBhdWRpbyBpbnRl
cmFjdGlvbi4gIEkgaG9wZSBzb21lb25lIFxwYXINCmNhbiBsZW5kIGEgbGl0dGxlIGluc2lnaHQg
aW50byB3aGF0IG1pZ2h0IGJlIGdvaW5nIG9uLlxwYXINClxwYXINCldoYXQgd29ya3M6XHBhcg0K
QXVkaW8gcmVjb3JkaW5nIGFuZCBwbGF5aW5nIHRvIGZpbGVzLiAgTm8gZ2xpY2hlcyBpbiBzb3Vu
ZCByZWNvcmRlZCB3aGVuIFxwYXINCnBsYXllZCBiYWNrLlxwYXINClxwYXINCkRpc3BsYXkgb2Yg
d2F2ZWZvcm0gb24gc2NyZWVuIGluIHJlYWwgdGltZSAoc2VlIGJlbG93KS5ccGFyDQpccGFyDQpX
aGF0IGRvZXNuJ3Qgd29yazpccGFyDQpXaGlsZSBkaXNwbGF5aW5nIHJlYWx0aW1lIGF1ZGlvIHdh
dmVmb3JtIGlmIHRoZSBtb3VzZSBpcyB1c2VkIHRvIGRyYWcgXHBhcg0KdGhlIHdpbmRvdyB0aGVu
IGVpdGhlclxwYXINCiAgICgxKSB3YXZlZm9ybSBjb250aW51ZXMgY29ycmVjdGx5XHBhcg0Kb3Jc
cGFyDQogICAoMikgd2F2ZWZvcm0gaXMgb25seSBkaXNwbGF5ZWQgaW4gbGVmdCAxLzQgb2Ygc2Ny
ZWVuIGFuZCByaWdodCAzLzQgXHBhcg0Kc2hvd3MgdmFsdWUgb2Ygd2F2ZWZvcm0gd2hlbiBsZWZ0
IG1vdXNlIHdhcyBmaXJzdCBjbGlja2VkIGFuZCBoZWxkLlxwYXINClxwYXINCkZyb3plbiByaWdo
dCBwYXJ0IGlzIG5vdCBmaXhlZCBidXQgaXMgc2hpZnRlZCB2ZXJzaW9uIG9mIGl0c2VsZiBmcm9t
IG9uZSBccGFyDQpyZXBldGl0aW9uIHRvIHRoZSBuZXh0IChpdCBqaWdnbGVzIG9uIHNjcmVlbiBv
ciBsb29rcyBsaWtlIGl0IGlzIFxwYXINCnNoaWZ0aW5nIGR1ZSB0byBzcGlubmluZyBzcG9rZSBs
aWtlIGVmZmVjdCkuICBJIGFtIGRvdWJsZSBidWZmZXJpbmcgdGhlIFxwYXINCmRhdGEgYW5kIHll
dCB0aGUgbnVtYmVyIG9mIHNoaWZ0ZWQgdmVyc2lvbnMgZXhjZWVkcyAyICh0aGVyZSBhcmUgYXQg
XHBhcg0KbGVhc3QgMyBvciA0IGRpZmZlcmVudCBzaGlmdHMpLlxwYXINClxwYXINCldoYXQgSSBj
YW4gc2F5OiBEYXRhIGNvbWluZyBmcm9tIGF1ZGlvIGNhcmQgaXMgcmVhbC4gIEkgemVybyB0aGUg
ZGF0YSBccGFyDQpidWZmZXIgYmVmb3JlIHJldHVybmluZyBpdCB0byB0aGUgY2FyZCBhbmQgeWV0
IHRoZSBjYXJkIHJldHVybnMgaXQgYWdhaW4gXHBhcg0Kb24gdGhlIG5leHQgY3ljbGUuXHBhcg0K
XHBhcg0KSWYgSSBkb24ndCB0b3VjaCB0aGUgbW91c2UgYWZ0ZXIgc3RhcnRpbmcgdGhlIHdhdmVm
b3JtIHBsb3R0aW5nIFxwYXINCmV2ZXJ5dGhpbmcgd29ya3MgZmluZS4gIElmIEkgZHJhZyBBTlkg
d2luZG93IHRoZW4gdGhlIGJpenphciBiZWhhdmlvciBccGFyDQpvY2N1cnMuXHBhcg0KXHBhcg0K
SSBhbSB1c2luZyBTZXJ2aWNlcy5BY3Rpb24gdG8gcG9sbCB3aGVuIGRhdGEgaXMgYXZhaWxhYmxl
IGFuZCBoYXZlIGFuIFxwYXINCkFTU0VSVCB0byB0ZXN0IGlmIGRhdGEgaGFzIGJlZW4gbWlzc2Vk
IChidWZmZXIgcmV0dXJuZWQgYmVmb3JlIGxhc3QgXHBhcg0KYnVmZmVyIHByb2Nlc3NlZCBjb21w
bGV0ZWx5KSBidXQgSSBhbSBub3QgZ2V0dGluZyBhIHRyYXAuXHBhcg0KXHBhcg0KSWYgSSBob2xk
IHRoZSBtb3VzZSBkb3duIHRoZW4gWFlwbGFuZS5DbGVhciBkb2VzIG5vdCB0YWtlIGVmZmVjdCB1
bnRpbCBccGFyDQp0aGUgbW91c2UgaXMgcmVsZWFzZSBidXQgZGF0YSBpcyBzdGlsbCBkaXNwbGF5
ZWQgY29ycmVjdGx5IGluIHRoZSAxLzQgXHBhcg0KcGFydCBvZiB0aGUgd2luZG93biAoaXQganVz
dCBiZWNvbWVzIG92ZXJ3cml0dGVuIHVudGlsIG1vdXNlIGlzIFxwYXINCnJlbGVhc2VkKS4gIFRo
aXMgaXMgZHVlIHRvIHRoZSBmYWN0IHRoYXQgVmlld3MuVXBkYXRlIGRlZmVycyBpdHMgYWN0aW9u
LlxwYXINClxwYXINCldoYXQgaXMgcmVhbGx5IHdvcnJpc29tZSBpcyB0aGUgZGF0YSBjb21pbmcg
YmFjayBmcm9tIHRoZSBjYXJkIGxvb2tzIFxwYXINCnJlYWwgd2hpY2ggc2VlbXMgaW1wb3NzaWJs
ZS4gIE1vdXNlIGhhbmRsaW5nIGlzIGEgcHJldHR5IGxvdy1sZXZlbCBccGFyDQpvcGVyYXRpbmcg
c3lzdGVtIGZ1bmN0aW9uIHdoaWNoIGhhcyBpbnRlcnJ1cHRzIGFuZCBzbyBJIGNvdWxkIGp1c3Qg
XHBhcg0KYmVhcmx5IGJlbGlldmUgdGhhdCBzb21laG93IHRoZSBhdWRpbyBjYXJkIGFuZCB0aGUg
bW91c2UgaW50ZXJydXB0cyBccGFyDQptaWdodCBiZSBzdGVwcGluZyBvbiBlYWNoIG90aGVyIGJ1
dCB0aGlzIHNlZW1zIGhpZ2hseSB1bmxpa2VseSBzaW5jZSBccGFyDQptYW55IG90aGVyIHBlb3Bs
ZSB3b3VsZCBoYXZlIGRpc2NvdmVyZWQgdGhpcyBmbGF3LlxwYXINClxwYXINCkV2ZXJ5IGJ1ZmZl
ciBJIGdldCBJIGNsZWFyIGFuZCB5ZXQgdGhlIHNhbWUgZGF0YSBrZWVwcyBjb21taW5nIGJhY2sg
dG8gXHBhcg0KbWUgZXZlbiB3aGVuIHRoZSBhdWRpbyBpbnB1dCBsaW5lIGlzIHVucGx1Z2dlZCBm
cm9tIHRoZSBjYXJkLiAgV2hlcmUgaXMgXHBhcg0KdGhlIGRhdGEgaGlkaW5nPyAgV2hlcmUgaXMg
aXQgY29taW5nIGZyb20sIHRoZSBjYXJkIG9yIHNvbWUgaW50ZXJtZWRpYXRlIFxwYXINCmJ1ZmZl
ciwgTWljcm9zb2Z0P1xwYXINClxwYXINCi1Eb3VnXHBhcg0KXHBhcg0KLS0tIEJsYWNrQm94XHBh
cg0KLS0tIHNlbmQgc3ViamVjdCBIRUxQIG9yIFVOU1VCU0NSSUJFIHRvIGJsYWNrYm94QG9iZXJv
bi5jaFxwYXINClxwYXINCn0=


----boundary-LibPST-iamunique-1748704243_-_---
Received on Sat Jun 11 2005 - 18:05:16 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:13 UTC