wtfplay project - Linux based PC playback system

Hi Rick,

I am not sure what ASROCK board you have in mind specifically. I would say 2 cores would be sufficient, 4 would not hurt. I am not sure whether there is a significant advantage of 4 cores over 2 as this would have to be evaluated on exactly the same configuration.

In terms of wtfplay features, it is going slowly. Other aspects of life keep me well busy. The nearest future will bring bugfixes to the current version of the software and I will be 100% focused on ARM port.

F
 
I have no idea what the point of the multiple cores ARE but I do know you know.

The board is miniITX. ASROCK has great BIOS flexibility and I have had good service from them. AS if I go through lots of them.

The one I am considering is: ASRock Motherboard & CPU Combo Motherboards J3455B-ITX. This is the four core one. 10 watts claimed power usage.

Easily to get by with the PICOpsu though not so sure about using a linear supply.

I have been very impressed with what those IFI wallwarts can do.

Hope you keep up the development and even more than that I hope more people will give it a try. I think it is close to perfect. If it did not chop up all of those old SONY orchestral records where they for reasons unknown split stuff into tiny segments and about every two minutes there is a pause ...

THANKS and take care,
 
Have started using the settings.

Getting my bearings.

Sometime in the new year you should give us an idea how these parameters interact with each other.

Should we change one parameter at a time or is there some relationship, say between periods & frames, that should be respected?

Will priority affect the periods and frames setting or can one explore this on its own?

Any guidance would be good if there IS any guidance. Is this a case where you just have to try every combination?

Take care,
 
@zazaX11: That was about creative SB Z series, was it not? The cards that are based on CA0132 chip? The support for those cards is now in the mainline Linux kernel. The next release of wtfplay-live will have updated kernel with the support for those cards.



Yes,I meant the z series (CA0132) and maybe later the zxr (CA0113-4AG)! Thank you for your work, it's very appreciated! I can't wait to try the new version!
 
The relation between the frames, periods and buffer size is described here:

wtfplay-project.org/manual.html#_tuning_the_audio_buffer_size

To elaborate a bit further on what's is already in the manual:
* shorter period size -> shorter period time -> player will be awaken more frequently to fill up the audio buffer with the new data.
* the minimum number of periods is 2, that is, in normal operation one period is being delivered to hardware by the driver, while the second period is being populated with the new data by the player.

The scheduling priority is unrelated to the audio buffer settings.

As to exact values, this really depends on the hardware and your preferences. I am afraid there is no golden recipe. I suggest changing single parameter at the time, e.g. start from tuning the buffer and once you are happy with the results, try changing the scheduling priority.
 
Last edited:
I have read that more than a few times!

One never knows if what is written is all there is to know or if something has been left out! Always hoping for some hints on how to proceed.

Might be interesting if folks using the player would tell us what they have found?

When you say "system" does this mean the WHOLE system or how one's computer source interacts with their DAC? Trying to get a handle on whether this is an hardware adjustment or something more wholistic - more euphemistic than technical ...

Hope that made some sense.

Take care,
 
When you say "system" does this mean the WHOLE system or how one's computer source interacts with their DAC? Trying to get a handle on whether this is an hardware adjustment or something more wholistic - more euphemistic than technical ...

I was thinking about one's computer. For example, if I had a laptop and a desktop PC, then I would not assume that the player's parameters tuned for laptop were automatically best for the desktop PC. I hope it does make sense.

F
 
Did some looking on the subject of frames and periods and see it is, as I had suspected (I do not know much about computers) has something to do with latency.

Serge, the fellow who began the xp pro minimizing project with cPLAY had his fanciful way of looking at memory usage - that it should be refreshed as often as possible to keep it from going "stale". I figured the buffer was similar to the memory idea and started trying as few frames as possible and limiting periods to two. I liked what I was hearing.

Reading some articles on the web that went into the details added some needed confusion! It is said that latency should be a whole number and many felt that 2 was something to strive for.

This is impossible with 44.1kHz.

Someone wrote that USB adds 24 frames on its own.

Some said their systems would run on frames sizes that were not a power of two. To get an even number for latency would require this. I have not tried it yet.

At the moment I am switching back and forth between 512 and 1024 frames with 2 periods and 50% priority.

