Help - Search - Members - Calendar
Full Version: What's With The Sound Quality?
OESF Forums > Distros, Development, and Model Specific Forums > Model Specific Forums > C1000/3x00 General discussions
Pages: 1, 2
Dromede
in the beginning, there was the Sharprom...it's music player was quite good, the sound was crisp and loud...but there was little bass response. and since it doesn't have an equalizer the problem could not be fixed. Then there was the PdaXrom which gave us Xmms... well, im here to discuss about the crappy sounds emanating from my (quality)headphones driven by Xmms. as i said the sound is crappy, apparently unbalanced and there is no way of fixing that since xmms equalizer doesnt work on our Z's. fine, i said to myself...just install some other player that has a working equalizer. So i hit the forums...And end up being seriously dissapointed....

apparently there is no music player with an acceptable working equ AFAIK.
Which is kind of strange 'cos it seems that our Z's sound chips(wolfson WM8750) have basic equ capabilities which can be seen on this link:

http://staging.wolfsonmicro.com/products/WM8750/

I also remember reading somewhere that our Z's have the same DAC as ipod's do, can anyone confirm/negate that?

So what's the problem? is it so hard to make a software interface to existing hardware dsp capabilities? And why doesn't xmms equ work?
Dromede
anyone?
anything?
arniel
QUOTE(Dromede @ May 17 2007, 07:46 AM)
anyone?
anything?
*


Sadly, I thinnk anyone who gives a toss has already dumped their Zs for something a bit more appropriate. I had a vision, once, that I could use my Z for all manner of tasks from being an MP3 player to reading pdf files to composing emails. Fairly simple stuff, no? Well, ever since upgrading from OZ 3.2 (I have a collie), the Z has been nothing but trouble with stupid problems like not being able to suspend properly, through extremely rough sound quality with mp2 files to general instability. For sure, the hardware is capable of useful things but the software sucks badly - nothing is ever stable. Even playing with the Qtopia ROM I now find that it ignores the SD card I have. So now it sits in my rucksack waiting for the day when a useable OS is available. Until that time, a real MP3 player and outboard Creative Dolby encoder takes care of my musical needs and good old fashioned paper books do the rest...
eviLjazz
Actually, I'm currently hacking the 2.4 driver for the WM8750 audio chip.
The headphone jack on my Zaurus is broken. It won't recognize when I'm pulling out the headphone plug and thus won't switch back to the internal speaker. I've already added functionality for manually overriding that.
Anyway, while I was at it I also extended the driver to support bass and treble regulation. This is currently only working in my userspace testcode, however it will make it into the driver ASAP.
I think I have the patches ready by the weekend.
Dromede
you just made me really happy... :-D
danboid
QUOTE(eviLjazz @ Jul 3 2007, 06:05 PM)
Actually, I'm currently hacking the 2.4 driver for the WM8750 audio chip.
The headphone jack on my Zaurus is broken. It won't recognize when I'm pulling out the headphone plug and thus won't switch back to the internal speaker. I've already added functionality for manually overriding that.
Anyway, while I was at it I also extended the driver to support bass and treble regulation. This is currently only working in my userspace testcode, however it will make it into the driver ASAP.
I think I have the patches ready by the weekend.
*


Wow! Thats great news!

I hope to see this code integrated into the kernel of the next pdaXii13 release

Thanks for improving the Z experience eviLjazz!
adf
QUOTE(danboid @ Jul 6 2007, 09:49 AM)
QUOTE(eviLjazz @ Jul 3 2007, 06:05 PM)
Actually, I'm currently hacking the 2.4 driver for the WM8750 audio chip.
The headphone jack on my Zaurus is broken. It won't recognize when I'm pulling out the headphone plug and thus won't switch back to the internal speaker. I've already added functionality for manually overriding that.
Anyway, while I was at it I also extended the driver to support bass and treble regulation. This is currently only working in my userspace testcode, however it will make it into the driver ASAP.
I think I have the patches ready by the weekend.
*


Wow! Thats great news!

I hope to see this code integrated into the kernel of the next pdaXii13 release

Thanks for improving the Z experience eviLjazz!
*


