yashsingh1/xdaforums huggingface dataset:
[Galaxy S I9000 Android Development] supercurio:
FiiO 5 Amp performance

Hello guys !

I just ran some RMAA tests on my tiny FiiO headphone amp :)

Soundcard used : Terratec 24/96.

Here are the results :

SPOILER : Galaxy S alone can do so much better !

http://xdaforums.com/attachment.php?attachmentid=375996&stc=1&d=1281284765

Frequency response

Noise level

Dynamic range

THD + Noise (at -3 dB FS)

Intermodulation distortion

Stereo crosstalk

​
[Galaxy S I9000 Android Development] }{Alienz}{:
Great supercurio but question. Are all those graphs for the soundcard itself or for the Galaxy S, or for the effect of a FiiO E5? I was confused as to which you're measuring.
[Galaxy S I9000 Android Development] supercurio:
This graph was all about FiiO 5 ;)

First :

Soundcard line-out -> Soundcard line-in

Second :

Soundcard line-out -> FiiO 5 line-in -> FiiO 5 out -> Soundcard line-in

Third :

|-> Soundcard line-in
Soundcard line-out -> FiiO 5 line-in -> FiiO 5 out -|
|-> Galaxy S Stock headphones
[Galaxy S I9000 Android Development] }{Alienz}{:
I see. But...if anything those graphs show the FiiO E5 makes the output QUIETER if anything. Is that the result you're getting? And isn't the sound card you are using already loud enough? Like I said I need it as a VERY-small sized volume booster basically to hook up to the phone.

If you have a FiiO E5 supercurio can you do this test:

1. Get the free version of MixZing on your Galaxy S from the market

2. Go into the equalizer of MixZing and set the preamp slider LOW. Like a good 10db lower than the normal max volume of the phone.

3. Test WITH and WITHOUT the FiiO E5 attached if there's a volume difference. As in, CAN the FiiO RESTORE the 10db you reduced from MixZing's equalizer.

It would be great if you can do that.
[Galaxy S I9000 Android Development] riwarren:
Why don't you just use replay gain to add 10db to the source files?
[Galaxy S I9000 Android Development] }{Alienz}{:
Because the phone starts clipping INTENSELY. It just can't handle the bass boosted 8 or 9 db and the volume being the original db as when the bass wasn't boosted. Hence I need to use the preamp to amp it 7-8db DOWN and THEN boost the bass the 8-9db.

Hence I need an external device like the Boostaroo or FiiO E5 (if it actually shows it boosts sound back up in this case)
[Galaxy S I9000 Android Development] heygrl:
I've already done that. I didn't know that this was a section for solutions to problems that don't exist. I'll try to understand things a bit better next time.

No headroom for +10dB in most modern recordings. ;), -10dBFS is the new hotness for modern recordings (most of them, rock/alternative is louder sadly)
[Galaxy S I9000 Android Development] riwarren:
http://www.dealextreme.com/details.dx/sku.18350

$17 with free shipping. Why don't you just buy it? if it doesnt work as you wanted, do a chargeback on your credit card saying it does not work as described. problem solved.
[Galaxy S I9000 Android Development] supercurio:
Hello }{Alienz}{ !

RMAA goal is to measure every signal properties except "power".

Just before the signal recording phase or RMAA, there is an assistant to help you adjust the levels (output level and input level & gain if present), in order to maximize SNR & Dynamics without clipping signal.

After the record phase, signals are Normalized to 100%.

That's the reason why in graphs you see, everything is kept around 0 dB.

Hopefully, that's the reason why these graphs can be read easily too ;)

If you want to know the maximum gain in dB you can get from the FiiO amp I can do some more measurements, but I cannot tell if they are really representative of the actual gain in sound pressure you will get with a real headphone attached (because of the difference in impedance between line-in and headphones)

I'll do that tomorrow for you.
[Galaxy S I9000 Android Development] supercurio:
Nice price here riwarren ;)
[Galaxy S I9000 Android Development] supercurio:
Yep you're right.

SGS has a quiet output by default (could be fixable with more documentation, but for now...).

Pre-lowering the signal by -10dB to apply a +10dB bass boost is the only way to avoid clipping in any situation.

Problem is that the output level get too low for most standard or low sensitivity headphones in this situation.
[Galaxy S I9000 Android Development] }{Alienz}{:
You're right. Ordered one and I'll see when it gets here. Hopefully its a keeper. :)

