• Home
  • Reviews
  • Articles
  • News
  • Tools
  • GamingHeaven
  • Forums
  • Network
 

Go Back   DriverHeaven.net > Forums > Hardware and Related Topics > kX Project Audio Driver Support Forum > Effects and the DSP

Notices

Reply
 
LinkBack Thread Tools
Old Jun 14, 2005, 04:22 AM   #1
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

Dane bug?

Under certain conditions, it seems that setting the 'R' register in Dane to 0x0 causes sound from the plugin to bleed into the outputs of the sound card.

Take the following code for example:
------------------
output out;
static f=0x860a91c, cos=0x20000000, sin=0x0;

macs sin, sin, f, cos;
macsn cos, cos, f, sin;
macs 0x0, sin, sin, 0x6c;
macs out, accum, 0x0, 0x0;
------------------

Obviously using 0x0 as an 'R' register here is unnecessary, as you could just eliminate the last line and just use 'out' as the 'R' register in the 3rd line of code, but this is just to show what I am talking about. (The code just generates a tone of approx. 500Hz). Under certain conditions you will hear the tone even if the plugin is not connected to anything. If you change the code to use 'out' (and eliminate the last line), or use another gpr, then it does not exhibit this behavior, so it definatley has something to do with using 0x0 as the 'R' register. It does not do this all the time, and other plugins seem to have an effect on it (I have not yet figured out all the details). Again, it happens under various conditions, but the simplest way for me to make it happen repeatedly is as follows:

(do not forget to save your current config if it is not allready saved)
Reinitialze the DSP (not absolutley necessary, but it helps to rule out other issues).
Clear the DSP.
Load Epilog. (I would suggest turning down the master volume to a low level).
Load a plugin that uses the above microcode.

Thats it, you should now hear the tone. Unload or untranslate the plugin to make it stop.

Again, this happens under various setups, the above setup is just the easiest to reproduce consitantly.

What do you guys think about this? Should I post this in the bug forum?

-Russ

BTW: I wonder if the "squeal of death" problem that some people have is somehow related?
Russ is online now   Reply With Quote
Old Jun 14, 2005, 05:05 AM   #2
kX user
 
Join Date: Apr 2004
Posts: 851
Tiger M is on a distinguished road

I suppose this is related to using accum in the last instruction of the code. I have noticed similar issues when using it the same way. Try putting one more instruction after the one with accum with a temp register and put the output in the same instruction and test.
Tiger M is offline   Reply With Quote
Old Jun 14, 2005, 05:05 AM   #3
d/h member-shmember
 
Max M.'s Avatar
 
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
Max M. is on a distinguished road

But how this is relaited to "Dane"?
(this looks like an issue with either epilog or 'kX dsp microcode loader". it's nothing to do with Dane itself)
Max M. is offline   Reply With Quote
Old Jun 14, 2005, 05:13 AM   #4
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

Quote:
Originally Posted by Max M.
But how this is relaited to "Dane"?
Well, it may not be, especially if the SOD bug is related to this, as that problem exists in the CL drivers as well. I probably should have made the subject 'Microcode bug' or something.

Quote:
Originally Posted by Tiger M.
I suppose this is related to using accum in the last instruction of the code. I have noticed similar issues when using it the same way. Try putting one more instruction after the one with accum with a temp register and put the output in the same instruction and test.
I'll give that a try.
Russ is online now   Reply With Quote
Old Jun 14, 2005, 05:19 AM   #5
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

Adding another instruction does make it stop. It doesn't seem to matter what the instructions are that follow it, it just seems to require a least 2 instructions to follow it.
Russ is online now   Reply With Quote
Old Jun 14, 2005, 05:20 AM   #6
d/h member-shmember
 
Max M.'s Avatar
 
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
Max M. is on a distinguished road

btw. Russ does this happen on K1 or K2?
Max M. is offline   Reply With Quote
Old Jun 14, 2005, 05:23 AM   #7
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

My card is a 10k1 card (sb022x), I do not have a 10k2 to test with.
Russ is online now   Reply With Quote
Old Jun 14, 2005, 05:28 AM   #8
d/h member-shmember
 
Max M.'s Avatar
 
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
Max M. is on a distinguished road

