My experience with different music players.
Jun 8, 2020 at 8:47 AM Post #61 of 205
I like winyl and ulilith.
 
Jun 13, 2020 at 11:28 PM Post #62 of 205
A comparison of music players on windows, linux, android I have done.

Note: Most of these software are free so you can try and check for yourself. This is only relating to USB dac connected to PC directly and using a general asio/uac2 driver. If you have a network streamer or signal regenerator/reclocker or any other protocol, the inferences may not carry over. Your mileage may vary on protocol support.

For all of the tests/analysis, I have tried my best to make sure there is no additional zero padding, upsampling/oversampling etc is in play within the server system. I almost always used ASIO with proper buffer configurations wherever supported (almost all of them do except strawberry, mediamonkey etc). More on the technical breakdowns at the end of the analysis.
It is too early to conclude the causation of these changes but a look into USB audio protocol (asynch) gives better clue. It works more like UDP than TCP in that it doesn't guarantee a failure when packets go missing or get corrupted during transmission. There is a possibility they could just get concealed, either by any logic/fsm in the usb receiver, or the fact that a delta Sigma dac can behave as a natural packet loss concealer. I have done experiments and I have found that the more constrained and the more buffer underruns the harsher/grainer the sound gets to and extent and past that I get serious crackle noises. So yep I have experienced till there, on a system that would be shown bitperfect by any software analysis inside the computer. The key to this is to be able to probe at the i2s pins of the usb to i2s.
Gear used - surface book 2015, apogee groove, supra usb cable, burson fun, sparkos ss3601 opamps, shure srh1540, OnePlus 3. Few other headphones, dac and amp were also used to ensure coverage on other parameters, and they fit well with the same descriptions.

1. Windows groove player - really low fidelity. You got a pig fat low pass applied on top of the digital stream (no clue why) and very bad in overall implementation. When you scroll and play back instead of playing from start, you lose details (the only player that I've come across that does this).

2. Windows media player - not as terrible as groove but forgettable.

3. Foobar2000 - has lots of plugins and features etc. General "I'm an audio enthusiast" circle tries to push this forward but unfortunately sound isn't the best. Its quite poor to be honest, and even music players in android sound better. Outdated asio and wasapi plugins, measurable distortion and just overall sloppy implementation. Quite softened and smooth but in a very artificial and dry manner. A far cry from the best kind of fidelity you can get from windows. Nice tool for streaming from internet though, thanks to variable buffer on the input side of the player.

4. Winyl - the first music player software that had decent fidelity on my tries. You can hear the different textures of bass instruments and the detail/depth/resolution is insane. As my friend calls it, it is DAW level audio quality. A bit artificially sharp sounding due to some buffer management issues. Not the smoothest with bad with low res music, you want that, don't look at this. You can hear a sheen of dither noise (i assume, don't quote me) on top of voices in 16bit music as well. Not quite perfect and not ultimate resolution. I had a short trial with certain background task cleaners/audio enhancers and it did show improvements in sustain detail and left right coherency. Don't know how it uses ram but I wish it could flush the full song to ram and play back from there with high system priority. Peers to winyl are xmplay, musicbee and hqplayer both of which sound almost identical at identical settings.

5. Hqplayer - it's as good as winyl in equivalent settings. But it's a lot more feature rich. Lets you try custom upsampling PCM or DSD conversion options and can help get a better stream to your dac than the internal digital filters which can sometimes be low fidelity in the DACs. Also lets you try high precision fir filter convolution for a usable high precision eq.

6. Musicbee - the best competition to winyl. It's from the same audio library so sounds similar for the most part. But winyl has a more robust port configuration setting afaik and has less artefacts on that front. However winyl let's down in its buffer, while musicbee takes lead there. It doesn't have the winyl characteristic harshness once the buffer is set to load full song to RAM. Has almost all features of foobar, but built in and usable from the get go and actually sounds good. For some reason the player volume is at 50% by default which I recommend you to set to 100% and use the dac control panel to control the volume. Software volume control is most often poor on any player software, unless it's super sophisticated with 64bit precision and stuff like those (roon has those options).

