IPB

Welcome Guest ( Log In | Register )

> foobar2000 Tech Support Forum Rules

Please read foobar2000 Tech Support Forum Rules before posting and comply with all the points.
Failure to provide all the information pointed out in the above document in your post is considered wasting other people's time and in extreme cases will lead to your topic getting locked without a reply.


See also: Hydrogenaudio Terms of Service.

4 Pages V  < 1 2 3 4 >  
Reply to this topicStart new topic
E-MU 0404 USB - foobar2000 "forgets" ASIO config on shutdown
Canar
post Jan 27 2010, 14:00
Post #26





Group: Super Moderator
Posts: 3348
Joined: 26-July 02
From: princegeorge.ca
Member No.: 2796



Just use DirectSound. The DS drivers behave as you'd expect. ASIO provides no increase in audio quality.

This post has been edited by Canar: Jan 27 2010, 14:02


--------------------
You cannot ABX the rustling of jimmies.
No mouse? No problem.
Go to the top of the page
+Quote Post
yayacek
post Jan 27 2010, 22:49
Post #27





Group: Members
Posts: 7
Joined: 29-June 08
Member No.: 55047



QUOTE (Canar @ Jan 27 2010, 07:00) *
Just use DirectSound. The DS drivers behave as you'd expect. ASIO provides no increase in audio quality.



With the native ASIO drivers, E-MU 0404 USB can switch automatically the sampling rate according to the source material. It's impossible with DS drivers.
- ASIO - If the source material is e.g. 96kHz EMU will switch automatically to this sampling rate
- DS - If the source material is e.g. 96kHz EMU will not switch automaticaly to this sampling rate. Using DS drivers one have to switch manualy the sampling rate on the EMU Control Panel.

Go to the top of the page
+Quote Post
yayacek
post Jan 27 2010, 22:53
Post #28





Group: Members
Posts: 7
Joined: 29-June 08
Member No.: 55047



QUOTE (Yirkha @ Jan 27 2010, 06:18) *
The driver can be trivially hacked to use the same CLSID every time.
If I had this sound card, I'd do it that way...


trivially hacked... well, please tell me (us) how to do this
Go to the top of the page
+Quote Post
Canar
post Jan 28 2010, 00:42
Post #29





Group: Super Moderator
Posts: 3348
Joined: 26-July 02
From: princegeorge.ca
Member No.: 2796



QUOTE (yayacek @ Jan 27 2010, 16:49) *
With the native ASIO drivers, E-MU 0404 USB can switch automatically the sampling rate according to the source material. It's impossible with DS drivers.
And it's irrelevant with a Resampler in your DSP chain.


--------------------
You cannot ABX the rustling of jimmies.
No mouse? No problem.
Go to the top of the page
+Quote Post
Yirkha
post Jan 28 2010, 00:43
Post #30





Group: FB2K Moderator
Posts: 2359
Joined: 30-November 07
Member No.: 49158



You can see the relevant part of the log here.


--------------------
Full-quoting makes you scroll past the same junk over and over.
Go to the top of the page
+Quote Post
needle
post May 22 2010, 09:54
Post #31





Group: Members
Posts: 4
Joined: 17-May 10
Member No.: 80707



QUOTE (Yirkha @ Jan 27 2010, 15:43) *
You can see the relevant part of the log here.


Can you explain what the procedure is for replacing the JZ's with JMP's?
Go to the top of the page
+Quote Post
ZenZendra
post Sep 24 2010, 22:37
Post #32





Group: Members
Posts: 9
Joined: 7-April 10
Member No.: 79684



Yirkha, so have you been successful? And if you have, can you please post how to do it ourselves, or you can give us the hacked files or something
Go to the top of the page
+Quote Post
Yirkha
post Sep 25 2010, 05:41
Post #33





Group: FB2K Moderator
Posts: 2359
Joined: 30-November 07
Member No.: 49158