what happens if you change
macs 0, sin, sin, 0x6c;
to
macs out, sin, sin, 0x6c;
(and other instrcs. remain the same)
Max M. is offline   Reply With Quote
Old Jun 14, 2005, 05:33 AM   #9
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

There are no problems with using out as above (or any other gpr), and the last line is not necessary for the problem to occur.
Russ is online now   Reply With Quote
Old Jun 14, 2005, 05:39 AM   #10
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

BTW: It happens with kxlt, and my sb022x output test plugin as well.
Russ is online now   Reply With Quote
Old Jun 14, 2005, 06:02 AM   #11
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

Quote:
Originally Posted by Russ
Adding another instruction does make it stop. It doesn't seem to matter what the instructions are that follow it, it just seems to require a least 2 instructions to follow it.
BTW: (This probably was not clear) I mean following an instruction that uses 0x0 as the 'R' register, and not an instruction that uses 'accum' as the 'A' operand (using 'accum' as the 'A' operand does not appear to be related to the problem).
Russ is online now   Reply With Quote
Old Jun 14, 2005, 06:28 AM   #12
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

Please, let me know if anyone of you with a non-sb022x card are able to re-create the problem, so I might know whether it is another sb022x only problem (and what version of kX you are using. I am using 3538h).
Russ is online now   Reply With Quote
Old Jun 14, 2005, 07:17 AM   #13
d/h member-shmember
 
Max M.'s Avatar
 
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
Max M. is on a distinguished road

could you make the following:
clear dsp, load epilog and sin code.
run
kxctrl -mp 1
kxctrl -mp 2
and post dumps here
Max M. is offline   Reply With Quote
Old Jun 14, 2005, 07:31 AM   #14
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

kX Driver Control Program
Copyright ⌐ Eugene Gavrilov, 2001-2004. All rights reserved.
Using device 'SB022x 10k1 [a000]'
Entering interactive mode. Type '?' for help. Type 'quit' to exit

>mp 1
// Microcode state:
[1] epilog (Uploaded Enabled ); code_size=760 info_size=1656
name "epilog";
copyright "(c) Eugene Gavrilov, 2001-2004";
; NOTE The present DSP microcode dump is protected by the
; license agreement bundled with the appropriate software
; package containing this microcode,
; regardless the particular copyright notice is present in the dump.