@ supercurio: Exactly lol. That's my whole dilemma with it :)

Hopefully the amp fixes it. I mainly need it for the car stereo. I have very low impedance headphones for personal travel use which are actually fine without any amp (even with the tweaked bass). The car stereo though DOES need a good 10db more to get it where I had it before.
[Galaxy S I9000 Android Development] supercurio:
This was riwarren for the price ;)

For your car stereo the line level gain I can test apply perfectly, i'll run it anyway!
[Galaxy S I9000 Android Development] }{Alienz}{:
Awesome :)

Btw: As far as the sound tweak originally in this topic, zeroing everything and fooling it to think its a line-in allows for equalizers like MixZing to work more effectively. Maybe I'm being subjective but I do think it sounds better. And MixZing appears to be a VERY nice equalizer. It's 10 bands are the same ones a lot of computer sound cards use hence it's like being home :) And each band offers 12.0 db of control. :)
[Galaxy S I9000 Android Development] supercurio:
@}{Alienz}{ Lucky guy, I just ran the test :)

With FiiO 5 amp as "line amplifier" or pre-amplifier, you get +5 dB.

Maybe less that you hoped.

For your car setup, a real pre-amplifier will probably do a better job.
[Galaxy S I9000 Android Development] }{Alienz}{:
Was that using MixZing to preamp it DOWN 10db first? Or does the FiiO amp it +5db when the phone is stock?
[Galaxy S I9000 Android Development] supercurio:
No need for third party app there.

FiiO 5 line output has a maximum gain of +5 dB compared to the source.

(so if you apply -10 dB first, -10 dB + 5 dB = -5 dB)

PS : i'm trying to tweak /system/etc/audio/ txt files in Froyo builds to see if we can get some audio tweaks from here.
[Galaxy S I9000 Android Development] }{Alienz}{:
Alright. That will have to work :)

Keep us updated if you figure out any more tweaks with the hardware EQ.
[Galaxy S I9000 Android Development] supercurio:
early report :

soundbooster.txt and stream_earpiece.txt are useless (in JP2)
[Galaxy S I9000 Android Development] MercuryStar:
Like Heygrl I guess, I'm also interested in the discrepency between GSMarena's headphone load tests, which show nothing more than about 0.4dB difference across the spectrum at best (undetectable to normal human ears), and the experiences of those like supercurio who are talking about peaks or troughs of up to 6dB (easily detectable by just about anyone).

Is it possible that this problem only exists in some units and not others (and not, obviously, gsmarena's)? Is it possible that gsmarena measured wrong or put the wrong scale on the graph? Is it possible that supercurio and others are imagining things (not that I doubt supercurio, but I guess I had to list all possibilities)? Or something else?

It'd be good if someone could test the actual output from the Galaxy S using headphone-like load and put it on a frequency response graph - to repeat gsmarena's findings, but showing the problem.
[Galaxy S I9000 Android Development] supercurio:
Hi MercuryStar !

Because your questions were smart, i made new measurements in order to answer you scientifically :)

I'll introduce by this graph :

In white :

My Galaxy S sample (permanently fixed) playing the standard RMAA test signal, under the load of stock Galaxy S headphones.

Almost flat isn't it ?

In green :

My Galaxy S sample (still permanently fixed) playing a modified RMAA test signal, under the load of stock Galaxy S headphones.

The test signal modification consist of applying a equalizer with Foobar2000; You already guessed which one : +2dB to the "55Hz" band.

With this real-life result, we know that the RMAA frequency curve represent accurately the signal output from a device, with or without load !

Now I can confirm that the +0.4dB variation in GSMArena graph means that the EQ applied by his SGS sample is contained +0.40 -0.12dB.

GSMArena Graph :

Note that there is not only loudness type EQ applied on the SGS load curve, but that we can see strange weaves too.

Maybe bad EQ configuration, or maybe dynamics compression processing altering the test signal.

About what I heard :

I've always been passionate about sound, learned music as kid, and trained my ears with many codecs/bitrates combinations.

I was accustomed to the sound response of this combo : iPhone 3Gs + Soundmagic PL50 in-ear" (very good combo btw)

Add this training + the disappointing experience I had first, and this -0.1 / +0.4dB EQ variation grown... to -2 /+6dB :D

I had no idea that human could hear so subtle frequency variations (I remember reading somewhere that most human could not tell 1dB variations).

But this EQ sounded so obvious to me that I wrote :

Please note that I was honest about the fact that it was just a subjective estimation ;)

