wtfplay project - Linux based PC playback system

planning dedicated wtfplay machine

Hi everyone.

I have been enjoying wtfplay tremendously, so much so I would now like to explore ideas for building a dedicated wtfplay machine.

I'd only be looking at a motherboard, the processor, and a power supply. I would be hooking it up via a wireless keyboard, and a VGA monitor as I do now and which works very well for me. I have a minidsp dac/amp/dsp based LXmini hooked up at the other end of this and its just sonic bliss.

I was hoping to ask this board for any thoughts of your thoughts or recommendations on this. My first build for a computer. Would very much appreciate any input.

Jay
 
Hi Zoran,

Unfortunately FireWire is not supported. If you want to try wtfplay, I think the easiest way is to copy a couple of albums/songs onto a memory stick.

XMOS/Amander work fine.

F

Can I use this port tiny for photo memory stick (SD card?) at the back of mac mini?
OS for wf player could be at the usb stick.
...
PS
I am freak out about "upgrading" on newer OSX high sierra. Same everything else, sound different. Less body, too much highs, to much noisy, too sharp, no good mids, less down low end etc... Pissed off really.
Thinking to downgrae back deep into older OSX.
Probably Lion because ypu said that from that point different file system HD used?
 
Can I use this port tiny for photo memory stick (SD card?) at the back of mac mini?
OS for wf player could be at the usb stick.

I do not have any Mac so I cannot tell for sure, but the SD card slot should work fine. Just insert any FAT32 formatted SD card there while wtfplay-live is running and it should be automatically mounted in /media directory. Then you can play audio files stored on that SD card.

If the card is not mounted automatically, then you can see if it's detected with the following command:

Code:
ls /dev/mmc*

This should list files such as /dev/mmc0p1, etc...

If you are thinking about booting from SD card, then I do not know whether it is possible. This depends on your hardware/BIOS. Some BIOS'es allow booting from the SD card.

One more thing about SD cards. Some large capacity SD cards come pre-formatted with exFAT filesystem. This filesystem is not supported by wtfplay-live.

F
 
Last edited:
Hi everyone.

I have been enjoying wtfplay tremendously, so much so I would now like to explore ideas for building a dedicated wtfplay machine.

I'd only be looking at a motherboard, the processor, and a power supply. I would be hooking it up via a wireless keyboard, and a VGA monitor as I do now and which works very well for me. I have a minidsp dac/amp/dsp based LXmini hooked up at the other end of this and its just sonic bliss.

I was hoping to ask this board for any thoughts of your thoughts or recommendations on this. My first build for a computer. Would very much appreciate any input.

Jay

wtfplay uses very little CPU, probably it doesn't do any processing. Any recent I3 will be enough for your pc (even mobile procs like 8130U).
On the other hand why build a pc? Intel NUC's (for instance) are nice and silent little pc's.
 
S/PDIF Out on Audiophile 192

Hi Frd___

First THANK YOU for continuing efforts to improve the wtfplay experience.

I listened to (through ?) the player long ago, and it was a revelation. I'm hampered by having only a modest USB DAC (Emu 0404 USB), but even through this humble unit, I heard "something new" in the few files I played. What a tease !

However, if only I could activate the S/PDIF OUT, I could then feed better downstream DAC's and really appreciate the finesse that escapes me, listening through the Emu converters.

Also available, PCI cards that you support (ESI Juli@ and M-Audio Audiophile 192), but the analog sections can't compete with my Benchmark DAC (non-USB version).

Is it feasible to add an option the to the wtfplay-live environment: enabling S/PDIF OUT on the PCI soundcard(s) ? This would be a huge help toward better SQ around here.

Thank you for considering my request.

Cheers,
Grant
 
Also available, PCI cards that you support (ESI Juli@ and M-Audio Audiophile 192), but the analog sections can't compete with my Benchmark DAC (non-USB version).

Is it feasible to add an option the to the wtfplay-live environment: enabling S/PDIF OUT on the PCI soundcard(s) ? This would be a huge help toward better SQ around here.

Hi Grant

Did you try enabling the SPDIF output with alsamixer?
 
Hi Grant

Did you try enabling the SPDIF output with alsamixer?