I agree. That will be a really nice addition to my Z. Looking forward to it, thanks smile.gif
eviLjazz
It's almost finished. I just need to debug a problem with enabling the 3D mode. For some reason the register is switching back right after the mode was enabled for the first time and the audio device is closed.
Also the OSS /dev/mixer stuff needs to be implemented. The options look pretty slim for treble, bass and 3D sound adjustments. AFAIK, OSS does only allow values in range of 0 to 100 for these three settings and the WM8750 offers way more options here.
Attached is a preliminary screenshot of the control app. This application will control all advanced parameters in /proc/driver/wm8750/.
zedkatuf2
QUOTE(eviLjazz @ Jul 7 2007, 01:40 PM)
It's almost finished. I just need to debug a problem with enabling the 3D mode. For some reason the register is switching back right after the mode was enabled for the first time and the audio device is closed.
Also the OSS /dev/mixer stuff needs to be implemented. The options look pretty slim for treble, bass and 3D sound adjustments. AFAIK, OSS does only allow values in range of 0 to 100 for these three settings and the WM8750 offers way more options here.
Attached is a preliminary screenshot of the control app. This application will control all advanced parameters in /proc/driver/wm8750/.
*


Wow - nice work. Will this end up running OK on pdaxrom, or is it dependent on running opie (probably yes, by the looks of the screenshot)
daniel3000
If a basic commandline-based solution for pdaXrom would be available, that would already be great!
This could be used in conjunction with Xdialog as a GUI.
Please keep us informed!

daniel
eviLjazz
I'm now getting the necessary kernel patches and packages ready. It should be available pretty soon.
The mixer application should be compilable with Qt 2 or 3 since it's pretty simple.
I need to check out pdaXii13. Are there any dual-boot options available?
eviLjazz
Alright, here is the first test release:
http://www.katastrophos.net/zaurus/sources/wm8750mixer/

The control app is also available via my feed:
http://www.katastrophos.net/zaurus/packages/

I can provide compiled kernel images if required. Let me know. I can only test on my C3200 though...
daniel3000
hmm - kernel image? Isn't this simply a driver module which has to be replaced? Otherwise it might get quite complicated to add this to an existing setup.

Would such a Sharp ROM module work as well under pdaXrom? I hope so.
Please explain a bit how to set it up.

I am able to compile applications, but not modules or even an entire kernel currently.

Thanks a lot
daniel
eviLjazz
The audio driver for the WM8750 is linked into the kernel. It's not a module. That's the case in almost all 2.4.20 kernels I know of. If it was a module, things would be a lot easier...
My patch extends the existing driver with the new features. I was contemplating to move my code into a separate module. However, some of the features require a register setup quite early in the initialization process of the chip (e.g. for 3D sound). I can't do that in a separate module - at least not with conventional methods... smile.gif
I can provide compiled kernels for Cacko and Sharp ROM only.
I think pdaXrom beta 3 has special kernel patches applied for the X11 gfx acceleration et al. Where can I find the kernel sources?

Meanie mentions on http://www.users.on.net/~hluc/myZaurus/pdaxii13.html:

QUOTE
zImage.bin

This is a kernel image. I just renamed the kernel from the C3000 beta2 to zImage-2.4.20.bin. This way, I can use almost any 2.4.20 kernel image for the C3000, by simply renaming the kernel image to zImage-2.4.20.bin and flashing it. I have found that the C3000 beta2 kernel works best and is most stable. I have tried using the Tetsu special kernel image as well and it mostly works, but since the C3000 beta2 kernel works great, there is no point in using the Tetsu kernel.