Is it placebo effect ?

For me, it isn't, at all.

For many posters here and in a french forum, I know it isn't any placebo neither.

For GSMArena, I guess it isn't placebo because this is the first time in history that they use RMAA test with headphones attached. GSMArena probably heard something too, but I won't talk for them.

Some people won't notice any change with the fix and don't detect any problem. I'm happy for them because they don't need any solution to enjoy music listening with their device ;)

We can argue about numbers etc, but listening music stay a subjective experience. I just hope that those who consider that there's no problem don't act as egocentrics and feel right to say that everyone must think like they do.

Is the GSMArena device special ?

I don't think so. I think every Galaxy S (international version, don't know about others) has this -0.1 / +0.4 dB EQ applied to headphones... except... mine :eek:

PS : Is somebody interested in buying my unique permanently fixed device ?

I'm torn between keeping this very good device I enjoy (flat response, lower noise because I managed to reduce the analog gain of the amp) and being stuck with it because I can't test new fixes to share with you guys.
[Galaxy S I9000 Android Development] }{Alienz}{:
Can you at least remember WHICH portions of the Service app you were messing with so that others can go there too and possibly find the thing that caused your device to be permanently fixed? It would be nice if you could try remembering and listing which things you messed with the most.

Also, where and how did you manage to lower the analog gain of the amp to reduce noise?

PS: I'm using a Samsung Vibrant (T-mobile USA version of the Galaxy S). Can you detail the exact steps you use to test and produce the RMAA graphs? I want to confirm or disprove the +0.4db gains in the EQ.
[Galaxy S I9000 Android Development] supercurio:
I messed with almost every parameter in AUDIO / Headset & AUDIO / Headset VT, while listening to known music.

You know, in order to hear some real time sound modification.

I must admit that it was a quite blind erratic process and I have no idea how these modifications became permanent.

Sorry :/

But if you want to try too, about your problem, check everything with :

"Volume", "Gain" and "Level"

Remember that results can be unpredicable !

PS :

I'm writing a message for the alsa-devel mailing list. Wolfson and Samsung developers post on this mailing list too, hopefully I will get answers directly from them !
[Galaxy S I9000 Android Development] }{Alienz}{:
Yep. I actually got my sound EXACTLY the way I want it now through the MixZing Equalizer. On my in-ear headphones it sounds quite amazing and decently loud. Yes it could be a tad louder but its not a huge problem. I don't listen to it that loud, just prefer to have the option for show-offs or every now and then. As far as for the car, that FiiO E5 should fix the problem with volume there permanenly.

I'm thinking I may start messing with the Servide mode's equalizer that you explained how to clear. All the hexadecimal values. I'll post if I find any way of controlling them and how to do it.

Question though: Do the changes you make in service mode apply IMMEDIATELY. Meaning, can I have my music playing in say MixZing or the default music player WHILE adjusting stuff in the Service app and be able to see ON the spot if what I adjusted makes ANY difference to the sound. Or do I need to restart the music every time I make a change?

EDIT: I found out it changes things in real time so nevermind. I will now commence testing.
[Galaxy S I9000 Android Development] supercurio:
@}{Alienz}{ Hehe you edited so fast ;)

I remember this :

- EQ settings realtime

- Gains not realtime.
[Galaxy S I9000 Android Development] supercurio:
news from the #alsa-soc IRC channel

<broonie> curio_: The Galaxy S unfortunately does not use the standard driver for the WM8994.

<broonie> It's all Samsung's

<curio_> broonie, damn, this is bad news

<curio_> broonie, how do you know that, I checked Samsung's sources,

<broonie> It's using the ASoC framework but the driver is totally unrelated to the mainline ASoC driver for WM8994.

<broonie> I have looked at the code too.

<broonie> In any case, ASoC doesn't directly offer a way to do what you want either.

<curio_> broonie, do you know if their goal was to make this driver compatible with their "Service Mode" API ?

<broonie> No.

<broonie> There were other issues, it's not due to any new features that they have added.

<curio_> what I try to do is gaining access to the EQ and to some analog gains to tweak volume for several headphones

<broonie> I'm one of the ASoC maintainers and wrote the standard WM8994 driver.