7. Jriver - not as good as winyl not as bad as foobar. It sounds a bit compressed and loud in comparison to winyl. Quite clean otherwise. If you loved the geek out you may like this but it doesn't sound "correct" with usb dacs. People have had better luck with jriver sending data to network streamers.
8. Albumplayer - It was promising as it was coded from scratch and gave me options to prioritise it. I set it up at the best possible settings - asio, full song to ram, high system priority. It sounds a bit softened but not bad like foobar - this thing has depth. I don't know if this is what people call as analog. It sounds very different from winyl but very hard to compare which is better. The general opinion from my side is albumplayer is a little too midrangey and slightly muffled for the most part but with a bass punch somewhere (could just be distortion). On one song it just sounds softened and dull but on another it carries a lot of bass weight. Midrange detail is typically more visible on albumplayer but winyl produces the same with a tiny bit more edge. Most of the time albumplayer is softer but sometimes it can sound exceedingly bright or hard hitting. One thing i like though is that it can bring back that tactile feel in bass in certain songs which i mostly lost with winyl. It sounds weightier and more natural which i like but i just can't get over the resolution winyl offers typically. I wouldn't be doing further testing since I have heard players that outperform both winyl and album player by a significant margin. If the formers are a bit contrasty, edgy and in my face, album player is a bit soft and nice to listen with a different presentation of detail. Idk if it's distortion or just another way to present it or even better accuracy.

9. Aimp: I wanted it to sound identical. But unfortunately it didnt. Couldn't find anything bad but the winyl/musicbee kind of players have a sense of texture and aimp has a different texture and imo aimp texture is smoothed off and wrong. Lacks depth. Can't be sure if it is volume or the volume control or anything of that sort. Not a particularly bad player but I'm not particularly impressed.

10. Mediamonkey: didn't have an asio output so used wasapi. Didn't like it. Sounded like a low pass filter or bass boost was applied. The liveliness was missing. Can't say i noticed a difference between wasapi and asio in other players but will return to testing media monkey in asio if it improves.

11. Audirvana. Not bad. I like it. But winyl still better texture retrieval/detail. Winyl shows the texture and depth noticeably better. Audirvana is a little softer. Bass is even less tactile than winyl on audirvana. (Yep I did try changing settings on audirvana). It was created by an UCLA graduate I think, can't be bad (and it's not), but then again winyl is super lightweight with no bloat, runs on a rock solid audio library, and has multiple other checks to ensure better detail. I'd rate audirvana above jriver (and of course we are well beyond foobar at this point). Didn't sound like it had any compression or anything of that sort. Just not fast enough/transparent enough.

12. Roon: to be honest the settings I described above is sub optimal for roon. They recommend you to use your pc as a roon source and another endpoint device like raspberry Pi or ethernet streamer. I can see why. With the same pc acting as both source and endpoint fidelity suffers significantly. It sounds as if I input clipped my amplifier. Doesn't have as muddy artefacts as foobar but I don't like it since it doesn't sound transparent and has a clearly audible aberration. However if your system uses ethernet receiver or roon supported endpoints, I assume it'll be very good owing to the custom roon protocol and compliance control.

13. **Hysolid**: My first ever OMG moment. The difference from foobar to winyl was a little bit more than the difference between DACs I tried. The difference from winyl to hysolid was more than the difference between multiple tiers of headphones. If you had said that a year ago, I'd have laughed at you, but now that I have heard, I cannot unhear this. If I have to describe it's sound concisely, I'd say saturated and detailed. It is not the most transparent and has an obvious character that is fairly borderline warmish but without the Treble suffering anything. In fact, Treble texture was the biggest improvement from winyl - finally all the hf noise is gone but without being gooey unresolving mud like foobar. Started to hear a million shades of cymbals and digital hi hat synths (listening to mausam and escape right now). And everything else follows, vocal textures (whispers and so forth), bass instruments. Inter channel integrity still not perfect (I guess maybe coz due to it being 32 bit) but otherwise Sounds stellar. The difference in decay texture and detail with hysolid. The sound of water drops, the sound of claps, vocal textures. Feels like the first time I upgraded from hd598 to vsonic gr07. However it got a serious catch/dealbreaker. It's buggy. the architecture is in such a way that you need to have a separate control system. Android app didn't work (it broke after android 6 and never got an update I guess) so I had to use it on iOS. Running through asio to my computer.

