wtfplay project - Linux based PC playback system

Thanks for the hint. I will update the webpage on the nearest opportunity,
I was curious so started wftplay in a VM and took a look at the mentioned file. It only lists glibc and libflac. Wtfplay clearly uses more things like ncurses and alsalib, as well as the linux kernel and all the standard things like the shell and tools like "ls".


I haven't read the license terms of every single piece of open software you rely on (which is pretty difficult since you didn't mention anywhere where they come from), so it's possible many of them allow you do whatever you want. But I still think you should make an effort to give credit.



Please, take a proper look at this and get it right.
 
Thanks for the new release.

Can't say I hear anything different - which is fine.

setterm has not returned = we can always turn off the screen ourselves, of course/

Any explanation of the different players?

What is the difference between pcm and wav players? I started out with wav and have set to pcm for this evening. I am wondering since my files are .wav will the system ignore the choice of player and use the .wav version anyway?

Would you tell us what your intention is for these choices?
 
Hi Rick,

I do remember about setterm. It will be back shortly,

In terms of the player PCM player binaries:

* wtfplay.pcm supports only PCM in WAV and FLAC - this one is for me. Almost all of my audio files are PCM so I decided to make a player binary without any support for DSD.

* wtfplay.wav is just one more step further than wtfplay.pcm, purely for experimentation. This one supports WAV files only.

You can use any player available, just keep in mind the above limitations.

F
 
Gettin' Better All The Time...

Hi frd__

A Thousand Thank You's for the WTF Project, and for releasing the latest update !

In Back-to-Back auditions (0.7 vs 0.7.1), I can tell you've been up to some optimization, since it's immediately noticeable... opening bars of TB II say it all.

More coherent stereo image; the Arc of Sound is drawn evenly between points far beyond the physical positions of the monitors. Placement of individual elements is more apparent, and the fine detail of recording and processing these parts is much easier to distinguish.

A Big BRAVO !! for your effort (and skill) in squeezing a little more out of the Ones & Zeroes.

This will make my entire collection either Better -OR- Worse, depending on how well the record was made to begin with ;).

May I request some features to consider in future releases...

1) polarity switch: can you assign a key command to toggle the signal polarity (0/180 degrees). Coming from the days of cPlay, it was very nice to have this available in the player, as numerous titles seemed to benefit from being played with opposite polarity. (and it's a great way to drive yourself crazy without harm to anyone :rolleyes:)

2) CUE file support: this would neatly sidestep the gapless playback issue for many people (ie: being able to accurately navigate tracks within one large file).

3) Screen blanking: I see you intend to bring setterm back - it would be great if the screen could be toggled off/on with a single keystroke.

4) Screen resolution: the display resolution with v0.7.1 is different (for me) than v0.7, resulting in tiny print on my 20-inch 16:10 monitor. This is just about impossible to read from the listening position, 7 feet away.

I presume Linux is dutifully defaulting to the max res of the attached monitor - desirable in most situations - but in this case a definite impairment of usability. Is it possible to override this with a user-chosen resolution, and have this saved with the persistent data (ie: part of the wtfsetup script ?)

All in all, I must say WTF is my reaction when playing music with this platform. Never have I heard reproduction with this level of finesse - which I interpret as being steps toward accuracy & fidelity to the original data. DOUBLE BRAVO !!

Thanks again frd__ :)

BTW: Rick, you should take those cotton balls out of your ears before listening to 0.7.1 :D It's almost like giving your system a dose of Stabilant !!
 
After making a fool of myself previously in thinking I was hearing things I am being more circumspect. Speaking of my impossible frames and periods settings.

I need to listen to 7.1 a little longer before returning to 7.0 to make a judgement.

Last night, before reading your note, I did think I was hearing something different - a little more liveliness but then it occurred to me it just seems louder. I have decided to not blind myself for this since I will need to refer to a decibel meter to be sure

I need to hear if that is the case.

I could not hear any difference between .pcm and .wav. All but one of my files is .wav so I will stick with this.

I am assuming one cannot change the player with the command line? Hope I am wrong and, if so, what is the parameter?