<broonie> You're going to have to both replace the kernel and replace the audioflinger they use if you want to do anything here.
[Galaxy S I9000 Android Development] }{Alienz}{:
That is definitely not good news. Sigh.

So...I converted some of the hexadecimal values and well.....in decimal they are INSANELY high values! I got 4294967113 and things like that. Makes NO sense :/

I tried putting several even BIGGER values in (like 9994294967113) but that appears to make NO difference whatsoever. :/
[Galaxy S I9000 Android Development] }{Alienz}{:
On the brightside, I DID find this really helpful post detailing all default settings in the Service Mode app. It's found here.

http://xdaforums.com/showthread.php?p=7581808#post7581808

Maybe someone can make some sense out of some of the settings. Or maybe if someone can get a hold of a Samsung developer and ask them for a explanation of what some of the settings are, it would be nice. These are way too confusing for every Samsung engineer to know instinctively so I BET they have a booklet detailing what each does. If we can only obtain a copy of that. . .

@Supercurio: Maybe start by opening the Kconfig file lol. It's the only config judging from the file names haah :)
[Galaxy S I9000 Android Development] supercurio:
100% Agree

Kconfig is the least interesting file, it contains only options about source compilation (what's enabled or disabled).
[Galaxy S I9000 Android Development] }{Alienz}{:
Ah. Well, couple questions then.

First, how did you get to those files?

Are they editable? If so, how would you force the phone to use them?

If you got them from Froyo builds, do they really even matter for what we are trying to do? Since we would need to alter them THEN submit them to someone who's cooking ROMS to incorporate them into a ROM that we then flash...a bit of a hassle don't you think?

Last but not least, are they long on average or short? If they are short could you post some of them so that we can look at them? If they are long, I guess nevermind.

Lets contact Samsung and see if we can get a hold of some Engineer there lol. What do you think would be the best way to do that?
[Galaxy S I9000 Android Development] supercurio:
Samsung sources :

-> http://opensource.samsung.com/

-> search "i9000"

-> download GT-I9000_OpenSource.zip

You'll find those files in kernel sources.

Linux can be compiled from these source in order to build a custom kernel.
[Galaxy S I9000 Android Development] supercurio:
In the http://opensource.samsung.com/ site, you can click on a "message" icon to contact them.

Send a message to them, i'll try too :D
[Galaxy S I9000 Android Development] }{Alienz}{:
I sent them an email too. Basically asking for documentation on the kernel files, service app, and if they don't know, asked to connect us with a person at Samsung who might.
[Galaxy S I9000 Android Development] joplin48:
Problem with Headphones and Samsung Galaxy S

All this talk about the problem when you plug your headphones into the Samsung Galaxy S is greek to me .No matter how much I read in this forum does not make it clear for me.

I plan on using these phones with my Samsung Galaxy S. Will I encounter any problems?:confused: I really don't want to use a portable Headphone Amp.

Westone UM3X Specifications

Sensitivity: 124dB/mW

Frequency Response: 20 Hz -18 kHz

Impedance: 56 ohms

Driver: Three balanced armature drivers with a passive three-way crossover.

Thanks:cool:
[Galaxy S I9000 Android Development] }{Alienz}{:
The impedance on these is REALLY high (must mean they are big headphones). You WILL have a problem with them and here's what that problem will be. The phone can only handle headphones with impedance up to 16 ohms. Those are 56 ohms. What will happen when you play them is that the phone won't have enough power to drive them so they will sound really quiet. In order to fix that you need a headphone amplifier which can provide power to the headphones in order for them to sound as loud as you are used to. Otherwise, as of right now they will be REALLY quiet.

If you don't want to use a headphone amp, I suggest looking into a different pair of headphones. Most of the big headphones will require an amp. Look for earbuds, in-ear headphones, or really small over the ear ones. The big over the ear ones have big drivers and as a result require a lot of power. Most mobile devices nowdays are not designed to be able to handle such big headphones since most ppl don't walk around with them haha. Besides, its easier to support lower impedance headphones.

For comparison, I have a pair of Sennheiser 595HD Audiophile headphones which are top of the line basically but are big and over the ear. They have an impedance of 50 ohms and when I played them with my Galaxy S phone, they sounded at about 35% of their normal volume, even if I put the volume on highest. This makes sense since 16ohms go roughly 3 times into 50...hence the headphones get 1/3 the power they are designed for...and respectively their maximum volume theoretically will become roughly 33% of normal.

Hope that makes sense.
[Galaxy S I9000 Android Development] Mahagon Coral:
@ }{Alienz}{

well ...

these "big headphones" are in-ears after all ;)

I'd suggest to just try them out :p

if they are already bought plug them in and see whether they're working and sounding alright, if not, just get them and send them back when they do not work as supposed.

am I missing something?
[Galaxy S I9000 Android Development] Eskilden:
What's the latest here? Is the fix stated on the first post really a FIX or is it just a temporary?
[Galaxy S I9000 Android Development] }{Alienz}{:
WOW. I'd never imagine a company can make in-ear headphones with such ridiculously-high impedance haha. They are really just about the same impedance as my Sennheiser 595s and those use 40mm drivers! How in the world does an in-ear get such high impedance haha. But I still retain what I said. It will sound fine, it will just be REALLY quiet...maybe around 30% of maximum volume it's designed for. Considering according to specs it reaches a ridiculous 124db, maybe it won't be too quiet but still quieter than most.

The original post is more of a workaround as we still have not found a way to make it save. Supercurio DID find a way but he can't recall exactly which setting it is for the rest of us lol.

Moreover, the fix mostly gets rid of a +0.4db gain on the 55Hz range which for an untrained ear will not be noticeable. However, it should improve the crosstalk which is more important than the minor EQ it removes. I'd still recommend you apply it but if you want to tune your sound more, use a good music player equalizer to suit your taste. I'd recommend the Equalizer in MixZing personally as its a 10-band standard and is VERY powerful (+12db gains per channel).
[Galaxy S I9000 Android Development] supercurio:
I don't think joplin48 will have any problem using these headphones.

56 ohms is perfectly standard for headphones. I use Soundmagic PL50 : 55 oHms

joplin48 in-ears just have a very high sensibility level : 124dB/mW (109 dB for the PL50)

Sound level will be high, maybe even too high.

With such a high sensibility, it will be quite hard to find any audio device that doesn't hiss ^^

Hopefully SGS hiss is the lowest of current Android phones.

joplin48, this topic is about disabling the equalizer applied by default when you plug headphones (solution in first post), but sometimes deviates a bit :p
[Galaxy S I9000 Android Development] supercurio:
Eskilden hello, the fix work but is lost at each reboot.

If you use your phone as a normal person and not like some tech-junkie like many people here (yes, I am too) you won't reboot the phone so often.

I'm sure some phones have months or years of uptime :D

I'm studying Samsung drivers to find a permanent fix and maybe more (ability to control analog output level & hardware Equalizer)

And... did I said that... I NEED HELP ! :)
[Galaxy S I9000 Android Development] supercurio:
Yep.. and that's too bad.