14. Regarding android. Where do I even begin. What a forcibly gronked system is all I can say. A forced resampler makes every headphone sound like a hd598 <<sigh>>. Just overall low fi and I rather prefer it sending the stream as bluetooth signal and listen than to use stock android stuff. The only instance where I could get decent sound out of android is when using uapp or hiby music (and an external dac coz the internal dacs also mostly suck). I envy lg users coz lg has a reworked kernel and music player that apparently doesn't screw these things too much, apart from actually having a usable sound chip.

15. After all these, I tried my attempt at linux distros. First tried ubuntu without setting up alsa, just pulse audio. As expected disappointment. Then I tried ap-linux, a fork of arch Linux with audio optimizations and kernels built in. The installation process was a pain and unfortunately it didn't support my network card. I couldn't do further updates and sound quality wasn't anything to write home about in that config. I thought I had hit a dead end and had to resort to battling windows.. until.....

16. WTFPLAY: this sounds amaaaaazing. All sorts of good adjectives - transparency, detail, effortlessness. There is no character I can attribute to this other than those of the recordings themselves, and maybe minor effect changes by changing buffer settings or some BIOS settings (and apparently changing RAM changes sound, since different RAM will have different memory refresh properties and response times). It is a live cd, so no need to install. Just burn to pendrive, boot from the drive. It'll load to RAM and run from the RAM. When you play a song it'll be decoded and loaded to RAM and played from there, instead of buffers from storage drives. It is super focused in audio tasks and has very minimal daemons. Doesn't have any instruction cycle stealing process - no network, no mouse/mouse polling, not even a battery probe. This is what makes it great since it can respond back to the data request from the dac in a timely fashion, and also there is no sudden noise spike in USB bus owing to noise from CPU interrupts/power state shifts. It sounds great and has been my reference for the last 4 months. Haven't had the chance to compare to ethernet streamers, but within system software, this is leagues above everything available on windows, with hysolid being the only thing that can even be compared, and even that is not as transparent. Highly recommend this player.

Continuing some technical analysis from top.

ASIO communicates both the bit depth and sample rate along with volume control info in the control frames, as per my understanding. It for sure communicates sample rate that way and I can see it even in my DAC control panel. If you send something with 32khz sample rate via asio to my dac it will refuse to pick it up and throw an error. In other operating system like mac os, we have other data structure for sending the data,including left justified 8-24 inputs.

I did further investigation on this topic earlier. Hqplayer lets you choose the bit depth it sends to the dac. Winyl sounds closer to hqplayer configured to have same bit depth as the music file. Which means winyl is not doing any unnecessary padding. I have actually found padding to reduce detail in my system, making it artificially soft. I can for sure confirm that padding actually reduces detail, in my system and not improve. Custom upsampling using HQplayer is a completely different story altogether, I have tried a few and have been able to see how they "change" the sound but on a pure performance level it was on par with winyl, and worse when additional functionality was being used. Also my system was not up to snuff to try the high precision improvements. There's not much way zero padding can bring in such an amount of difference as heard through the players. Also if all of them do the same thing they should all sound the same which they clearly don't.

Most of these improvements can be correlated to how the softwares handle the music playback at the instruction level. Which means libraries used, the stability of plugins used, memory consumption, buffering etc. I have made some investigations on what makes winyl superior to peers in bass audio library and also its one pitfall compared to its peers. It does perform optimizations with regards to usb root control as well. I was trying to see if I can make it play full song from RAM like I can do on musicbee, but after I tried hysolid, i've stopped that approach. I am 100% certain the way a library, the instruction set and features are implemented make an insane level of difference. Changing buffer and load to ram changes things. So many small changes changes things. The way their instructions are structured and the way they behave with other io has a correlatable effect on sound. In a normal music player, you need handles for i/o, trying to see where the user wants to scrub to which means your instructions will have structure in a way it keeps asking for memory pointers. The better ones do a more streamlined getting it closer to just store in a register and keep shifting it, and using it. And as I mentioned above, in my device stack the differences are bigger than different tiers of headphones.