One way or another the player is astonishing either with eyes open or shut.

Time for all of us who love this player to send frd a token of our appreciation.

frd has mentioned that screen resolution is dependent on BIOS - something to do with UEFI.

All of Grant's other suggestions should have been made with the disclaimer "as long as it does not interfere with the sound". I, too, would welcome these but not at the expense of the sound and I know he would not desire that either.

I think any setting that can be made "on the fly" would result in a penalty. Luckily I can choose polarity further up the chain and be able to detect the difference immediately.

Having to turn off the music to change the polarity would be awkward though better than nothing if that can be incorporated.

Grant, you should know I would never put cotton in my ears - long staple wool is my choice.
 
Here is a quick workaround for setterm --blank N, where N is the the blank delay in minutes. Here are the commands that can be used instead:

Code:
echo -ne "\e[9;N]"

or

Code:
printf "\e[9;%d]" N

The commands are equivalent. They send to terminal a control sequence of characters that set the blank timeout. Just substitute N with the number of minutes.

For example, to set the screen to blank after two minutes of inactivity you can type:

Code:
echo -ne "\e[9;2]"

or

Code:
printf "\e[9;%d]" 2
 
Grant and i were talking today about turning off the screen.

Will any of the commands, even the unused for the moment setterm actually turn off all of the video processing, including that which happens in the CPU or all of the commands suggested, simply, a command telling the screen to go blank and all that involved with video on the motherboard will remain active?

Back in the cPLAY days Serge would use a very basic, and unavailable as new even back then, PCI card to get the CPU out of video duty. It seemed to sound better. it made sense so maybe we felt SURE it would sound better but I have never shunned placebos as long as they work.

Is there any set of commands that could actually disengage video that completely through the operating system?

Grant was wondering about the characters changing size and I think (and I looked) that that had something to do with uefi vs regular BIOS. Did I dream that?

Take care,
 
Rick may be referring to a Video BIOS and VGA console

In VGA console the OS does not do rendering - Video BIOS does. The OS sends the character codes for the rendering (via INT10). The characters are rendered by the BIOS according to a font table that can be configured by OS.

There are many limitations in this interface, and it is considered to be a complex one.

The UEFI based systems are much simpler by comparison. They just give a screen framebuffer to the OS and the OS is responsible for rendering (drawing pixels). The OS can draw a text console, but can also draw a graphical interface.

F
 
Rick may be referring to a Video BIOS and VGA console

In VGA console the OS does not do rendering - Video BIOS does. The OS sends the character codes for the rendering (via INT10). The characters are rendered by the BIOS according to a font table that can be configured by OS.

Sure, but how does a PCI graphics card help? Every graphics card incl. the onboard/in-CPU one still implement the VGA standard, or not any more?


The UEFI based systems are much simpler by comparison. They just give a screen framebuffer to the OS and the OS is responsible for rendering (drawing pixels). The OS can draw a text console, but can also draw a graphical interface.

Does linux use the UEFI routines? I would assume it talks to the graphics interface directly, just like it circumvents BIOS routines.
 
Sure, but how does a PCI graphics card help? Every graphics card incl. the onboard/in-CPU one still implement the VGA standard, or not any more?

Yes, they do. I mean they still do, but I do not think that it will last forever.

More and more PC systems drop support for (legacy) BIOS boot mode. They are UEFI only. With UEFI there is no need for Video BIOS.

Does linux use the UEFI routines? I would assume it talks to the graphics interface directly, just like it circumvents BIOS routines.

If Linux wants to display anything in UEFI mode it must support UEFI routines. Those routines are much much simpler that the Video BIOS. The absolute minimum that is required is to get the framebuffer info (memory address, resolution, pixel format) and to flush it (display the content of the framebuffer on the screen).

The idea is to use UEFI framebuffer just for booting, until the OS loads the specialized graphics adapter driver. Once the driver is loaded it takes over the control and enables all features of the graphic card (resolution/refresh rate change, 2d/3d acceleration, overlays, hardware cursor, shaders, etc...).