Another thing thing - the ASROCK J3455B Mini ITX motherboard sounds quite good. I wish it had more to play with in the BIOS. I am using the 200 watts HDPLEX that uses a 19 volts switcher and then the module that fits into the power input like the PICOpsu. Much higher quality in appearance than the PICOpsu. I had to cut the ground connection. Terribly noisy with it attached. My AM radio went nuts. After cutting the ground it was quiet through the system. After attaching the 5 Henrys HAMMOND choke between the power leads at the IEC input connector the radio calmed down.

When set on ECO mode - everything turned off in BIOS except USB and HPET - graphics memory set to 64m - I have never heard such a lack of digital noise. If one likes digital excitement just set the board for NORMAL mode. I cannot imagine what happens with SPORT mode. I bet there are some folks who would like it. Since they are hearing plenty of it with those insanely high speed CPUs so many seem to think one needs. Maybe so for the "high rez" stuff which comes equipped with strange atmospheric noises. One can see that some could actually like that noise. We all have our noise preferences.

I am dealing with an unreliable memory but this simple setup is free of digital noise as much as I remember of the SDTrans and much better than my elaborate and ridiculous setups using linear (battery) supplies many years ago. I swear it is like listening to an LP record with no record noise with only that quiet you have to perceive beneath the noise fo the LP.

I had tried the SD card sata cards, which are IDE, and they will work and they sound quite good but there is an unbelievable delay in playing the music initially and between tracks. It is not something one could live with so I thought I might as well try using the USB module I use to write to the disk.

I had considered USB a terrible problem for good sound. Along with that i am used to being wrong. I was surprised how good the SD card sounded going through the USB adapter. I realized I was no longer needing SATA so I turned that off in the BIOS and I was staggered by what I heard. How could a pure USB in and out sound like this? It was supposed to sound bad!

After hearing this I then disconnected the 5 volts power and inserted the 5 volts supply I was using for the sata notebook drives I use since they are easy to power. It sounds even better, even quieter - of course this is what I expected so one can be skeptical.

I wonder if there is something to using only one of these at a time? Either all sata or all USB? Since it is impossible to use WTF without USB just use it for everything. Could it be the data is less manipulated? I have no idea.

I know it sounds like more of the same kook blithering but there is something very good about this MB and the all USB setup. Not to say I am not going to try some other Mini ITX boards. I am not saying this is the best by any means. Only that it works very well

Now to try for a latency of 2.0 with a frames setting of either 441 or 417, if the USB 24 frames is something one should consider. With 441/417 your period number will be the same as your latency. Just tried it - -C does not work - would not accept the value at all. Oh, well ...

I have run the system at 256 frames and 2 periods and it sounded fine. I have been toggling back and forth between 512 and 1024. Thinking I heard a little more body with the higher settings.

I had dismissed the frames and periods stuff since I thought WTF was just going to be a temporary setup. I had intended to return to SDTrans but blew it up and have to admit I was dreading going back to that difficult to "access what you want to hear" device.

I have compared the all USB SD card setup with the sata hdd - there is a difference and I like the SD card better.

WTF is the spiritual successor to the cPlay miniaturization project but much better. It is more than a few steps along the line of continuity between where we are and what we hope is possible. Not to mention easier to use.

I have felt one thing holding this player back is the lack of how to approach the hardware. There has to be an ideal approach. I wish there were more folks wanting to work with this very fine thing.

Thanks, frd
 
Further tinkering with frames and periods has me to 64 frames and 2 periods as sounding good.

If only this player did not have those gaps!

Bought a 24 bit 96kHz version of ABBEY ROAD and was surprised that it does sound better - this is some new mix so it is not a fair comparison.

With that recording I use 96 frames & 2 periods.

Do you think this latency thing has the same bearing here?

When it comes to DSD do frames and periods cease to be of importance? One would think best would be 2 frames and 2 periods ...

I downloaded Mingus's AH UM in DSD since I did not have a digital copy of it but waiting for a DAC that can play it! I have a MATRIX AUDIO X-SABRE on the way. I have given up on DIY DACs! I have destroyed enough ... Will see how (and if) the frames and periods affect that. Luckily it is a recording I can listen to over and over again.

Take care and Happy New Year,
 