Yes I did, with disappointing results :( Attempted on two different desktop computers... same result - no bitstream generated.

CompA: using E-MU 0404 USB

Initial state shows DigitalOut as muted. No change occurs when "M" key is actuated (repeatedly), it remains muted.

jzshDm.jpg


CompB: using M-Audio AP192

Initial state has PCM at zero volume, and S/PDIF enabled, but indicating "00" - whatever that means in the context of a digital signal.

2RWLdj.jpg


On this soundcard, it IS possible to toggle the mute/un-mute status for the S/PDIF Output, but no audio is sent through this path when un-muted.

0oAKQv.jpg


Just to note, the AP192 does send a valid digital signal (evidenced by the LED lock indicator on the DAC), but the playback stream is not being routed here. WTFPlay shows successful playback occurring on-screen, and responds to navigation commands just fine.

171orP.jpg


On CompA I did confirm music coming from the E-MU analog outputs. CompB is not connected in the analog domain, only S/PDIF > DAC.

Also, I noticed The E-MU was not happy switching from 44.1/16-b to 96/24-b... it seems the message to change sample rate is not getting through.

Is it possible to run a playlist of songs having different sample rates ?

I don't know if this is relevant (as I know very little about Linux), but I found some info for the AP192 here Alsa Opensrc Org - Independent ALSA and linux audio support site, suggesting a way to enable S/PDIF output via .asoundrc.


Thanks,
Grant
 
Unfortunately things are not so simple...

First, the driver has to support the device feature. AFAIK the linux driver does not support SPDIF input/output on the E-MU device. E-MU (and Creative) never co-operated properly with the alsa team, never revealed docs to write drivers supporting all features.

When the feature is supported, it must be used properly as it is designed.

ICE1712/24 (Envy24) has 10 channels - 8 are available on I2S outputs for DACs, 2 are routed to internal SPDIF transmitter. Plus internal PCM mixer can re-route the channels as required. Therefore, enabling Envy24 SPDIF output is not only about switching some SPDIF control, but the SPDIF output uses different alsa device (hw:X.1).

To simplify life of users, alsa includes device-specific configurations which define custom PCM devices - look at output of aplay -L (note the capital -L, as opposed to the list of hardware devices in aplay -l). The configurations hold for general use of the given controller. Config /usr/share/alsa/cards/ICE1724.conf defines (among others) pcm device iec958

Code:
<confdir:pcm/iec958.conf>

ICE1724.pcm.iec958.0 {
	@args [ CARD AES0 AES1 AES2 AES3 ]
	@args.CARD {
		type string
	}
	@args.AES0 {
		type integer
	}
	@args.AES1 {
		type integer
	}
	@args.AES2 {
		type integer
	}
	@args.AES3 {
		type integer
	}
	type asym
	playback.pcm {
	    type linear
	    slave.pcm {
		type hooks
		slave.pcm {
			type hw
			card $CARD
			device 1
		}
		hooks.0 {
			type ctl_elems
			hook_args [
				{
					interface MIXER
					name "IEC958 Output Switch"
					lock true
					preserve true
					value true
				}
				{
					interface PCM
					name "IEC958 Playback Default"
					device 1
					lock true
					preserve true
					value [ $AES0 $AES1 $AES2 $AES3 ]
				}
			]
		}
	    }
	    slave.format S32_LE
	}
	capture.pcm {
	    type linear
	    slave.pcm {
		type hooks
		slave.pcm {
			type hw
			card $CARD
			device 1
		}
		hooks.0 {
			type ctl_elems
			hook_args [
				{
					interface MIXER
					name "IEC958 Capture Switch"
					lock true
					preserve true
					value true
				}
			]
		}
	    }
	    slave.format S32_LE
	}
}

As you see, that pcm device uses device 1 of the card (as shown in aplay -l), switches the Output switch on, configures SPDIF AES headers. Still, ICE1724 mixer can reroute the channels, but this config works for default setup.

If alsa client uses the device "iec958:CARD=Juli", ESI Juli will output proper SPDIF stream (provided the ICE1724 mixer is not reconfigured by the user).

On the other hand, some soundcards require just turning the SPDIF output switch on - e.g. this External USB Sound Card Channel 5.1 7.1 Optical Audio Card Adapter Notebook PC | eBay will transmit the first two channels onto its TOSLINK output when the alsa switch is activated.

To conclude - transmitting stream from SPDIF output generally requires more than just switching a low-level control in alsamixer/amixer and is different for every supported soundcard.
 
phofman is correct.

You can use:

Code:
aplay -l

to get the list of the all playback devices. What you want from this list is the card number and the device number that corresponds to the S/PDIF output.

You can pass the two numbers to wtfplay un a standard form hw:N,M, where N is the card number and M is the device number. If the device number is omitted then 0 is assumed (hw:0 is equivalent to hw:0,0)

Examples:

Code:
wtfplay -d hw:0,1 /path/to/your/file.flac

or:

Code:
wtfcui -d hw:0,1

In terms of E-MU and the clock setting, unfortunately it can be changed manually with alsamixer. I own E-MU 0202 USB and it is the same case here.
 
Gentlemen, thank you for your replies.

@phofman - thanks for taking time to craft a detailed answer to explain the quandary I'm in. After re-reading (many) times, I get the the concept, and even some of the syntax.

Curse our good friends at Creative - as you predicted - S/PDIF on the E-MU remains a dream, just out of reach.

Better news with the other box; the Audiophile192 does put out a bitstream when the card and device are invoked properly !

@frd__ - thank you for examples of running the player & UI with parameters suited to my circumstance... it's got me started and I hear music coming out the speakers !

Now to settle in for a bit of critical listening. Eventually there will be a shoot-out between WTFPlay and the Win7-based DAW running on the same box.

Look for Impressions & Questions to come !

Cheers,
Grant
 
Bumps on The Road...

Hi frd__

I'm having trouble using the wtfsetup utility. It seems the configuration partition on my boot USB stick "cannot be found".

I tried doing an immediate save ("wtfsetup -w"), and it failed as noted above.

ALSO, the utility will not accept my device parameter of "hw:1,1" (needed for the S/PDIF output). Perhaps you didn't foresee this requirement when checking for valid input to the utility ?

I was hoping to employ the persistent configuration feature to aid my rusty command line dexterity ;)

Thanks,
Grant
 
Hi Grant,

You are correct, wtfsetup does not know how to deal with hw:1,1. I am working on this script at the moment to implement a different feature and I can add the support for new identifiers as well. I will also check -w option.

What version of the image do you use? 0.7?

F
 
Dear frd,

Wanting to get a motherboard just for WTF.

Always wanting simplicity - looking at two ASROCK boards with CPUs attached.

They offer a two cores nd a four cores version. I would tend to go for ONE core but thought I would ask if there is any advantage in using a four cores over two?

After I destroyed my SDTrans I figure I am sticking with WTF.

Any chance of gapless playback being available?

THANKS and take care,