Related
So which one do u choose ?
CorePlayer
Nitrogen player
Windows media player
TF3D music player
or others?
Plz post your reasons too
so? 90 views and no answers
i'm using pocket player . it works great
and i'm using it with jabra stereo blutooth headset.
TF3D music player
I've been using the TF3D music player on my tp2 for about a month now and it seems to be doing all that i need from it.
Simple to use and good quality output as well. Can't say much about other music players as I haven't used any recently.
in order to get as much music on my phone as possible i am using aac compressed audio (with SBR). This format provides 128kbit/s-mp3-quality at 48kbit/s (at least to my ears).
The only players that i know supporting this format are WMP and TCPMP. As TCPMP does software decoding the device gets slow during playback. WMP seems to have something like hardware acceleration for aac. therefore i am using WMP (with another skin as the default one is not very finger friendly).
thanks yeah i like the TF3D default myself too Nitrogen is good but i think the volume is a little low compared to TF3D player,i use coreplayer for movies and TF3D for musics,just wanted to know other opinions
while the htc audio manager is nice, NITROGEN is now my player of choice despite minor bugs.
WMP works well for me. Don't like the skin but I have downloaded an HTC-like theme so it is all good.
pocket player too
wide variety of audio format support (4.x supports aac), AVRCP support, plugin to add pitch adjustment
Power Problems
Mesquire said:
while the htc audio manager is nice, NITROGEN is now my player of choice despite minor bugs.
Click to expand...
Click to collapse
How did you get the player to play in power saving mode. with the screen off. Whenever I do this it stops the music, and some times, even unloads my memory card.
This has been my biggest bain and major issue with my tmobile tp2. I have tried Mortplayer and Nitrogen, the best IMHO and have had the same issue. I have tried different searches to enable the device to let the music play while the screen is off and none have worked. I am going to try S2P. My only gripe witht that program is that it does not play all file formats.
Oh well...
Coreplayer.
Has EQ, bass boost and pre-amp options and also is the best video player.
juliangun4ev said:
i'm using pocket player . it works great
and i'm using it with jabra stereo blutooth headset.
Click to expand...
Click to collapse
yeah,Pocket Music Player is the thing,it can auto power off and power on,holy ****,which else can be as nice as this one?
+1 for Pocket Player.
My reasons: AVRCP support (a must have feature for me), wide format support (many free players don't support wma, which is a deal breaker for me), equalizer, gapless playback(!), quite finger friendly (some buttons are rather small on the default skin, but it has kinetic scrolling etc.)...
Video support is a bit lacking, but then again I only use it for audio.
I use Pocket Player as well, mostly because it works well for both music and audio books. I am frustrated with whatever method it uses for shuffle, though. I've had 6 different songs play 2-4 times in 4 hours. I have nearly 1000 songs and 66 hours of music! Seems like I should not be getting that kind of repetition.
Pocket Player problems with playing large MP3 files...
One thing guys - and anyone who uses Pocket Player on the TP2 may have seen this... I listen to a lot of voice audio. I prefer to combine the files for audio and can sometimes have long audio files of 300 megs all the way to 1.2 gigs (I use a 16 gig storage card).
The problem i have seen is that sometimes the control that shows where you are in the audio file goes haywire and slides from the correct position all the way to the right - making the bookmarking feature fail and impossible to navigate. Additionally it appears Pocket Player somehow miscalculates the size and length of the audio - but it originally has the size and length correct - this only happens after a certain point (for me it seems after about 240 minutes or so - about 4 hours in).
WHat is so strange is this does NOT happen for all audio files on this device. Some of the large files seem to play fine without problem. Additionally when I compare this to another TP2 that has an installation of the competitor program Pocket Music, this does NOT happen. Also this never happenedon our original HTC Mogul from Sprint.
The problem is we need the AVRCP controls and we all know that Conduits is the only company that has addressed this. It's also pathetic that HTC themselves has continued down this path and refuses to even comment on this issue.
2 questions to this wonderful community of genius people who take it upon themselves to fix what should have been included in the first place:
1. Has anyone seen a hack / mod that will fix the AVRCP controls so that programs like Pocket Music and other players can be used via Bluetooth remote controls?
2. Has anyone seen this specific issue with Pocket Player (which has that beautiful speed plugin that does not alter pitch - love that) and if so - is there a fix or workaround for large files 'breaking' in the middle of playing so that you can no longer save your position or know the correct position of the player in the middle of the MP3 being played?
Thanks in advance to all of you who have any suggestions on either issue.
I'm using Kinoma Play, though mainly for its integration with Orb and video abilities.
For music it supports album art, but only has bass and treble adjustments, not an equalizer.
There is a Kinoma Free you can try.
I am searching for the perfect player and have been testing several of them to see how they work. In addition to some of the normal music player requirements I have 2 pet peeves in particular:
1) The player must support the "Album Artist" tag so that compilations are listed properly in the library.
2) Proper alphabetization - "The Beatles" should be listed under the B's not incorrectly under the T's.
I am testing Pocket Player right now. So far it is the only music player that supports and uses the "Album Artist" tag and it does so by default. It does not support proper alpha. AVRCP works fine out of the box.
The HTC player has the advantage in that it is the only player that can be integrated on the TF3D tabs but does not utilize the "Album Artist" tag nor uses proper alpha. It also has a serious bug that prevents it listing and playing a albums tracks in the correct order. AVRCP of course works well.
WMP supports proper alpha but not the "Album Artist" tag. Strange since MS pioneered the use of the "Album Artist" tag in the desktop version of WMP. AVRCP works fine.
CorePlayer is an evil company. I will never buy or use any SW they make.
Kinoma is next up on my list.
I wish I could find a music player that addresses both of my pet peeves and could be integrated into the TF3D tab replacing the HTC one. That would be the perfect player for me.
S
sleonard said:
2) Proper alphabetization - "The Beatles" should be listed under the B's not incorrectly under the T's.
Click to expand...
Click to collapse
I understand what you're saying but I would argue that any player that puts that artist name under B is the one doing it incorrectly. If you want The Beatles under the B's then you should rename those tracks to the album artist "Beatles."
For the people that got the TF3D music to work, please share your magic on having it identify your library from a storage card.
moSess said:
How did you get the player to play in power saving mode. with the screen off. Whenever I do this it stops the music, and some times, even unloads my memory card.
This has been my biggest bain and major issue with my tmobile tp2. I have tried Mortplayer and Nitrogen, the best IMHO and have had the same issue. I have tried different searches to enable the device to let the music play while the screen is off and none have worked. I am going to try S2P. My only gripe witht that program is that it does not play all file formats.
Oh well...
Click to expand...
Click to collapse
I know this question is like 2 months old but I use Nitrogen and its good enough for me...very finger friendly! And on the main screen there's a button that looks like a Power Button under the volume keys...thats how you put it into "sleep mode" and music will continue playing.
Hello, guys.
Today I decided to delete all my music from my mobile and move it back again from my computer because I fixed a lot of the mp3 tags etc. What can I say? I'm a perfectionist. The problem is that the Music player -- even though it appears to be reindexing -- updates nothing other than the album pictures that I had embedded in the mp3s. The genres etc are still wrong which led me to believe that it does not really reindex.
I tried all the usual stuff and also tried this weird idea: unmounted the memory card, used Advanced Task Killer to complete shut the music player, went to Settings->Applications and cleared the music player's data (size was only 8kb though), remounted the SD card, but the Music Player still indexed the files with the old tags.
Does anyone have a fix for this?
Thanks in advance,
Louis.
That's an odd problem. Have you tried testing it on an alternative music player application?
Lukehluke said:
That's an odd problem. Have you tried testing it on an alternative music player application?
Click to expand...
Click to collapse
Actually, after a quick search I've found that many people have the same problem. From what I had read, changing a Media Player wouldn't fix it for them either (even Media Players with the built-in option to actually reindex the music). I tried something that at the very least sounded like a stupid idea and it was fixed though. Haha! Moving the files to a different directory than the one that the previous files were in causes the Media Player to completely reindex the files (mp3 tags, album covers etc).
I guess the logic behind it is: The music index file keeps a path to the mp3 together with something like comma separated values for the mp3 tags. Since the updated files I had moved from the PC to the memory card had the exact same filename and only altered mp3 tags, the phone completely ignored the mp3 tags assuming that it was the same file. By moving the music to a different directory you cause the index file to be updated (or even recreated) because the path to the new mp3s is not listed in the index file.
I had been encoding all my music in wma 10 pro as it provided the best integrity of the lossy formats supported by wp7. Not everything was encoded in the same format, though. HTC Sound Enhancer didn't seem to be working and I thought it was a hardware issue because it was universal with every rom I used. Then, I noticed that sometimes the enhancement would work with certain songs. I took a look at them and realized it was the wma 10's that didn't work with it. I transcoded them to m4a's and now they work with the enhancement.
I just thought it was an interesting find and thought I'd share it.
I think I should clarify that by it not working, I don't mean it would crash; there was simply no difference in the sound between settings. Everything was the default flat sound.
I just got an update today for both my Gnex and N7 and tested it out and it works!!! I am SOO happy now This has been bothering me for so long, but after the update, I put a live album on that is easy to tell and there were NO GAPS!!
I'm just mildly happy. It does work for MP3 and Vorbis files, but not for AAC which I happen to use for my audio collection. Haven't tested any other formats so far.
Definitely a step in the right direction though.
MoosDiagramm said:
I'm just mildly happy. It does work for MP3 and Vorbis files, but not for AAC which I happen to use for my audio collection. Haven't tested any other formats so far.
Definitely a step in the right direction though.
Click to expand...
Click to collapse
Well, I upload my music to google music, and all higher quality music just gets converted to the highest rate MP3 anyway. But that is good to know, thanks.
Listening to it now, love it.
#Galaxy Nexus HSPA+
I think this was done in time to appease people who buy the Nexus 4 and need a solution for music that they can't put on their phone due to the low storage space.
CADude said:
I think this was done in time to appease people who buy the Nexus 4 and need a solution for music that they can't put on their phone due to the low storage space.
Click to expand...
Click to collapse
And gapless playback helps this how?
rand4ll said:
And gapless playback helps this how?
Click to expand...
Click to collapse
People with a ton of music on their computer, especially live albums, tend to love things like gapless playback. If they can't play a lot of music on their phone locally, as is the case on the Nexus 4 with its limited storage which is also needed for apps, photos, video, etc, they will buy another phone or a dedicated mp3 player. However, now that Google music has gapless playback just in time for the sale of the Nexus 4, more people will warm up to the idea of playing their music over the cloud with a Nexus 4 and they will buy it.
This isn't related to cloud storage. Gapless playbck didn't work AT ALL in the Android music app until now, even for files stored on the device.
I've tested a different AAC encoder and the files it produced do play gaplessly.
Apparently, the gapless information stored by Nero AAC (current version 1.5.4.0) isn't supported by the Android music app. It does work an any other device/software player with gapless playback support I tried, so the problem is probably on Google's end. It even works on Apple devices.
Files produced by the Quicktime AAC encoder work fine.
Does it have to be in an album or what? And is the gap less trigger stored in the file itself?
There are some tracks - not live albums - of various artists that have gap less tracks (Green Day's Holiday and Boulevard Of Broken Dreams is an example, Royksopp's Melody A.M. album is another)... So how does it great those tracks in that case? Gap less, or standard?
Cheers. And sent from my mini tractor
You're confusing gapless with crossfade. Crossfade plays the second track before the first ends, merging them into one. Gapless just makes sure that there is no additional gap between the files, the second track is played exactly when the first ends.
As you can see, there is no reason to disable gapless for specific situations. It is never harmful.
I didn't mean cross fade; I know exactly what gapless playback is all I was curious to find out was are there certain rules where gapless playback kicks in, or does it apply on all tracks by default.
(In short - how the app knows when to remove gaps and when to treat it like normal files)
Because it was said that encoding it in AAC using Nero doesn't help, but QuickTime encoding works... So... Kinda confusing me.
sent from my mini tractor
aeoveu said:
I didn't mean cross fade; I know exactly what gapless playback is all I was curious to find out was are there certain rules where gapless playback kicks in, or does it apply on all tracks by default.
(In short - how the app knows when to remove gaps and when to treat it like normal files)
Because it was said that encoding it in AAC using Nero doesn't help, but QuickTime encoding works... So... Kinda confusing me.
sent from my mini tractor
Click to expand...
Click to collapse
Gapless playback under Android doesn't remove any data from the files or depend on any metadata scheme. It just plays the tracks back-to-back so that any silence between tracks is due to that silence being encoded in the files themselves.
The underlying mechanism for gapless playback was added to the Android SDK for Jellybean/4.1. I added it my music app a couple months ago. I was surprised that Google didn't add this into their player at the same time that Jellybean was released.
Oh... So there's no gap or delay when playing the files (or switching from one file to another), right?
I thought it involved using a buffer and cutting to the next file and whatnot.
So its all normal. Thanks.
sent from my mini tractor
Hmm some things are gapless others aren't. Really annoying.
Sent from my Galaxy Nexus using xda premium
aeoveu said:
I didn't mean cross fade; I know exactly what gapless playback is all I was curious to find out was are there certain rules where gapless playback kicks in, or does it apply on all tracks by default.
(In short - how the app knows when to remove gaps and when to treat it like normal files)
Because it was said that encoding it in AAC using Nero doesn't help, but QuickTime encoding works... So... Kinda confusing me.
sent from my mini tractor
Click to expand...
Click to collapse
Ah, now I understand what you mean.
Lossy audio compression (like MP3, AAC, whatever...) adds a bit of silence at the end and beginning of each track. It's part of how lossy audio codecs work.
In order to remove this silence during playback, modern encoding tools write some additional data to the compressed audio file that says "remove x milliseconds at the beginning and y milliseconds at the end" to restore the tracks original length. Players need to look for such data and skip the additional parts accordingly.
If you take an album that has silence at the end of tracks on the CD and convert it to MP3/AAC/whatever, it will add some more silence to it. A player that supports gaplesss playback will remove this additional silence, but keep the original silence that was on the CD.
AFAIK, there is no official standard on how to write this gapless information to the compressed audio file, so different codecs do it in a different way and developers of audio players must take a look at files produced by popular codecs to understand how each codec handles it and implement support for it.
Android 4.2 along with the latest version of the music app supports the format used by Lame MP3, Vorbis and Quicktime AAC (and probably others, these are just the ones I tested). AAC files produced by Nero AAC, which do have gapless data and work fine on other players, are not supported at the moment.
Ahhh so that's how it works. I've been a long time winamp user and use the silence remover capability in there...which does it on the fly! Never tried it with portable devices...but I think I may give it a shot this time.
Cheers!
sent from my mini tractor
I enjoy the cross-fade feature in PowerAmp, would be cool to see that implemented one day too.
Cross fading in those apps are basic i.e. they only work on a constant. Not sure if any of you guys know about this plugin for Winamp called Sqr Advanced Cross fader... it works based on the silence level of the currently paying song, and works wonderfully in most cases.
Then there are times when I end up cross fading songs myself in Winamp
sent from my mini tractor
MoosDiagramm said:
Ah, now I understand what you mean.
Lossy audio compression (like MP3, AAC, whatever...) adds a bit of silence at the end and beginning of each track. It's part of how lossy audio codecs work.
In order to remove this silence during playback, modern encoding tools write some additional data to the compressed audio file that says "remove x milliseconds at the beginning and y milliseconds at the end" to restore the tracks original length. Players need to look for such data and skip the additional parts accordingly.
If you take an album that has silence at the end of tracks on the CD and convert it to MP3/AAC/whatever, it will add some more silence to it. A player that supports gaplesss playback will remove this additional silence, but keep the original silence that was on the CD.
AFAIK, there is no official standard on how to write this gapless information to the compressed audio file, so different codecs do it in a different way and developers of audio players must take a look at files produced by popular codecs to understand how each codec handles it and implement support for it.
Android 4.2 along with the latest version of the music app supports the format used by Lame MP3, Vorbis and Quicktime AAC (and probably others, these are just the ones I tested). AAC files produced by Nero AAC, which do have gapless data and work fine on other players, are not supported at the moment.
Click to expand...
Click to collapse
Very nice explanation, thank you!
So I went ahead and listened to some of my lossy mixes, still .1 second gaps between songs... it hurts wish the player could analyze the spectrum and fix this... guess nobody at google listens to trance
On the plus side, I ran a local mix that was in FLAC, and it was truly gapless! Too bad that it every 30 seconds theres a .5 second pause.....
I remember not having these problems 2004, why do I have them in 2012
- sent from TW galaxy s3 4.1.1
Just use PowerAmp, you'll need to pay a few Euro's, but that player is just great! Gapless playback? Like that is a novelty! PowerAmp had Gapless playback 2 years ago already! Besides that, PowerAmp has a great Equalizer and a big deal of other settings to match it to your liking...
Is anybody aware of a system-wide solution to avoid the upsampling of 44.1KHz / 16-bit music to 48KHz?
With system-wide, I mean a solution that does not rely on certain player apps such as UAPP or Neutron, which we know can do it, but only when playing from inside that app. A solution which works with all (or most) audio sources and apps, modifying the default system behavior of upsampling 44/16 to 48KHz when playing to the Quad DAC.
Personally, I am looking for solutions to work with Tidal offline tracks. Others are looking for solutions to Qobuz, Spotify, Google Play Music or other apps.
Do some of the custom ROMs have fixes for this? Are there policy file or build.prop changes that are proven to fix it?
Googling and searching on XDA finds many references to Android's infamous 48KHz upsampling/re-sampling (SRC) but none that look to be actual, working solutions for our phones. I hope I am wrong and that there is a simple fix which I overlooked.
Background
The LG V series and G series (most models) are appreciated by audiophiles for their excellent ESS Sabre DAC (ES9218P, branded Quad DAC by LG). It can deliver amazing sound quality when paired with good headphones or IEMs (In-Ear-Monitors, earphones). (And no, that doesn't necessarily mean High-Impedance headphones/IEMs, but that's a whole other discussion.)
V30 in particular has gained a rather large following among audiophiles, many of whom congregate on head-fi.org, where you will find a huge V30 thread, a growing V40 thread and a dedicated V30 Music apps, tricks and tips thread.
When it comes to HiRes music (anything higher than 48KHz sample rate and anything 24-bit) most music apps play it correctly: Bit-perfect, without any processing or re-sampling, directly to the DAC -- exactly as audiophiles want it. A few apps are known to downsample HiRes music to Android's default sample rate of 48KHz, but those are the exception.
However 44.1KHz / 16-bit music is always routed through Android's Mixer, which upsamples it to 48Khz. This causes artifacts that are audible to good ears, particularly when played on sensitive IEMs. Since 44/16 includes anything CD quality (whether compressed or uncompressed) that means most music in the world gets molested before it reaches the DAC.
For whatever reason, LGs implementation of the ESS DAC throughout the V and G series have suffered from this inability to play 44/16 music without upsampling. It is the one thing that truly hampers their reputation among audiophiles (arguably even more so than the inability to select between gain modes, which is annoying, but not a deal breaker for most).
This can be verified by inspecting the Output Thread of audio_flinger dumps, showing whether an output stream is played through the DIRECT path (not the MIXER path) and with the offloadable flag (sent straight to the DAC for decoding and rendering). Of course it can also be verified by listening for those artifacts.
The last 1.5 years, audiophile V30 users have relied on UAPP or Neutron as music players because they are able to work around this upsampling. They do so by converting 44/16 format music to 44/24 on the fly, adding zero bits to convert 16-bit to 24-bit. Different from the 48KHz upsampling, this is a harmless conversion which doesn't affect audio quality. (Of course it's also much faster, requiring no interpolation.) And once music is in 44/24 format, it is no problem sending it directly to the DAC, as described above.
We recently confirmed that PowerAmp also is able to do this correctly now (which wasn't always the case). But only if you configure it to convert all music to 44/24, which obviously isn’t desirable for HiRes.
UAPP is my personal favorite, as it also supports streaming services Tidal, Qobuz and Google Play Music, in addition to network services and any PCM or DSD file you can throw at it. All of it pristinely bit-perfect. But it cannot support Tidal or Qobuz offline, which means when playing offline you are limited to HiRes music (only a small part of their catalog) unless you can tolerate the 48KHz upsampling of CD quality tracks in the Tidal/Qobuz apps.
Head-Fi titan @csglinux and I have set out looking for a solution to this, along with other interested head-fi members. csglinux has been testing various policy and build.prop edits (so far no cigar), while I have been digging through the ESS driver source code from the kernel (but I am not set up to actually build the kernel).
More background and discussion can be found in csglinux' V30 Music apps, tricks and tips thread on head-fi. I also recently had a brief (and more technical) discussion with @ctheanh about this over in the XDA V40 forum, starting here. Arguably those posts would be more suited here.
We have several ideas, but it is a steep hill to climb, as none of us are Android developers. But before posting pages of what we have already tried, or dozens of audio_flinger dumps from various setups, we wanted to throw the topic out there for input. Again, maybe there is already a solution we have overlooked.
Any input is much appreciated!
TL;DR
I personally recommend UAPP as the best $8 anybody can spend if they care about sound quality on their V30. This is not about avoiding that. But UAPP doesn't cover all scenarios, in particular offline Tidal and Qobuz.
That's why we're looking for a system-wide fix (mod or custom ROM) that avoids the upsampling.
Reserved (more technical background and evidence to come)
TheDannemand said:
Is anybody aware of a system-wide solution to avoid the upsampling of 44.1KHz / 16-bit music to 48KHz?
With system-wide, I mean a solution that does not rely on certain player apps such as UAPP or Neutron, which we know can do it. A solution which works with all (or most) audio sources and apps, changing the default behavior of upsampling 44/16 to 48KHz (when playing to the Quad DAC).
Personally, I am looking for solutions to work with Tidal offline tracks. Others are looking for solutions to Qobuz, Spotify, Google Play Music or other apps.
Do some of the custom ROMs have fixes for this? Are there policy file or build.prop changes that are proven to fix it?
Googling and searching on XDA finds many references to Android's infamous 48KHz upsampling/re-sampling (SRC) but none that look to be actual, working solutions for our phones. I hope I am wrong and that there is a simple fix which I overlooked.
Background
The LG V series and G series (most models) are appreciated by audiophiles for their excellent ESS Sabre DAC (ES9218P, branded Quad DAC by LG). It can deliver amazing sound quality when paired with good headphones or IEMs (In-Ear-Monitors, earphones). (And no, that doesn't necessarily mean High-Impedance headphones/IEMs, but that's a whole other discussion.)
V30 in particular has gained a rather large following among audiophiles, many of whom congregate on head-fi.org, where you will find a huge V30 thread, a growing V40 thread and a dedicated V30 Music apps, tricks and tips thread.
When it comes to HiRes music (anything higher than 48KHz sample rate and anything 24-bit) most music apps play it correctly: Bit-perfect, without any processing or re-sampling, directly to the DAC -- exactly as audiophiles want it. A few apps are known to downsample HiRes music to Android's default sample rate of 48KHz, but those are the exception.
However 44.1KHz / 16-bit music is always routed through Android's Mixer, which upsamples it to 48Khz. This causes artifacts that are audible to good ears, particularly when played on sensitive IEMs. Since 44/16 includes anything CD quality (whether compressed or uncompressed) that means most music in the world gets molested before it reaches the DAC.
For whatever reason, LGs implementation of the ESS DAC throughout the V and G series have suffered from this inability to play 44/16 music without upsampling. It is the one thing that truly hampers their reputation among audiophiles (arguably even more so than the inability to select between gain modes, which is annoying, but not a deal breaker for most).
This can be verified by inspecting the Output Thread of audio_flinger dumps, showing whether an output stream is played through the DIRECT path (not the MIXER path) and with the offloadable flag (sent straight to the DAC for decoding and rendering). Of course it can also be verified by listening for those artifacts.
The last 1.5 years, audiophile V30 users have relied on UAPP or Neutron as music players because they are able to work around this upsampling. They do so by converting 44/16 format music to 44/24 on the fly, adding zero bits to convert 16-bit to 24-bit. Different from the 48KHz upsampling, this is a harmless conversion which doesn't affect audio quality. (Of course it's also much faster, requiring no interpolation.) And once music is in 44/24 format, it is no problem sending it directly to the DAC, as described above.
We recently confirmed that PowerAmp also is able to do this correctly now (which wasn't always the case). But only if you configure it to convert all music to 44/24, which obviously isn’t desirable for HiRes.
UAPP is my personal favorite, as it also supports streaming services Tidal, Qobuz and Google Play Music, in addition to network services and any HiRes PCM or DSD file you can throw at it. All of it pristinely bit-perfect. But it cannot support Tidal or Qobuz offline, which means when playing offline you are limited to HiRes music (only a small part of their catalog) unless you can tolerate the 48KHz upsampling of CD quality tracks in the Tidal/Qobuz apps.
Head-Fi titan @csglinux and I have set out looking for a solution to this, along with other interested head-fi members. csglinux has been testing various policy and build.prop edits (so far no cigar), while I have been digging through the ESS driver source code from the kernel (but I am not set up to actually build the kernel).
More background and discussion can be found in csglinux' V30 Music apps, tricks and tips thread on head-fi. I also recently had a brief (and more technical) discussion with @ctheanh about this over in the XDA V40 forum, starting here. Arguably those posts would be more suited here.
We have several ideas, but it is a steep hill to climb, as none of us are Android developers. But before posting pages of what we have already tried, or dozens of audio_flinger dumps from various setups, we wanted to throw the topic out there for input. Again, maybe there is already a solution we have overlooked.
Any input is much appreciated!
Click to expand...
Click to collapse
Erm i suggest bit perfect mode on USB audio player pro
Mrxyzl said:
Erm i suggest bit perfect mode on USB audio player pro
Click to expand...
Click to collapse
Thank you. Again, I already use that, and have for the last 1.5 years. But UAPP doesn't cover all scenarios, in particular offline Tidal and Qobuz, nor Spotify and other popular streaming services.
That's why I'm asking if anybody knows of a system-wide fix (mod or custom ROM) that avoids the upsampling.
I seem to recall that you did some work into this in a custom ROM, right?
Edit: It's a long opening post, so maybe I should state this briefly:
1) This is about a system-wide fix to avoid the Mixer and upsampling of 44/16 audio when playing through the Quad DAC.
2) This is not about avoiding UAPP or Neutron. I personally recommend UAPP as the best $8 anybody can spend if they care about sound quality on the V30.
So my settings sucks?
TheDannemand said:
snip.
Click to expand...
Click to collapse
Sent from my LG-H932 using XDA Labs
BROKEN1981 said:
So my settings sucks?
Click to expand...
Click to collapse
Well, yes and no
Personally I wouldn't do it. I would set PowerAmp to output at 44.1KHz and 24-bit, which should avoid any re-sampling and just convert to 24-bit. Make sure you disable Dither (somewhere else in those Settings) so that it just adds zero bits in that 16-to-24-bit conversion. That way your 44/16 music should be sent unchanged to the DAC in 44/24 format.
But then you need to change your settings when you play HiRes music in PowerAmp, since otherwise it will be downsampled to 44.1KHz.
That said, as a fixed setting you are much better off letting PowerAmp upsample to 352Khz than letting the Android Mixer upsample to 48Khz. 44-to-352KHz is a harmonic upsampling (8x44=352) so it can be done perfectly, whereas 44-to-48KHz is just ugly. And when playing HiRes 88KHz and 176KHz music, it will be harmonically upsampled to 352Khz as well.
Ideally, PowerAmp would have had a way to only convert 44/16 to 44/24 and pass everything else through untouched. That's what UAPP does when it detects that it's running on a V30.
Another benefit of UAPP is it understands MQA and knows how to set a flag to enable the V30's hardware unfolding and rendering. (Note that you don't have to buy UAPP's optional MQA decoder for this.) With PowerAmp, the MQA will either be lost (if you re-sample or process the stream in any way) or ignored because the flag to enable MQA decoding won't be set.
Disclaimer: I don't use PowerAmp myself, so I cannot say if it it does something other than what those settings imply. I am completely open to corrections if any of my assumptions about it are wrong.
The DAC itself will upsample internally as part of so-called "noise shaping" to minimize the rounding errors that occur when trying to fit a digital sample into an analog sine wave. But we want to leave this process just to the DAC, and not add another step of upsampling (or any other digital modification) before sending music to the DAC. And particularly not an ugly upsampling like 44-to-48KHz, which simply cannot be done in a pretty way.
TheDannemand said:
snip.
Click to expand...
Click to collapse
Thanks for that detailed answer man, I appreciate it!
I tried neutron, hated the UI. I'll try out USB audio pro. Looks like it's a bit updated to MD. It's not as nice looking as PA, but that's ok lol.
Sent from my LG-H932 using XDA Labs
BROKEN1981 said:
Thanks for that detailed answer man, I appreciate it!
I tried neutron, hated the UI. I'll try out USB audio pro. Looks like it's a bit updated to MD. It's not as nice looking as PA, but that's ok lol.
Click to expand...
Click to collapse
I am the same: I tried Neutron and absolutely could not stand that UI. But I know some who love it. And they deserve credit for being first to crack the 48KHz upsampling on V30 (as I understand).
With UAPP I was instantly comfortable with its UI, features, and of course the sound quality -- the latter being as good as it can get, since it plays everything bit perfect and even supports MQA. If it could handle Tidal offline, I wouldn't even need a solution to bypass the Android Mixer, as that is the only big thing missing for me. Again, with others it's Qobuz offline or Spotify or some other music service.
TheDannemand said:
I am the same: I tried Neutron and absolutely could not stand that UI. But I know some who love it. And they deserve credit for being first to crack the 48KHz upsampling on V30 (as I understand).
With UAPP I was instantly comfortable with its UI, features, and of course the sound quality -- the latter being as good as it can get, since it plays everything bit perfect and even supports MQA. If it could handle Tidal offline, I wouldn't even need a solution to bypass the Android Mixer, as that is the only big thing missing for me. Again, with others it's Qobuz offline or Spotify or some other music service.
Click to expand...
Click to collapse
Trying it out, I like it but have a few issues that are getting on my nerves.
1) no cross fade into the new track.
2) It separates my albums for whatever reason. PowerAmp will not do this. My tags are the way I want them. I did my own edits.
Edit, the EM album that's solo is also in the EM album collection. Just chose to list it 2 times.
Sent from my LG-H932 using XDA Labs
BROKEN1981 said:
Trying it out, I like it but have a few issues that are getting on my nerves.
1) no cross fade into the new track.
2) It separates my albums for whatever reason. PowerAmp will not do this. My tags are the way I want them. I did my own edits.
Edit, the EM album that's solo is also in the EM album collection. Just chose to list it 2 times.
Click to expand...
Click to collapse
I apologize for the tardy response. Swamped these days.
1) Ahh. I don't use cross fading myself, but I see what you mean, it's a valid request.
2) My entire music collection is carefully curated as well (manually edited tags) and I've never seen any problems with UAPP handling albums correctly. You could try Clearing the database and Scan again. But you probably already did...
I suggest you write to the Dev about both issues. You can either email [email protected] or post in their support thread on Head-Fi. I've found them very response to user requests and issues.
BTW, also check this recent Head-Fi post by @csglinux: It appears LG really screwed up the Quad DAC in Pie, so it now re-samples even some HiRes files (which all play perfectly on Oreo from most apps). It also sabotages UAPP in the process.
I don't know why LG is so hellbent on messing up music playback, when they spend good money putting a high-end audiophile grade DAC in their phones
TheDannemand said:
I apologize for the tardy response. Swamped these days.
1) Ahh. I don't use cross fading myself, but I see what you mean, it's a valid request.
2) My entire music collection is carefully curated as well (manually edited tags) and I've never seen any problems with UAPP handling albums correctly. You could try Clearing the database and Scan again. But you probably already did...
I suggest you write to the Dev about both issues. You can either email [email protected] or post in their support thread on Head-Fi. I've found them very response to user requests and issues.
BTW, also check this recent Head-Fi post by @csglinux: It appears LG really screwed up the Quad DAC in Pie, so it now re-samples even some HiRes files (which all play perfectly on Oreo from most apps). It also sabotages UAPP in the process.
I don't know why LG is so hellbent on messing up music playback, when they spend good money putting a high-end audiophile grade DAC in their phones
Click to expand...
Click to collapse
I did send an email to the Dev. We tested a few things and then I guess he quickly made a newer version of the app and gave me a download link. It's a beta but he seen what the issue was and fixed it. Total time with emails and download link took about 30 minutes. I never expected the guy to reply so fast that a few minutes would go by with me not seeing his new email.
Awesome support! Just wish the UI would be gesture-based. Having to back out of a current playing album is a pain in the butt. PowerAmp definitely did this correctly.
Sent from my LG-H932 using XDA Labs
I've edited three config files from US998 30b which I attached to this post. With this mod I always get 24bit and 44.1kHz output through Mixer. Now I can't hear the noise, but I'm curious if anyone can so please test it after making a system backup in TWRP. The mod contains the files without any script.
@TheDannemand and everyone who is interested.
I was trying to get direct output, but it's maybe impossible. I tried to have direct output instead of deep_buffer, but only UAPP wanted to use direct and other apps "moved" to primary output. Also the primary output does not tolerate any messing cause it's a p...y. So I'm not able to do what even @csglinux couldn't.
Solutions:
1) It's not possible due to most apps just don't support direct output even if we convert it to 24bit on the fly. Apps can use primary output instead of deep buffer but direct is like an isolated thing lol. I did enough tests with policy files to get bored of it.
2) Maybe I can try replacing or somewhat in mixer_paths_tavil.xml in vendor/etc to get the direct output. (?)
3) We need to do hard modifications in source codes and codec driver. Or just accept this Mixer and use it with some mod. So sad.
DooMLoRD77 said:
I've edited three config files from US998 30b which I attached to this post. With this mod I always get 24bit and 44.1kHz output through Mixer. Now I can't hear the noise, but I'm curious if anyone can so please test it after making a system backup in TWRP. The mod contains the files without any script.
@TheDannemand and everyone who is interested.
I was trying to get direct output, but it's maybe impossible. I tried to have direct output instead of deep_buffer, but only UAPP wanted to use direct and other apps "moved" to primary output. Also the primary output does not tolerate any messing cause it's a p...y. So I'm not able to do what even @csglinux couldn't.
Solutions:
1) It's not possible due to most apps just don't support direct output even if we convert it to 24bit on the fly. Apps can use primary output instead of deep buffer but direct is like an isolated thing lol. I did enough tests with policy files to get bored of it.
2) Maybe I can try replacing or somewhat in mixer_paths_tavil.xml in vendor/etc to get the direct output. (?)
3) We need to do hard modifications in source codes and codec driver. Or just accept this Mixer and use it with some mod. So sad.
Click to expand...
Click to collapse
Huge thanks to you, DoomLoRD77, for your efforts on this. Major props also to TheDanemmand, who has been relentlessly pursuing this little problem with LG's phones.
So, I took your config files, and voila, they work as promised, at least according to audio_flinger:
Output thread 0xeb1034c0, name AudioOut_15, tid 1804, type 0 (MIXER):
I/O handle: 21
Standby: no
Sample rate: 44100 Hz
HAL frame count: 1792
HAL format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
HAL buffer size: 10752 bytes
Channel count: 2
Channel mask: 0x00000003 (front-left, front-right)
Processing format: 0x6 (AUDIO_FORMAT_PCM_24_BIT_PACKED)
That's the good news. The bad news... for reasons I don't completely understand, all the exact same re-sampling artifacts are there, just as audible as before. (I think most of us are using the same test track here - Speak to Me, from The Dark Side Of The Moon.) Either audio_flinger is misreporting, or being fooled, or there's something else going on here that I don't understand.
I'd mentioned to some of the other headfi folks that Amazon's new lossless streaming service doesn't display these digital artifacts (it still doesn't sound quite as good as Tidal to my ears, but the SQ gap is much closer). Amazon re-samples everything on Android to 48 kHz using 32-bit float. I would have thought doing no resampling at all and shifting to 24-bit for the digital volume control would be enough, but apparently not. My best guess is those extra zeros we're packing into those remaining 8 bits aren't actually being used by the digital volume control.
DooMLoRD77 said:
I've edited three config files from US998 30b which I attached to this post. With this mod I always get 24bit and 44.1kHz output through Mixer. Now I can't hear the noise, but I'm curious if anyone can so please test it after making a system backup in TWRP. The mod contains the files without any script.
@TheDannemand and everyone who is interested.
I was trying to get direct output, but it's maybe impossible. I tried to have direct output instead of deep_buffer, but only UAPP wanted to use direct and other apps "moved" to primary output. Also the primary output does not tolerate any messing cause it's a p...y. So I'm not able to do what even @csglinux couldn't.
Solutions:
1) It's not possible due to most apps just don't support direct output even if we convert it to 24bit on the fly. Apps can use primary output instead of deep buffer but direct is like an isolated thing lol. I did enough tests with policy files to get bored of it.
2) Maybe I can try replacing or somewhat in mixer_paths_tavil.xml in vendor/etc to get the direct output. (?)
3) We need to do hard modifications in source codes and codec driver. Or just accept this Mixer and use it with some mod. So sad.
Click to expand...
Click to collapse
Thanks a ton for your efforts here and for sharing these modified files!
Unfortunately I won't be able to test them myself, both because my V30 is still on Oreo (and I have no plans to update it yet) and because I am currently unrooted, waiting for LG to approve a warranty claim (at which they're dragging their feet).
I think with your work and @csglinux' feedback we have established that there is something going on beyond just the re-sampling of the Mixer. The fact your changes eliminated the noise you were hearing, but NOT the artifacts csglinux has reported, would indicate that maybe we have two different problems going on. And so far only playing DIRECT (bypassing the Mixer) solves both problems.
Re your point (3) I did actually spent quite a bit of time studying the source code for the ESS codec driver for the various LG models (es9218p.c and es9218p.h in the kernel source code). Interestingly, 44100 is NOT one of the sample rates listed in there as being supported. The rates and formats listed below are references in the snd_soc_dai_driver structure towards the end of the driver, with which the codec driver declares its capabilities. I've been puzzled how DIRECT play of 24/44 is even possible given this fact. But audio_flinger claims to do it -- and it sounds great when it does.
Code:
#define ES9218_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | \
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | \
SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | \
SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000 | SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_384000 ) //|SNDRV_PCM_RATE_352800 TODO for dop128
#define ES9218_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE | \
SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S20_3BE | \
SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_BE | \
SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE)
I am completely swamped with work at the moment, so I have no time at all to play (neither play music NOR tinker with my phone). I promise I will contribute more actively again once I have more time AND once I have a phone I can root.
Once again thanks a lot for your contribution! :good::good::good:
csglinux said:
*
Click to expand...
Click to collapse
You're welcome. Yes, I played the Speak To Me song at the volume level of 10/75 from about 0:14 to 0:40. It can be possible that it's just misreporting, but it's weird that you hear the same artifacts and I hear just very very little noise instead of big. So we hear 2 different thing separately. From my experience it seems that the extra 8 bits are used for volume control. Or 24bit is more accurate for interpolating as you wrote something on head-fi. I will see more results later with GR09.
Also, thank you for the efforts and for this test!
I can mention an app for 16/44.1 lossless it's called D**zl#ad*r (replace "*" with "e" and "#" with "o"). I know it's not great to get files for free but I can play it offline through direct. It's for Android too and there are some funny facts how it can work.
TheDannemand said:
*
Click to expand...
Click to collapse
You're welcome, too. Something is really weird about the Mixer as there is 2 kind of issue, indeed. I will just probably give up this soon for now, but I'm thankful for the support as I could achieve a small improvement.
If it's really a declaration as you said and I looked a bit into it then it's also weird how it can support 44.1 without resampling.
To replace Tidal offline there is an app above but it requires re-downloading everything. I solved it by automation. Life is just short to be always a good boy:silly:
Looks like deep-buffer is used for high latency low power output and this is ok for music. As I'm new I can't post proper link here, but googling "android audio deep buffer" gives answer.
To enable deep-buffer for music we need:
adb shell setprop audio.deep_buffer.media 1
So it looks like without it android is still using 48kHz from primary output and still resamples internally or I'm missing something. I own V30 but I'm not rooted yet so can't test this.
In the meantime I've looked into policy and there's additional MQA policy available. Maybe UAPP is using it to play MQA on LG?
I've also tried to use 16bit direct output from UAPP and there's noise on all recordings when V30 volume is low and I set my amplifier to almost full. This is unrealistic scenario but easily shows 16bit limitation. @DooMLoRD77, @TheDannemand could you check this UAPP setting if it plays through mixer or directly: MQA enabled and 16 bit hi-res driver audio format. Could tou also check if setting mixer into 32bit float mode works? This setting works for UAPP.
Eneen said:
*
Click to expand...
Click to collapse
You are right that mixer is using 48khz upsampling either through deep buffer or primary output or call it whatever. Deep buffer for music is by default. Where did you found that MQA policy?
I can't help you now as my V30's motherboard is dying and it will take some time to replace it, but I can tell you that modifying the mixer to give 32bit output gives nothing just mute sound and lagging youtube playback maybe because of buffer size or idk.
You can have 32bit with direct, of course. Anyway, what recordings are giving noise? Vinyl? 16 bit does not have limitations like that. I guess you hear the noise generated by AVC in the Quad DAC. It has a high SNR but not enough if you amplify it with don't know what at max volume. I just assume that. I appreciate your interest.
DooMLoRD77 said:
You are right that mixer is using 48khz upsampling either through deep buffer or primary output or call it whatever. Deep buffer for music is by default. Where did you found that MQA policy?
I can't help you now as my V30's motherboard is dying and it will take some time to replace it, but I can tell you that modifying the mixer to give 32bit output gives nothing just mute sound and lagging youtube playback maybe because of buffer size or idk.
You can have 32bit with direct, of course. Anyway, what recordings are giving noise? Vinyl? 16 bit does not have limitations like that. I guess you hear the noise generated by AVC in the Quad DAC. It has a high SNR but not enough if you amplify it with don't know what at max volume. I just assume that. I appreciate your interest.
Click to expand...
Click to collapse
Recordings from Tidal app (except MQAa) and when UAPP is set into 16bit mode inside "HiRes driver audio format" give noise. When I change this option to "Auto" then noise is gone. To hear it I just set sound level to 1/70 (lowest possible) and amplify rest on my amp. I'm not sure it's due to digital volume control or something else, but noise is there and I'm still above my NAD C372 noise level (100dB). How to check output path? I can do it myself but haven't found how...
If music is using deep buffer then your solution is very elegant IHMO and should work. Is youtube also using deep_buffer? Is deep_buffer always used or only when phone is sleeping?
MQA policies are inside /vendor/audio_output_policy.conf: direct_pcm_16_mqa and direct_pcm_24_mqa. As I see /etc/audio_policy.conf is depreciated but looks like /vendor/etc/audio_output_policy.conf is used and there are two different audio_policy_configuration.xml files. Is there documentation for android audio available?
Eneen said:
*
Click to expand...
Click to collapse
I think direct does not support 16bit. It can be DVC or just the not really perfect mixer makes noise or what kind of interpolation error. You should have SDK platform tools to check it. Start inside an adb connection in cmd. Command: "adb shell" or "./adb shell" then "dumpsys media.audio_flinger" and it should read much thing about path and so on.
YouTube uses deep_buffer if it's available. It's used when music is played not only when sleeping. Primary is more like for notifications maybe some games. Sorry, what solution? LoL. 24bit modification?
I will check that policies again, thanks.