engine "kX";
created "27 Sep 2003";
comment "new version; $nobypass";
guid "aa81bfd5-5400-47c0-bfca-cf0dc5ae41a6";
; Registers
[8000]: 'tmpl' p=0; translated: 100; current=0
[8001]: 'tmpr' p=0; translated: 101; current=0
[8002]: 'ac4000' p=4000; translated: 102; current=4000
[8003]: 'acffff' p=ffff0000; translated: 103; current=ffff0000
[8004]: 'ROld' p=0; translated: 104; current=0
[8005]: 'MasterL' p=7fffffff; translated: 105; current=7fffffff
[8006]: 'MasterR' p=7fffffff; translated: 106; current=7fffffff
[4000]: 'out0' p=0; translated: 2040; current=0
[4001]: 'out1' p=0; translated: 2040; current=0
[8007]: 'out0vol' p=20000000; translated: 107; current=20000000
[8008]: 'out1vol' p=20000000; translated: 108; current=20000000
[4002]: 'out2' p=0; translated: 2040; current=0
[4003]: 'out3' p=0; translated: 2040; current=0
[8009]: 'out2vol' p=20000000; translated: 109; current=20000000
[800a]: 'out3vol' p=20000000; translated: 10a; current=20000000
[4004]: 'out4' p=0; translated: 2040; current=0
[4005]: 'out5' p=0; translated: 2040; current=0
[800b]: 'out4vol' p=20000000; translated: 10b; current=20000000
[800c]: 'out5vol' p=20000000; translated: 10c; current=20000000
[4006]: 'out6' p=0; translated: 2040; current=0
[4007]: 'out7' p=0; translated: 2040; current=0
[800d]: 'out6vol' p=20000000; translated: 10d; current=20000000
[800e]: 'out7vol' p=20000000; translated: 10e; current=20000000
[4008]: 'out8' p=0; translated: 2040; current=0
[4009]: 'out9' p=0; translated: 2040; current=0
[800f]: 'out8vol' p=20000000; translated: 10f; current=20000000
[8010]: 'out9vol' p=20000000; translated: 110; current=20000000
[400a]: 'out17' p=0; translated: 2040; current=0
[400b]: 'out18' p=0; translated: 2040; current=0
[8011]: 'out17vol' p=20000000; translated: 111; current=20000000
[8012]: 'out18vol' p=20000000; translated: 112; current=20000000
[400c]: 'out30' p=0; translated: 2040; current=0
[400d]: 'out31' p=0; translated: 2040; current=0
[8013]: 'out30vol' p=20000000; translated: 113; current=20000000
[8014]: 'out31vol' p=20000000; translated: 114; current=20000000
[400e]: 'RecL' p=0; translated: 2040; current=0
[400f]: 'RecR' p=0; translated: 2040; current=0
[4010]: 'asio0' p=0; translated: 2040; current=0
[4011]: 'asio1' p=0; translated: 2040; current=0
[4012]: 'asio2' p=0; translated: 2040; current=0
[4013]: 'asio3' p=0; translated: 2040; current=0
[4014]: 'asio4' p=0; translated: 2040; current=0
[4015]: 'asio5' p=0; translated: 2040; current=0
[4016]: 'asio6' p=0; translated: 2040; current=0
[4017]: 'asio7' p=0; translated: 2040; current=0
[4018]: 'asio8' p=0; translated: 2040; current=0
[4019]: 'asio9' p=0; translated: 2040; current=0
[401a]: 'asio10' p=0; translated: 2040; current=0
[401b]: 'asio11' p=0; translated: 2040; current=0
[401c]: 'asio12' p=0; translated: 2040; current=0
[401d]: 'asio13' p=0; translated: 2040; current=0
[401e]: 'asio14' p=0; translated: 2040; current=0
[401f]: 'asio15' p=0; translated: 2040; current=0
[8015]: 'RecIn0' p=0; translated: 115; current=0
[8016]: 'RecIn2' p=0; translated: 116; current=0
[8017]: 'RecIn4' p=0; translated: 117; current=0
[8018]: 'RecIn6' p=0; translated: 118; current=0
[8019]: 'RecIn8' p=0; translated: 119; current=0
[801a]: 'RecIn10' p=0; translated: 11a; current=0
[801b]: 'RecIn12' p=0; translated: 11b; current=0
[801c]: 'RecIn1' p=0; translated: 11c; current=0
[801d]: 'RecIn3' p=0; translated: 11d; current=0
[801e]: 'RecIn5' p=0; translated: 11e; current=0
[801f]: 'RecIn7' p=0; translated: 11f; current=0
[8020]: 'RecIn9' p=0; translated: 120; current=0
[8021]: 'RecIn11' p=0; translated: 121; current=0
[8022]: 'RecIn13' p=0; translated: 122; current=0
[8023]: 'RecLVol' p=7fffffff; translated: 123; current=7fffffff
[8024]: 'RecRVol' p=7fffffff; translated: 124; current=7fffffff

end
>mp 2
// Microcode state:
[2] bug test (Uploaded Enabled ); code_size=40 info_size=120
name "bug test";
copyright "Copyright (c) 2004.";
; NOTE The present DSP microcode dump is protected by the
; license agreement bundled with the appropriate software
; package containing this microcode,
; regardless the particular copyright notice is present in the dump.

engine "kX";
created "06/11/2005";
guid "99086F13-CFAA-4967-A8D0-EA56309884A0";
; Registers
[8000]: 'out' p=0; translated: 125; current=1f478097
[8001]: 'f' p=860a91c; translated: 126; current=860a91c
[8002]: 'cos' p=20000000; translated: 127; current=1a57780
[8003]: 'sin' p=0; translated: 128; current=1ffb6d9f
[8004]: '_AC6c' p=6c; translated: 129; current=6c

end
>
Russ is online now   Reply With Quote
Old Jun 14, 2005, 07:46 AM   #15
d/h member-shmember
 
Max M.'s Avatar
 
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
Max M. is on a distinguished road

ok. btw. does the issue disappear if you load sine before epilog?
Max M. is offline   Reply With Quote
Old Jun 14, 2005, 07:51 AM   #16
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