Look at some of the many explanations of alsa buffer/period (fragment) principles, e.g. Introduction to Sound Programming with ALSA | Linux Journal , All About Fragments , FramesPeriods - AlsaProject , c - The meaning of period in ALSA - Stack Overflow . Period size defines how often the application will be awoken by the soundcard/USB layer to supply fresh samples. Buffer size (periods count) define what margin the application has for such wakeup. There is no reason it should affect the sound, unless the chosen value is too low for the system to keep up with the timing requirements. Only a proper double-blind listening test or detailed measurements can tell a difference, not any sighted listening, that is just how it is.
 
Last edited:
phofman, I know you are one of those who KNOW what you are talking about.

Thanks for your comments and links.

WELL, the embarrassing thing is that after making my post I went back to the system and realized I had made a fool of myself. Luckily I have done this so many times I have learned to live with it.

I had been putting in these numbers through wtfcui -f x -p x and when I saw them on the header I assumed the change had been made. Yes, hearing with my eyes and not my ears - not to say that WTF doesn't genuinely sound good but I now see there is no such thing as 96 frames and 128 is the minimum that will be accepted. I had read some article and they were talking about 96 frames and I went with it. The header in WTFCUI is not a reliable indicator of what you are actually listening to! It will put there anything you tell it to. It would be nice of there was an easier way than going to WTFSETUP to see where you are but it is not a real problem and I prefer the software remaining as simple as possible.

Only after re-entering WTFSETUP after many days did I see that 96 is NOT a possibility and that 128 is the minimum. Yes, I was embarrassed. The machine was defaulting to the 512 frames and 3 periods I had requested the last time in WTFSETUP and that is what it had been the whole time.

I have to say - there is nothing wrong with placebo as long as you can continue to believe it. Eventually the truth comes through.

Thanks for your wise counsel!
 
The driver (or alsa plugin) accepts only some range/values of period size/buffer size/period count. Every driver (soundcard type) has it different.

When opening the device the alsa client must use a value which the driver will accept otherwise the device open call will return with error. To find out that value the client uses alsa-lib API call snd_pcm_hw_params_set_period_size_near (and other variants for buffer etc.) where the client requests some value (the one you entered as parameter), and the alsa-lib returns correct value closest to the requested one.

The actual value returned and used by the driver is listed in virtual file /proc/asound/cardX/pcmXp(or c for capture)/sub0/hw_params
 
Thanks again for your counsel and information.

I have some checking to do ...

May I ask you a question - since you know LINUX: how difficult would it be to get WTF to allow gapless playback?

I have read that this is not something unique to WTF so I figure there must be some kind of limitation within what can be done - except there is one player that makes a justifiably big deal about their player allows gapless playback: Sayonara Player - small, clear and fast audio player - Page 4 of 10 - LinuxLinks

Unfortuntely it requires UBUNTU which is just fine I am using it right now but I love the idea of the self contained OS/player of WTF. The fellow mentions that it could be used with some smaller distros but I doubt they come anywhere close to the tiny footprint of WTF. AS an aside, I would never want that much junk shown on my monitor. I know I am in the minority.

Any thoughts?

Thanks and take care,
 
Reading your post again - are you saying that the software could decide on a value that is not a square of 2 - or will it always be a square of 2? That it will find the closest value it prefers to a square of 2?

I started thinking that maybe these numbers we are inserting are just a guideline for the system and not being actually used the way a dilettante such as myself would assume?

Just wanted to be sure I understood.

Thanks, again
 
Reading your post again - are you saying that the software could decide on a value that is not a square of 2 - or will it always be a square of 2? That it will find the closest value it prefers to a square of 2?

The alsa kernel divers are not limited to periods that are power of two. They can accept other values too.

The power of two constraint is imposed by wtfplay. The reason for the constrain is that it allows for a few optimizations in the player.

F
 
frd,

Curious if wtf utilizes USB 3.0?

I do not like for sending but wonder if it could work better with the SD drives which are able to utilize it?

I am perfectly happy with 2.0 - but I cannot really know for sure with my motherboard which has only one 2.0 port and three 3.0 ones.

I have access to more 2.0 ports from headers on the motherboard. Which I would like to use so I can give them five clean volts instead of using the motherboard 5 volts.

There is a place for two 3.0 ports which I would try if WTF uses it.

Thanks and take care,