I still haven't tested pdaXrom beta 3/pdaXii13, so I can't comment here. I don't want to endanger my currently working productive setup.
But it seems pdaXrom beta 3 might as well work with any 2.4.20 kernel. Tetsu's kernel isn't very different from the original Sharp kernel except for several performance optimizations. The kernel that comes with Cacko 1.23 includes most of the Tetsu patches except for the new reliable FastFPE code.
I'm currently in the process of setting up a SVN repository for the 2.4.20 kernel on my site. My current kernel merges the latest Tetsu with the latest Cacko patches and adds some additional features. So perhaps this would be useable with pdaXii13 too? I'll let you know once I have it set up.
T3_slider
I think the best idea for getting it to work with pdaXrom would be to submit your work to a pdaXrom dev -- if users have to flash their own unofficial pdaXrom kernel and then try to get pdaXrom to work with it, it might get a little difficult. That's just my idea though -- if you can come up with something different/better go for it.
adf
There is no way it can be done by making modules rther than doing a whole new kernel?
gaarder
QUOTE(eviLjazz @ Jul 15 2007, 12:59 PM)
I can provide compiled kernels for Cacko and Sharp ROM only.

...
My current kernel merges the latest Tetsu with the latest Cacko patches and adds some additional features. So perhaps this would be useable with pdaXii13 too? I'll let you know once I have it set up.
*


As a C3200 Cacko user, I would appreciate greatly if you can release your current compiled kernel. biggrin.gif
eviLjazz
Thanks for the feedback!
Chances are low for the module solution but I'll look into it again tonight.
As for the compiled kernel, I'll prepare the kernels tonight and make them available here. Alright, back to work... sad.gif
eviLjazz
Okay, I've uploaded the kernels to my server.
They are here along with all other notes and information:
http://www.katastrophos.net/zaurus/kernels/v44/

The kernels for C3200 all work okay on my device with Cacko 1.23. See my other post below for pdaXrom...
I can't test for C1000, C3000 and C3100. However, I'm confident they work fine since the configuration is the same as with the Cacko- and Stock-Kernels and the whole build process is automated - so no screwing up on my part. smile.gif
Dromede
will these work with pdaxrom and derivatives?
eviLjazz
I simply don't know. I've only tested with Cacko 1.23.
If anybody is brave, go ahead and post your findings! smile.gif
Make sure you have a backup zImage of the original pdaXrom / pdaXii13 kernel lying around in case something goes wrong.
Meanie has tried the Tetsu kernel with pdaXrom and from what I read it worked. See my post #14.
seiichiro0185
Well, I just tried the new kernel + wm8750mixer on my C1000 und it works without a problem. Thanks for your work! I already thougt the Zaurus had a really good audio quality untill now, but with the possibilities given thanks to your work it is really great! Thanks again!!