No, it does it either way (only after epilog is loaded, when epilog is loaded second), and in both cases, unloading epilog also stops the sound (BTW: same thing goes for epilog alternatives like kxlt, etc).
Russ is online now   Reply With Quote
Old Jun 14, 2005, 08:00 AM   #17
d/h member-shmember
 
Max M.'s Avatar
 
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
Max M. is on a distinguished road

ok. and sound leaks to the left channel only, or both?

and please, try load sin then epilog then any third module and connect the third one to epilog. does it mutes sin?
Max M. is offline   Reply With Quote
Old Jun 14, 2005, 08:06 AM   #18
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

I thought I should add that I did perform a cold boot, and the problem still persists and that I believe that it is only bleeding into the front speakers. The problem does not occur with epilog_k1/k2 (but they do not have the connections for my front channels either).

<edit>
The above should say epiloglt_k1/k2.

Last edited by Russ; Jun 14, 2005 at 08:23 AM. Reason: correction
Russ is online now   Reply With Quote
Old Jun 14, 2005, 08:18 AM   #19
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

It appears to be the left-front channel only. Loading a 3rd module seems to work with epilog (and does not need to be connected to epolig), at least under this basic setup (this did not always work under other setups that I had tried when I was first trying to figure out the best way to reproduce the problem). With epilog alternatives, it depends on the plugin.
Russ is online now   Reply With Quote
Old Jun 14, 2005, 05:06 PM   #20
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

Here are some other odd things I noticed regarding this:

1) Master Volume-Left can control the volume of the sound (even though the 'mp' command shows no ouput on Front Left) while Front-Left volume does not effect the sound (tested using epilog, with the volume controls in kxmixer, and my test plugin which has volume controls within the plugin (setup like epilog)).

2) Clear DSP.
Load Epilog.
Load Sine code. (tone starts).
Load another plugin. (tone stops).
Connect the above plugin to epilog (sine plugin still not connected to anything) and the sound will then be on that channel as well. i.e. connected to fL/fR/Center/LFE/sL/sR, the sound will then be in all those speakers as well, and now 'mp' will show output on those channels and the volume controls for those individual channels are able to control the sound volume.

Upon further examination, using the 'mp' command with the 3rd plugin shows output on the 3rd plugin, even though it shows no input, so it acts as if the 3rd plugin is generating the tone itself and then passes it to epilog when connected. So somehow, the tone is bleeding from the sine code into other plugins.

-Russ
Russ is online now   Reply With Quote
Old Jun 14, 2005, 05:34 PM   #21
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

I am still wondering if anyone else has been able to re-create this. Please report if you do, so I can rule out the following: it is another sb022x (STAC9758) only issue, it is a hardware problem with my card, it is a configuration issue, or something related to my specific setup, etc.
Russ is online now   Reply With Quote
Old Jun 18, 2005, 04:49 AM   #22
DriverHeaven Junior Member
 
Join Date: Jan 2005
Posts: 37
2ndhannes is on a distinguished road

Hi,

I had a similar problem when I was writing my phono preamp plugin. I also
noticed sound coming from the speakers although the plugin that was heard was
not connected to the Epilog (k2lt).

I think the rest of the DSP setup was quite 'normal': some src, a ac97, some gainhq, an mx6 and my own plugin in developement stage.

If I recall correctly, I also had a move from accum to output on the last code
line, however, I am not too sure about that

I am using 3538h on a SB0350 Audigy 2 ZS.

Sorry to be so vague, have no time for DANE hacking at the moment

Bye,
Hannes
2ndhannes is offline   Reply With Quote
Old Jun 19, 2005, 09:08 PM   #23
DriverHeaven Extreme Member
 
Join Date: Jan 2005
Posts: 4,101
Russ has a spectacular aura aboutRuss has a spectacular aura aboutRuss has a spectacular aura about

Thanks for the info. It is not that big of a deal because we can avoid the problem when necessary so long as we know about it.
Russ is online now   Reply With Quote
 

 
Powered by: vBulletin
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Artwork by Allan 'Zardon' Campbell, vBulletin implementation by Craig '5320' Humphreys based on original artwork by Ratchet.

All times are GMT -5. The time now is 10:52 PM. Copyright ©2008 HeavenMedia.net