ServiceMode system is so obscure...

I hear a loundness type EQ, that means : bass boost + high boost

Bass boost ('til more than 100Hz) bothered me as much as the high frequcencies, but I know you like bass boost :D

The goal is to get a flat response, this is what every decent equipment (especially high-end like the SGS) may give by default.

Stereo crosstalk ? Nope, stereo is untouched and RMAA results are the same.
[Galaxy S I9000 Android Development] }{Alienz}{:
Oh sad day :(

lol.

And I suppose you are right. 124db is quite loud. I still think the impedance is extremely high though. All of my in-ear pairs are around 16 ohms and most are QUITE powerful, both in volume and bass. 56 ohms...idk. There's something fishy with that imo.
[Galaxy S I9000 Android Development] supercurio:
Hehe there's nothing wrong with Galaxy S stereo crosstalk ^^ (more than 90 dB separation which is very good for a phone ;))

Stay calm, there is nothing wrong with an impedance of 56 oHms :cool:

This is common, especially for earphones and very small speakers.

PS : I have found the mail of a Samsung developer in drivers's source :)
[Galaxy S I9000 Android Development] supercurio:
Message send to the Samsung developer

Hey guys, I just send this message to Shaju Abraham.

I found his signature on the Samsung specific driver.

Subject :

Message :

Pretty much the only real contact I could find at Samsung...
[Galaxy S I9000 Android Development] supercurio:
Message send to the Samsung Opensource Portal

http://opensource.samsung.com/

They recommend sending a new inquiry if they did not respond within 24h.

I will !
[Galaxy S I9000 Android Development] MercuryStar:
Hmmm - maybe dynamic compression has something to do with the discrepancy - perhaps the built-in eq applies differently to different sound intensities a bit like a loudness filter that kicks in more for low amplitudes.

Does the variation across the spectrum become any greater if you knock say 10 or 20dB off the test tones? And does the actual output reduce by the same 10 or 20dB or is it somewhat compressed/normalised?

Just curious