Well I don't own E-MU 404 card, so I personally did not do anything. Nevertheless it's apparent from that IRC log that someone has indeed been successful with the modification.

I don't think you would be able to fix this yourself if the already present information didn't make much sense to you. But if you would point me to the driver package you have installed or the installed ASIO driver directly (ctasio.dll or emasio.dll or however it is called), I could probably devise a patch for you to simply apply afterwards.


--------------------
Full-quoting makes you scroll past the same junk over and over.
Go to the top of the page
+Quote Post
ZenZendra
post Sep 25 2010, 14:16
Post #34





Group: Members
Posts: 9
Joined: 7-April 10
Member No.: 79684



I have found emasio.dll in system32, so if you can do anything..... Thank you for the effort


This post has been edited by ZenZendra: Sep 25 2010, 14:26
Go to the top of the page
+Quote Post
Yirkha
post Sep 25 2010, 14:55
Post #35





Group: FB2K Moderator
Posts: 2359
Joined: 30-November 07
Member No.: 49158



OK, got it fine. What OS are you running, Windows Vista or 7?


--------------------
Full-quoting makes you scroll past the same junk over and over.
Go to the top of the page
+Quote Post
ZenZendra
post Sep 25 2010, 16:33
Post #36





Group: Members
Posts: 9
Joined: 7-April 10
Member No.: 79684



I' m running 7
Go to the top of the page
+Quote Post
Yirkha
post Sep 25 2010, 16:46
Post #37





Group: FB2K Moderator
Posts: 2359
Joined: 30-November 07
Member No.: 49158



OK, then the solution might be amazingly simple.

Backup your emasio.dll and replace it with this. The ASIO device selection should not be forgotten anymore between foobar2000 restarts.

This post has been edited by Yirkha: Sep 30 2010, 00:54


--------------------
Full-quoting makes you scroll past the same junk over and over.
Go to the top of the page
+Quote Post
ZenZendra
post Sep 25 2010, 17:17
Post #38





Group: Members
Posts: 9
Joined: 7-April 10
Member No.: 79684



It doesn't work sad.gif every time i restart my computer it forgets
Go to the top of the page
+Quote Post
Yirkha
post Sep 25 2010, 17:36
Post #39





Group: FB2K Moderator
Posts: 2359
Joined: 30-November 07
Member No.: 49158



Hmm how exectly did you try it, step by step? It might need two fb2k restarts to start working properly.

Also did you see it forget the right device even when just launching fb2k, closing it and starting again? Or only when restarting the whole computer?


--------------------
Full-quoting makes you scroll past the same junk over and over.
Go to the top of the page
+Quote Post
ZenZendra
post Sep 25 2010, 17:49
Post #40





Group: Members
Posts: 9
Joined: 7-April 10
Member No.: 79684



Ok, i started the whole procedure again. I returned the original emasio, and then started foobar, set the asio drivers and the output to asio, played a song, and then restarted it for a few times and then closed it, replaced the original emasio with your's and started foobar again, and restarted it for a few times, and i restarted the computer, and it forgets sad.gif And i never had the problem when restarting foobar, it only forgets when the computer is restarted
Go to the top of the page
+Quote Post
Yirkha
post Sep 30 2010, 01:12
Post #41





Group: FB2K Moderator
Posts: 2359
Joined: 30-November 07
Member No.: 49158



All right. Sorry for the previous confusion and this delay in my reply - I needed to get some more time to look at this all.

Apparently the emasio.dll itself works fine, it caches the relevant information in registry, etc.

But there is another player in the game, a process called emaudsrv.exe which runs as a service. It's quite useful, as it for example automatically registers the ASIO drivers for each device you plug in and so on. But, unfortunately it also erases all registrations when the computer is shutting down - and that's the real problem here.

A simple solution would be to just hack emasio.dll to always return the same ID for all registrations, which is what I have originally suggested (and what has been already done on another forum recently). But that would fail if somebody used more than one E-MU device on the same computer and I like to do things properly.

