|
| Notices |
Welcome to the DriverHeaven.net forums. You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today! If you have any problems with the registration process or your account login, please contact contact us. |
 |
Jun 14, 2005, 04:22 AM
|
#1
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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?
|
|
|
Jun 14, 2005, 05:05 AM
|
#2
|
|
kX user
Join Date: Apr 2004
Posts: 851
|
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.
|
|
|
Jun 14, 2005, 05:05 AM
|
#3
|
|
d/h member-shmember
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
|
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)
|
|
|
Jun 14, 2005, 05:13 AM
|
#4
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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.
|
|
|
Jun 14, 2005, 05:19 AM
|
#5
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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.
|
|
|
Jun 14, 2005, 05:20 AM
|
#6
|
|
d/h member-shmember
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
|
btw. Russ does this happen on K1 or K2?
|
|
|
Jun 14, 2005, 05:23 AM
|
#7
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
My card is a 10k1 card (sb022x), I do not have a 10k2 to test with.
|
|
|
Jun 14, 2005, 05:28 AM
|
#8
|
|
d/h member-shmember
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
|
what happens if you change
macs 0, sin, sin, 0x6c;
to
macs out, sin, sin, 0x6c;
(and other instrcs. remain the same)
|
|
|
Jun 14, 2005, 05:33 AM
|
#9
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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.
|
|
|
Jun 14, 2005, 05:39 AM
|
#10
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
BTW: It happens with kxlt, and my sb022x output test plugin as well.
|
|
|
Jun 14, 2005, 06:02 AM
|
#11
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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).
|
|
|
Jun 14, 2005, 06:28 AM
|
#12
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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).
|
|
|
Jun 14, 2005, 07:17 AM
|
#13
|
|
d/h member-shmember
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
|
could you make the following:
clear dsp, load epilog and sin code.
run
kxctrl -mp 1
kxctrl -mp 2
and post dumps here
|
|
|
Jun 14, 2005, 07:31 AM
|
#14
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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
>
|
|
|
Jun 14, 2005, 07:46 AM
|
#15
|
|
d/h member-shmember
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
|
ok. btw. does the issue disappear if you load sine before epilog?
|
|
|
Jun 14, 2005, 07:51 AM
|
#16
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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).
|
|
|
Jun 14, 2005, 08:00 AM
|
#17
|
|
d/h member-shmember
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,207
|
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?
|
|
|
Jun 14, 2005, 08:06 AM
|
#18
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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
|
|
|
Jun 14, 2005, 08:18 AM
|
#19
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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.
|
|
|
Jun 14, 2005, 05:06 PM
|
#20
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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
|
|
|
Jun 14, 2005, 05:34 PM
|
#21
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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.
|
|
|
Jun 18, 2005, 04:49 AM
|
#22
|
|
DriverHeaven Junior Member
Join Date: Jan 2005
Posts: 37
|
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
|
|
|
Jun 19, 2005, 09:08 PM
|
#23
|
|
DriverHeaven Extreme Member
Join Date: Jan 2005
Posts: 4,101
|
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.
|
|
|
|
|
|