seiichiro0185
zedkatuf2
...Am I correct in thinking that the actual compiled mixer application only works in an opie/QT-type environment, or does cacko use X11 like pdaxii13 (I'm using pdaxii13)?

[Sorry for being ignorant - I guess I should know the answer to my question!!]
Dromede
cacko doesn't use X11. cacko is based on qtopia.
Dromede
hmmm....
http://lists.arm.linux.org.uk/pipermail/li...une/015944.html

so fastFPE should make things alot faster am i right?
zedkatuf2
QUOTE(Dromede @ Jul 17 2007, 08:45 PM)
cacko doesn't use X11. cacko is based on qtopia.
*



OK, so this means that the actual mixer application won't work on pdaxii13 I guess sad.gif
eviLjazz
Here are my lousy FPE benchmarks:
http://www.katastrophos.net/zaurus/kernels.../FPE-Benchmark/

The new FastFPE code is a lot better than the old code that comes included with the stock kernel sources. It's the default FPE for Tetsu's kernel now. The Cacko kernels comes with NWFPE enabled.
My subjective feeling is that FastFPE accelerates Opera A LOT.

As for the mixer application, it's plain Qt 2. I bet Qt 2 / 3 is included in pdaXrom. It should be fairly easy to compile once you have the dev environment set up.
I can't sacrifice my Zaurus right now and install pdaXrom since I need a working setup tomorrow. Perhaps at the weekend, can't promise...
zedkatuf2
QUOTE(eviLjazz @ Jul 17 2007, 09:56 PM)
Here are my lousy FPE benchmarks:
http://www.katastrophos.net/zaurus/kernels.../FPE-Benchmark/

The new FastFPE code is a lot better than the old code that comes included with the stock kernel sources. It's the default FPE for Tetsu's kernel now. The Cacko kernels comes with NWFPE enabled.
My subjective feeling is that FastFPE accelerates Opera A LOT.

As for the mixer application, it's plain Qt 2. I bet Qt 2 / 3 is included in pdaXrom. It should be fairly easy to compile once you have the dev environment set up.
I can't sacrifice my Zaurus right now and install pdaXrom since I need a working setup tomorrow. Perhaps at the weekend, can't promise...
*


OK, I might try & compile the app....also thinking of 'risking' installation of the fastFPE-uncachedfb kernel smile.gif
zedkatuf2
QUOTE(zedkatuf2 @ Jul 17 2007, 10:16 PM)
OK, I might try & compile the app....also thinking of 'risking' installation of the fastFPE-uncachedfb kernel smile.gif
*



....pdaxii13 complains about not being able to find ide_cs kernel module on bootup & then X11 freezes, so I've reflashed back to the 5.4.7 kernel for now; maybe someone who has more time smile.gif can look into this - perhaps, for example, I should've used fastFPE-cachedfb


...haven't got the time to fiddle more for now, but am def interested to see if this the mixer can be gotten to work under pdaxii13, as it looks like a fantastic improvement.
adf
wouldn' the thing to do be to patch the existing pdax kernel and then build as usual (not that I7ve done any such thing in pdaX, but itt seems more logical)
gaarder
The new compiled kernel runs perfectly on my Cacko C3200. I used the FastFPE-cachedfb version and noticed some performance improvement. I am going to compare it with another machine with the same config with the stock kernel to see if there's any significant difference.
zedkatuf2
QUOTE(adf @ Jul 18 2007, 02:29 AM)
wouldn' the thing to do be to patch the existing pdax kernel and then build as usual (not that I7ve done any such thing in pdaX, but itt seems more logical)
*


...yes, definitely - no time to do it though sad.gif [if anyone wants to try, it'd be nice to get working on pdaxii13 wink.gif )
eviLjazz
Alright, I installed pdaXii13 at last. It's quite nice actually. WPA is a nightmare to set up, though.
Anyway, attached is a screenshot of the mixer app running in X11 and Qt3.
I'll probably release the ipkg and kernels sometime today or tomorrow.
Gorth
This will be excellent. Thanks!
zedkatuf2
QUOTE(eviLjazz @ Jul 22 2007, 04:30 PM)
Alright, I installed pdaXii13 at last. It's quite nice actually. WPA is a nightmare to set up, though.
Anyway, attached is a screenshot of the mixer app running in X11 and Qt3.
I'll probably release the ipkg and kernels sometime today or tomorrow.
*


Wow! Many thanks for spending the time on this...looking forward to trying it out!
eviLjazz
Okay, that took a bit longer than expected. Sorry about that.

So here it is:

Mixer sourcecode and binaries for Sharp ROM/Cacko and pdaXrom/pdaXii13:
http://www.katastrophos.net/zaurus/sources/wm8750mixer

Pre-compiled kernel images that include the modified WM8750 driver code:
http://www.katastrophos.net/zaurus/kernels/v55

In my kernel branch the official pdaXrom kernel patches that are included with the pdaXrom builder have been merged with the Cacko patches. There weren't many differences sourcecode-wise. Most of it comes down to just a few kernel configuration differences, which are handled by the build system included in the sourcecode snapshot. I'm going to submit the changes to the pdaXrom team. However, I'm not sure if they are still interested in the old, albeit stable kernel 2.4.20.

I've tested the pdaXrom kernel extensively on my C3200 for the last 3 days. It's working without any problems.
Please post your results for the other models! Thanks.
Meanie
QUOTE(eviLjazz @ Jul 25 2007, 10:42 AM)
Okay, that took a bit longer than expected. Sorry about that.

So here it is:

Mixer sourcecode and binaries for Sharp ROM/Cacko and pdaXrom/pdaXii13:
http://www.katastrophos.net/zaurus/sources/wm8750mixer

Pre-compiled kernel images that include the modified WM8750 driver code:
http://www.katastrophos.net/zaurus/kernels/v55

In my kernel branch the official pdaXrom kernel patches that are included with the pdaXrom builder have been merged with the Cacko patches. There weren't many differences sourcecode-wise. Most of it comes down to just a few kernel configuration differences, which are handled by the build system included in the sourcecode snapshot. I'm going to submit the changes to the pdaXrom team. However, I'm not sure if they are still interested in the old, albeit stable kernel 2.4.20.

I've tested the pdaXrom kernel extensively on my C3200 for the last 3 days. It's working without any problems.
Please post your results for the other models! Thanks.
*


since pdaXii13 is using the stable 2.4.20 kernel, I'd be interested in it and will be adding the patches into the pdaxrom svn (but it probably will take some time since I am currently quite busy)
Dromede
QUOTE(eviLjazz @ Jul 25 2007, 01:42 AM)
Okay, that took a bit longer than expected. Sorry about that.

So here it is:

Mixer sourcecode and binaries for Sharp ROM/Cacko and pdaXrom/pdaXii13:
http://www.katastrophos.net/zaurus/sources/wm8750mixer

Pre-compiled kernel images that include the modified WM8750 driver code:
http://www.katastrophos.net/zaurus/kernels/v55

In my kernel branch the official pdaXrom kernel patches that are included with the pdaXrom builder have been merged with the Cacko patches. There weren't many differences sourcecode-wise. Most of it comes down to just a few kernel configuration differences, which are handled by the build system included in the sourcecode snapshot. I'm going to submit the changes to the pdaXrom team. However, I'm not sure if they are still interested in the old, albeit stable kernel 2.4.20.

I've tested the pdaXrom kernel extensively on my C3200 for the last 3 days. It's working without any problems.
Please post your results for the other models! Thanks.
*


did fastFPE made any performance difference when you ran pdaxrom?
eviLjazz
No. In pdaXrom all binaries are compiled with soft float, so they do not contain any hardware FP instructions. Running FastFPE only makes a difference if you intend to run chrooted Debian or other ARM GNU/Linux distros, where binaries are compiled with hard floats.
Dromede
Ok. So how can pdaxrom users exploit fastFPE performance gains? do we recompile stuff to use hard floats? would that make any noticeable difference performance wise?
eviLjazz
Generally you can't mix soft float with hard float compiled binaries and libraries (at least I think pdaXrom doesn't use the new EABI, does it?). You would have to recompile everything for hard floats and I really don't see the point in that. We've been there and done that in the first pdaXrom releases...

The benchmarks I posted on my website are only representative for Cacko and SharpROM - I should have made that one clear.
I think the reason the softfloat benchmark results are roughly on par with the Netwinder float point emulator (NWFPE) is due to the softfloat functions in GCC 2.95.x being generic and not specifically optimized for ARM. NWFPE is using the very same functions from what I know. Add to that the trapping and context switch overhead that's happening in the kernel.

AFAIK the softfloat functions in GCC 3.x used in pdaXrom are more tuned for ARM. The only way to figure that out is checking the sourcecode and re-doing the necessary benchmarks on pdaXrom. I'll do that tonight.
Update: I've updated the benchmark results at http://www.katastrophos.net/zaurus/kernels.../FPE-Benchmark/
GCC 3.4.6 has better softfloat code than GCC 2.95.3. It's faster than FastFPE. Like I said, you can still benefit from FastFPE if you use a chrooted Debian / Pocketworkstation, which binaries contain hardware floating point instructions. It's still 3-5 times faster than the regular NWFPE.

Anyway, the thread was about the sound quality and audio chip features, so how about that? Anybody feeling brave enough to try my stuff? smile.gif
Dromede
hmmm...Ok. this is a but too much for me to follow.:-D indeed, i started this thread due to poor sound quality of existing drivers. and you've certainly made quite an improvement in that field and for that i thank you. unfortunately my sd card isn't recognised by teh bootloader or whatever so i can't flash your new kernel. i'll have to borrow another one from a friend. I'm very eager to try it. i'll post my results later when i get a hold of my friend.

respect.
eviLjazz
Make sure to format it FAT16. FAT32 won't work.
Dromede
i tried reformatting to FAT16 as you suggested. card still isnt recognised. i should also mention that the card never gets automounted, i always have to do it myself. dmesg says stuff like "JFFS2: attempt to mount non-MTD device 3c:01" and "FAT: unable to read boot sector". but i can mount it with "mount /dev/mmcda /mnt/card". i never had any problem reading or writing to the card. i had no such problems on a 1gig PQI card i lost recently...
zedkatuf2
QUOTE(eviLjazz @ Jul 25 2007, 01:42 AM)
Okay, that took a bit longer than expected. Sorry about that.

So here it is:

Mixer sourcecode and binaries for Sharp ROM/Cacko and pdaXrom/pdaXii13:
http://www.katastrophos.net/zaurus/sources/wm8750mixer

Pre-compiled kernel images that include the modified WM8750 driver code:
http://www.katastrophos.net/zaurus/kernels/v55

In my kernel branch the official pdaXrom kernel patches that are included with the pdaXrom builder have been merged with the Cacko patches. There weren't many differences sourcecode-wise. Most of it comes down to just a few kernel configuration differences, which are handled by the build system included in the sourcecode snapshot. I'm going to submit the changes to the pdaXrom team. However, I'm not sure if they are still interested in the old, albeit stable kernel 2.4.20.

I've tested the pdaXrom kernel extensively on my C3200 for the last 3 days. It's working without any problems.
Please post your results for the other models! Thanks.
*



Hi - just want to confirm that I should use the following to get the mixer working on pdaxii13:


http://tinyurl.com/35oyyo - mixer app
http://tinyurl.com/2o7aql - zImage kernel for pdaxrom (fastfpe)
http://tinyurl.com/2u2kt7 - kernel config
http://tinyurl.com/39mdud - pdaxrom kernel modules
http://tinyurl.com/2ncw3z - updater.sh

....slap on vfat sd/CF & reflash kernel as per normal?

(I've put the above as tinyurl's so you can see them, as the oesf BB sometimes abbreviates long urls).
eviLjazz
Your links are okay.
For updating the kernel you just need zImage and updater.sh.
Modules are optional. There are some drivers included in the module archive which are not included in pdaXrom or pdaXii13.
The kernel config is just there to make things more transparent in case you want to recompile the kernel yourself from either the sources I provided or my current SVN.
zedkatuf2
QUOTE(eviLjazz @ Jul 25 2007, 06:46 PM)
Your links are okay.
For updating the kernel you just need zImage and updater.sh.
Modules are optional. There are some drivers included in the module archive which are not included in pdaXrom or pdaXii13.
The kernel config is just there to make things more transparent in case you want to recompile the kernel yourself from either the sources I provided or my current SVN.
*


OK, tnx. I've reflashed & can confirm that it works great under pdaxii13. It's so nice having the bas/treble & 3d surround option - and it makes a massive difference - many thanks again for all your time spent on this!
danboid
I'm looking forward to seeing an updated pdaXii13 with the new mixer kernel code and tools included! Big thanks MeanieJazz!

Funny to see such fundamental features of the cxxxx sound driver being implemented by an unpaid user/developer 3 years after the c3000 release! I wonder what other new hardware functionality is yet to be added to the archaic crappix kernel?
eviLjazz
Thanks for the feedback. I'm glad it works for you, zedkatuf2.

So the stuff is working on one C3200 and one C1000 running Cacko and two C3200's running pdaXrom. I'm interested in the other models (C3000, C3100) especially. Anybody keen enough to try the kernel and mixer app on one of these models?

danboid, thanks for the comment. Actually the only reason I implemented the stuff is broken hardware. I really only wanted the internal speaker to work again. My Zaurus' headphone jack is broken and won't switch back to the internal speaker when the headphone plug is pulled out. That problem is fixed via software. The treble/bass and 3D sound stuff is just a by-product of that hack. wink.gif
Sure, I could simply get the hardware repaired. However, that would mean sending the machine in for repair and that can easily take weeks. I don't have a second Zaurus, so there it goes. smile.gif
As for the "the archaic crappix kernel": Sure, it's old, but it still gets the job done...

Alright, back to porting my Quasar Media Player to pdaXrom...
iczer3
Dear evil_jazz,

I tried it on my C3000 with pdaxii13 and it worked beautifully with your
mixer.

Thanks for all the hard work.

BR,

Felix.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2014 Invision Power Services, Inc.