Now coming to the topic of foobar sounding objectively worse. This player showed a measurable worse performance across multiple independent tests. (https://imgur.com/gallery/50P4hRJ). All the above topics, we have few players like hysolid sounding objectively better on all fronts, and other players with custom libraries like winyl,hqplayer,musicbee, etc are give an take between them but all sound better than foobar under any parameter. An accurate player will have more depth and separation for almost any song, and that foobar sorely lacks. There is some processing/added distortion happening without a hint of doubt and that is the reason for lack of detail, not accuracy. The player sounds different across different versions as well as per a report from my friend. The issue has also been reliably measured with different input tones. The aberration is closer to how a limiter/compressor would perform, and guess what, windows volume control has built in limiter and compressors. These were measured in ASIO, in WASAPI and still showed the same aberration both audibly and measurably. What does this tell? It just tells that foobar is broken,and has some processing happening even though it claims not to with the plugins. This is one huge flaw which makes it sound worse than even normal players like aimp, and apart from this, memory handling and other issues are also abundant, which as I said winyl and other BASS library based players do better and completely smack foobar out. I have tried my best to "fix" foobar. Have tried 2-3 different asio/wasapi plugins and all had different issues. Case's asio plugin literally distorted annoyingly at 100%. I'm not moving away from my conclusion at all. I've tried revisiting foobar multiple times (whenever I change something in my chain) in an attempt to see and have always been disappointed. Winyl sounds closer to professional DAWs.

Tl:dr: WTFPLAY >> Hysolid >>>> Winyl = Musicbee = Hqplayer = xmplay > Audirvana >> jriver = roon > Aimp > uapp on android > foobar2000 > any bundled music player with windows or non asio supported players.

Few other recommend players like PlayPCMwin, jetaudio and uLilith I'll try after a while. A bit held up with tasks at the moment.
 
Last edited:
Jun 14, 2020 at 12:46 AM Post #63 of 205
Sadly could not try WTFPLAY and Hysolid because I can't install. Installation is super ridiculous for Hysolid I had to register, then plug my phone to my computer, then create an itune account but right at the "choose a security question" it blocks me and I can't even go back or leave the page. So frustrating. I hate when I can't just download the program and install it. But I tried Winyl and I thought it was good, but I prefer JetAudio and older versions of Winamp. You can get them at oldversion.com
 
Jun 14, 2020 at 5:47 AM Post #64 of 205
Now coming to the topic of foobar sounding objectively worse. This player showed a measurable worse performance across multiple independent tests. (https://imgur.com/gallery/50P4hRJ).

Winyl playing a -6dB, 1kHz square wave saved at 48kHz. Computer set at 48kHz for playback. Digital measurement(sans DAC).
winy.jpg




Foobar playing same file, same settings.(Don't strain your eyes, they basically superimpose. The white line, spectrum, oscillates between 2 positions so where it is just depends on when I press to stop the reading).
foobar.jpg









Same stuff with 96kHz for both file and windows settings, plus full scale signal this time for the lolz. Does it matter which is which?
winyl96kHzFS.jpg

foob96khzFS.jpg


My guess is that those pictures you link might actually be showing a 1kHz square wave signal but with the frequencies zoomed in on 1kHz? with all the detailed explanation you keep providing, it might just as well be a reading from plugging in a banana.
I happen to end up with the same stuff on both players. I'm degrading audio equally well with Winyl apparently(which isn't all that strange given that I could get a bit perfect result last time I tried to compare a sine sweep played in both players). so I'd say that you(or whoever did those measurements) are obviously doing something more. Be it resampling or whatever else you should have no business doing when claiming to show a global issue with foobar.

If I'm right and you're effectively raging about some weirdo resampling settings that have no reason to be used in the first place(why else use square wave?), here are 2 very obvious solutions:
-1 Properly set the computer so it outputs the sample rate of the file.
- 2 Or, add absolutely any resampler you like, even expensive ones, as a DSP to use on the fly inside foobar.
I typically use SOX in foobar to resample anything that's not at my native output. I think most foobar users know about SOX and maybe use it if they happen to need it. I would argue that foobar is in that respect superior to Winyl that doesn't seem to let me pick my resampler and settings.

As far as I can tell Winyl is absolutely nothing special(neither good or bad). The biggest impact it really seems to have on sound is the overly long fade in and fade out when we start and stop a track. I wonder why you don't count that as objective degradation of sound. That would be silly but true for once.


To readers of this topic. if the one piece of alleged evidence @manueljenkin has to offer is either BS serving his narrative, or so misinterpreted that the result is pretty much the same, ask yourself what else might be made of half baked rationals and poorly controlled impressions in this thread?
 
Jun 14, 2020 at 8:56 PM Post #65 of 205
Sadly could not try WTFPLAY and Hysolid because I can't install. Installation is super ridiculous for Hysolid I had to register, then plug my phone to my computer, then create an itune account but right at the "choose a security question" it blocks me and I can't even go back or leave the page. So frustrating. I hate when I can't just download the program and install it. But I tried Winyl and I thought it was good, but I prefer JetAudio and older versions of Winamp. You can get them at oldversion.com

Yeah hysolid is quite buggy and I mentioned that too. Regarding wtfplay, it is a full OS in itself. No need to install anything. Just burn it to a pen drive as mentioned in its userguide using win32disk imager and boot from the pendrive. You'll get into the OS, and you can play your music via commandline (cmd line is very easy to use). Once done, you can reboot and be back to your original OS.
 
Jun 14, 2020 at 9:03 PM Post #66 of 205
Winyl playing a -6dB, 1kHz square wave saved at 48kHz. Computer set at 48kHz for playback. Digital measurement(sans DAC).




Foobar playing same file, same settings.(Don't strain your eyes, they basically superimpose. The white line, spectrum, oscillates between 2 positions so where it is just depends on when I press to stop the reading).









Same stuff with 96kHz for both file and windows settings, plus full scale signal this time for the lolz. Does it matter which is which?



My guess is that those pictures you link might actually be showing a 1kHz square wave signal but with the frequencies zoomed in on 1kHz? with all the detailed explanation you keep providing, it might just as well be a reading from plugging in a banana.
I happen to end up with the same stuff on both players. I'm degrading audio equally well with Winyl apparently(which isn't all that strange given that I could get a bit perfect result last time I tried to compare a sine sweep played in both players). so I'd say that you(or whoever did those measurements) are obviously doing something more. Be it resampling or whatever else you should have no business doing when claiming to show a global issue with foobar.

If I'm right and you're effectively raging about some weirdo resampling settings that have no reason to be used in the first place(why else use square wave?), here are 2 very obvious solutions:
-1 Properly set the computer so it outputs the sample rate of the file.
- 2 Or, add absolutely any resampler you like, even expensive ones, as a DSP to use on the fly inside foobar.
I typically use SOX in foobar to resample anything that's not at my native output. I think most foobar users know about SOX and maybe use it if they happen to need it. I would argue that foobar is in that respect superior to Winyl that doesn't seem to let me pick my resampler and settings.

As far as I can tell Winyl is absolutely nothing special(neither good or bad). The biggest impact it really seems to have on sound is the overly long fade in and fade out when we start and stop a track. I wonder why you don't count that as objective degradation of sound. That would be silly but true for once.


To readers of this topic. if the one piece of alleged evidence @manueljenkin has to offer is either BS serving his narrative, or so misinterpreted that the result is pretty much the same, ask yourself what else might be made of half baked rationals and poorly controlled impressions in this thread?

So here's the deal. There is more than one person who has set up foobar in wasapi, and asio, and measured in each time, showing a difference similar to the image I posted. And the tests were conducted across multiple different tones, different frequency square waves, sine waves etc and the results being consistently against foobar2k. Not to mention tests were done across different versions (from 1.3 till 1.5).

And there comes Mr. Castle, not showing where he probed, what equipment he used, what OS and what version of software he used, how he probed and his tests showing no difference.

I guess it's evident who has the better coverage, whom to trust and whom not to trust.
 
Last edited:
Jun 15, 2020 at 12:04 AM Post #67 of 205
So here's the deal. There is more than one person who has set up foobar in wasapi, and asio, and measured in each time, showing a difference similar to the image I posted. And the tests were conducted across multiple different tones, different frequency square waves, sine waves etc and the results being consistently against foobar2k. Not to mention tests were done across different versions (from 1.3 till 1.5).

And there comes Mr. Castle, not showing where he probed, what equipment he used, what OS and what version of software he used, how he probed and his tests showing no difference.

I guess it's evident who has the better coverage, whom to trust and whom not to trust.
Come on, there might be more concrete information about what I did in the first line of my previous post than in all your mentions of "objective evidence" against foobar.

I'm trying to get facts. Whatever they really are I'll be fine with them because they're facts. If foobar has a problem we can do nothing about, once I see actual comprehensive evidence of it, my next move will be to try and confirm the issue myself if I can(because I don't trust audiophiles in general). And the next step after that will be to get myself another player and to come here say that you're right(about that very specific part!!!!!!) and share my experiment so people are warned about the issue.
But here is the situation: so far I've been able to get the same digital output from foobar and Winyl from a sweep. I've seen and done RMAA measurements(for years) showing no obvious problem. And when I tried to see what a 1kHz signal would output because your "evidence" was mentioning that as a test signal, I clearly did not get what you're showing(either your test is crap or there is a condition necessary to get what you got and it should be clearly stated). All those added pieces of evidence not only fail to support your claim, they keep suggesting conclusions that contradict it.

If you were in my shoes, me in yours. I kept making some super vague explanation you couldn't make sense of even when trying your best. And I kept making the same absolute claim about foobar that disagreed with all the little pieces of evidence you have seen over the years. Would you trust me? Would you really discard all the actual data you know, in favor of vagueness and 3 pics of an FFT under conditions you know very little about and can't seem to replicate?

What's the damn problem with foobar? How exactly do I check for it? I don't think I'm asking a lot.
Anybody else knows what it's all about and could explain it to me? please! Any reason not to think it's complete BS and I've been wasting my time from day one on this topic?
 
Jun 15, 2020 at 9:11 AM Post #68 of 205
Come on, there might be more concrete information about what I did in the first line of my previous post than in all your mentions of "objective evidence" against foobar.

I'm trying to get facts. Whatever they really are I'll be fine with them because they're facts. If foobar has a problem we can do nothing about, once I see actual comprehensive evidence of it, my next move will be to try and confirm the issue myself if I can(because I don't trust audiophiles in general). And the next step after that will be to get myself another player and to come here say that you're right(about that very specific part!!!!!!) and share my experiment so people are warned about the issue.
But here is the situation: so far I've been able to get the same digital output from foobar and Winyl from a sweep. I've seen and done RMAA measurements(for years) showing no obvious problem. And when I tried to see what a 1kHz signal would output because your "evidence" was mentioning that as a test signal, I clearly did not get what you're showing(either your test is crap or there is a condition necessary to get what you got and it should be clearly stated). All those added pieces of evidence not only fail to support your claim, they keep suggesting conclusions that contradict it.