So I modified the emasio.dll to still generate a "random" ID, but based on the device name reported by the OS (MD5 sum of the NT device path string). That should give an unique ID for each device, but still keep it constant for the same one.

Again, I don't have any E-MU hardware to test, but I've verified the relevant functionality of the DLL as well as I could and everything seemed working as expected.

The fixed DLL for download:
emasio.dll x86 (patch for original DLL with size 58880 Bytes, md5sum 79df09ce7d2b51ec0e0f3456d460d1d7, in "C:\Windows\System32" on Win/x86 [32-bit] and "C:\Windows\SysWOW64" on Win/x64 [64-bit])
emasio.dll x64 (patch for original DLL with size 65024 Bytes, md5sum a0f7c05a90100a5a701943ec0b997211, in "C:\Windows\System32", on Win/x64 [64-bit] only)

2010-10-18: Added the x64 version.
2010-10-20: Fixed the x64 version.

This post has been edited by Yirkha: Nov 3 2010, 21:21


--------------------
Full-quoting makes you scroll past the same junk over and over.
Go to the top of the page
+Quote Post
ZenZendra
post Oct 2 2010, 17:28
Post #42





Group: Members
Posts: 9
Joined: 7-April 10
Member No.: 79684



I'm sorry for the delayed answer, but it was worth it, because the first time i try it, it didn't worked, and i didn't have the time to inform you about it. And then, suddenly yesterday it worked!! It needed a few restarts obviously, and i can't believe it yet, i'm so encredibly grateful four your help Yirkha, i don't have enough words to say thanks, so .... THANK YOU a million times. Now i can really enjoy my music with foobar without this annoyances. And this bug is present for years now, and yirkha solved it in one day practically!!
Go to the top of the page
+Quote Post
Yirkha
post Oct 3 2010, 17:51
Post #43





Group: FB2K Moderator
Posts: 2359
Joined: 30-November 07
Member No.: 49158



That's great news! You are welcome, I'm glad I could help you to solve this.


--------------------
Full-quoting makes you scroll past the same junk over and over.
Go to the top of the page
+Quote Post
intruder.outside...
post Oct 14 2010, 19:46
Post #44





Group: Members
Posts: 1
Joined: 14-October 10
Member No.: 84617



QUOTE (Yirkha @ Oct 3 2010, 17:51) *
That's great news! You are welcome, I'm glad I could help you to solve this.


Hi Yirkha

I 've found your patched version of emasio.dll.
It works great !
Many thanks
biggrin.gif

Armando
Go to the top of the page
+Quote Post
Guest_Kiyos_*
post Oct 14 2010, 22:05
Post #45





Guests






I'm on Windows 7 x64, and I guess my card uses a 64-bit version of emasio.dll (it severely differs with 32-bit bit one). I'd really appreciate it if someone could make the corresponding changes to this 64-bit version. I had tried to do them myself, but have found myself completely lost in comparison and disassembly due to very little experience with low-level code and executable file structure unsure.gif
I've made emasio.dll x64 available for download: http://sharebee.com/f02838f5
Go to the top of the page
+Quote Post
Yirkha
post Oct 17 2010, 23:28
Post #46





Group: FB2K Moderator
Posts: 2359
Joined: 30-November 07
Member No.: 49158



Bah, I've thought it will be neccessary to handle the x64 version too ever since I found out about the emaudsrv service process, but secretly hoped we could do without it...
I'll look at the 64-bit version again when I have time and keep you updated here.


--------------------
Full-quoting makes you scroll past the same junk over and over.
Go to the top of the page
+Quote Post
Yirkha
post Oct 18 2010, 02:35
Post #47





Group: FB2K Moderator
Posts: 2359
Joined: 30-November 07
Member No.: 49158



OK, I've modified the x64 version too - see the updated post #41 above.
Again, I can't be sure I did everything right, but the relevant function has been working correctly here as far as I can tell. Try it and see...


--------------------
Full-quoting makes you scroll past the same junk over and over.
Go to the top of the page
+Quote Post
T_B_Good
post Oct 18 2010, 09:12
Post #48





Group: Members
Posts: 8
Joined: 29-October 07
Member No.: 48308



Hello, Yirkha
I am running Win 7 64bit, E-mu 0202 and foobar v1.1
I have tried emasio.dll x64 you made but it didn't work for me.

Please correct me if I am doing something wrong, but that is my process:

I place emasio.dll x64 ver. to Windows\System32 overwriting an old one. Restart computer. As a result - "No ASIO drivers found" in foobar and I also unable to change sample rate in E-MU control panel.

I also tried placing emasio.dll x86 ver. in both dirs simultaniously: Windows\System32 and Windows\SysWOW64. The result is: ASIO works perfectly as on native dll but is still "forgetable" in foobar.

Any solutions please?
Go to the top of the page
+Quote Post
Yirkha
post Oct 18 2010, 12:10
Post #49





Group: FB2K Moderator
Posts: 2359
Joined: 30-November 07
Member No.: 49158



QUOTE (T_B_Good @ Oct 18 2010, 10:12) *
I am running Win 7 64bit, E-mu 0202 and foobar v1.1
I have tried emasio.dll x64 you made but it didn't work for me.
OK, let's do some information gathering first.
Could you find your original emasio.dll in both C:\Windows\System32 and C:\Windows\SysWOW64 and tell me the file size of both of them?

QUOTE (T_B_Good @ Oct 18 2010, 10:12) *
I place emasio.dll x64 ver. to Windows\System32 overwriting an old one. Restart computer. As a result - "No ASIO drivers found" in foobar and I also unable to change sample rate in E-MU control panel.
Hmm how did you replace the old .dll? Because that sounds like both fb2k and the E-MU software could not use the DLL at all.

By the way, it must be done from a 64-bit process (e.g. Explorer started simply from the Desktop or Start menu), because 32-bit processes see Windows\System32 as an alias for Windows\SysWOW64 only. But that would be apparent in the file size test above (they would or would not differ).

QUOTE (T_B_Good @ Oct 18 2010, 10:12) *
I also tried placing emasio.dll x86 ver. in both dirs simultaniously: Windows\System32 and Windows\SysWOW64. The result is: ASIO works perfectly as on native dll but is still "forgetable" in foobar.
Ideally, on 64-bit Windows, the x86 DLL should go to SysWOW64, the x64 one to System32. If this worked as you described, it sounds again like you see the virtual System32 only. But maybe I'm wrong on that account, we'll know more based on my first question above here as well.

One more note regarding the number of restarts needed -
Originally, upon Windows startup, the driver finds a seemingly new USB device attached and generates a new random ID for it. When you run fb2k, it doesn't recognize anything under the old ID and needs a manual change.
With the patched version, the driver generates always the same pseudo-random ID as long as the device is the same too. But for that to show any effect, you need to restart two times (first restart: it generates the new kind of ID and you have to set it in fb2k, second restart: it generates the same ID again and fb2k finally remembers the settings).


--------------------
Full-quoting makes you scroll past the same junk over and over.
Go to the top of the page
+Quote Post
T_B_Good
post Oct 18 2010, 13:07
Post #50





Group: Members
Posts: 8
Joined: 29-October 07
Member No.: 48308



Thank you for reply.

Ok. For the clarity of the experiment I have reinstalled my native E-MU drivers again. Now I find emasio.dll in C:\Windows\System32 it is 65 024 bytes and in C:\Windows\SysWOW64 it is 58 880 bytes.

They ARE different indeed. So I must be running 64bit process now? So I am going to do this once again as you mentioned: "on 64-bit Windows, the x86 DLL should go to SysWOW64, the x64 one to System32" (system asks for overwrite, I say yes). and restart 2 times... and see what it brings...
Go to the top of the page
+Quote Post

4 Pages V  < 1 2 3 4 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 31st July 2014 - 15:55