If you were in my shoes, me in yours. I kept making some super vague explanation you couldn't make sense of even when trying your best. And I kept making the same absolute claim about foobar that disagreed with all the little pieces of evidence you have seen over the years. Would you trust me? Would you really discard all the actual data you know, in favor of vagueness and 3 pics of an FFT under conditions you know very little about and can't seem to replicate?

What's the damn problem with foobar? How exactly do I check for it? I don't think I'm asking a lot.
Anybody else knows what it's all about and could explain it to me? please! Any reason not to think it's complete BS and I've been wasting my time from day one on this topic?

If you like the sound there is no problem lmao.
 
Jun 15, 2020 at 10:00 AM Post #69 of 205
If you like the sound there is no problem lmao.
me liking the sound has no bearing on his objective claim being factual or not.
from google:
An objective claim is a statement about a factual matter-one that can be proved true or false. For factual matters there exist widely recognized criteria and methods to determine whether a claim is true or false. A subjective claim, on the other hand, is not a factual matter; it is an expression of belief, opinion, or personal preference. A subjective claim cannot be proved right or wrong by any generally accepted criteria.
 
Jun 22, 2020 at 12:20 PM Post #71 of 205
Yeah, the installation procedure for Hysolid seems a bit sketchy to me.
Sadly could not try WTFPLAY and Hysolid because I can't install. Installation is super ridiculous for Hysolid I had to register, then plug my phone to my computer, then create an itune account but right at the "choose a security question" it blocks me and I can't even go back or leave the page. So frustrating. I hate when I can't just download the program and install it. But I tried Winyl and I thought it was good, but I prefer JetAudio and older versions of Winamp. You can get them at oldversion.com
 
Jun 29, 2020 at 8:17 AM Post #75 of 205
Unfortunately I'm not qualified enough to answer about endpoints, streamers etc. But for an inexpensive device, you could try the allo sparky or any other single board computer running a roon endpoint.

Point to be noted, it is a sea in itself and you could easily be starting to spend in thousands of dollars there eventually.
 

Users who are viewing this thread

Back
Top