Jump to content
IGNORED

HQPlayer's Network Audio Adapter


Recommended Posts

In that case, any idea when networkaudiod might be upgraded?

 

I just uploaded new build 23 for Jessie with init script replaced with a systemd unit.

 

For correct operation, first uninstall old version using "dpkg -P networkaudiod" and then install the new one and reboot the machine. Now networkaudiod should be running. Related change is that networkaudiod log output now goes to syslog.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
  • 3 weeks later...
Miska, has there been any update to the armhf network audio file?

 

I have version 2.0.0-15 saved from a download back last September

 

Hopefully soon. I recently made a build for armel and next I'm planning to do it for armhf. Quite a bit of extra hassle, because I needed to switch the devices over from Debian Wheezy to Debian Jessie which means also rebuilding new kernel with different configuration due to Debian switching over from SysV init to systemd. And then also building patched libasound2 for DSD support, plus couple of other smaller things. Not very quick thing to do. (600 MHz ARM9 is very slow on compile)

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
  • 2 weeks later...
Is it a working way to use BeagleBoard with Windows Embedded and ASIO driver with HQPlayer's NAA? So with DSD256 and DSD512? Here is a windows install: https://beaglebonebsp.codeplex.com

 

I have not heard of anybody building Windows ASIO drivers for ARM architecture...

 

Or another solution: a Raspberry Pi-2 Modell B+ with Windows 10?

Windows 10 Coming to Raspberry Pi 2

 

Has Windows any drawback compared to Linux (for example bigger noise signature)?

 

RasPi is also ARM...

 

I would say major drawback being poor support for ARM-based platforms. Practically the only ARM-based Windows installs are mobile phones running on a Qualcomm SoC.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Look like no Device are available for daemon. NAA has integrated audio board that I would like to use as audio output. It perfectly works with OSX-NAA or Linux-NAA.

 

So I'm not sure this is an error coming from Windows 10 side or in general from Window's NAA usage.

 

You need an ASIO driver and almost systematically integrated audio devices don't come with ASIO drivers.

 

You can get ASIO emulation using ASIO4ALL (it can talk to WASAPI/KS drivers). Not a real driver, but at least you'll likely get sound output functional.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
  • 2 months later...
Would using a wireless bridge between a HQPlayer Windows 10 machine and a remote SMS-100 (attached to the remote end of the wireless bridge with Ethernet cable) mess up the sound quality of a NAA solution? I have two systems in different rooms, and I'd prefer to only have one HQPlayer Windows 10 machine. It isn't practical in my place to run cable (even fiber) between the rooms (it's a rental).

 

No, not necessarily, it depends on how the wireless is implemented at the NAA side. I'd recommend avoiding any USB-connected wireless devices. Ones connected to PCIe or other high speed bus and properly shielded from RF radiation should be fine.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Miska, I'm talking about using two routers as a wireless bridge. So the main HQplayer machine is Windows 10 connected to router #1 via ethernet. Router #1 (local) and router #2 (remote) form the wireless bridge, and the NAA machine is connected to router #2 via ethernet cable. When I'm listening to music, the routers will essentially be dedicated to this solution, no other traffic. So router #2 is not being used as a wireless access point, just as a wireless bridge. Does this implementation seem OK?

 

It should be OK and probably better choice than powerline networking. If the router #2 properly isolates it's RF side from the ethernet side.

 

You could also experiment with shielded (STP) ethernet cable between router #2 and NAA machine to see if it makes any difference. Note that at least one end of the cable needs to have a connector that connects the metal shielding to ground, in this case preferably only one of the ends.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
I suppose those powerful capabilities would be being able to leverage the development time already invested in windows based applications/drivers, while still having low overhead close to Linux.

 

But the overhead of the OS is still higher than what you can get by customizing Linux to your particular application... I consider Windows (and OS X) bloated, no matter how I look at it.

 

NAA was originally Linux-only and I consider Linux best platform for running it. And prefer very low power ARM CPUs for that purpose. Currently I'm providing full bootable NAA OS image for CuBox-i which is still a bit of overkill for the purpose. From Intel's portfolio, Quark is closest to what I prefer, you can find it on Galileo board which runs Linux just fine.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
You are probably right. But you still don't have the same level of functionality. For instance, your NAA system is now 32 channel capable, which DSD 256 capable multichannel DAC's are there on the market that can take advantage of this with Linux?

 

I know just two multichannel DSD256 capable DACs in general, the e28 which I already have and Merging Horus. Where Horus is the only one that can be used for 32-channel setup. Horus is theoretically usable on Linux too, but I would need to implement the Ravenna protocol which I'm not planning at the moment since it would be translating one ethernet protocol (NAA) to another (Ravenna), which in turn doesn't make much sense.

 

For 32-channel DSD256 I would certainly forget USB altogether and build NAA straight into a DAC...

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
I just think it's a good compromise between the 2. You get full Windows capabilities with much less bloat than full Windows.

 

Having 3rd party drivers available only for Windows and not for Linux is not "Windows capability", Microsoft doesn't have anything to do with it.

 

I would say it is compromise between the two and you get full Windows incapabilities as extra... ;)

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Linux has multiple sound standards including OSS (pretty much depreciated), ALSA and PulseAudio.

 

Although it is important to note the split between the layers. OSS and ALSA are the driver interfaces. Plus two user space implementations handling audio, FFADO for some FireWire devices and BlueZ for Bluetooth. PulseAudio sits on top of ALSA (and BlueZ) and handles mixing/routing/volume control/rate conversions. For pro-audio, there's JACK.

 

Microsoft invented WASAPI on Windows Vista to remove the horrible hacks of MME and KS, and now it looks much like CoreAudio.

 

On Linux, HQPlayer and NAA talk straight to ALSA hardware devices. Nice thing on Linux is that when something like native DSD support is missing, it can be added the the OS by people willing to do the work. Of these interfaces, ALSA is the one that lets application closest to the hardware.

 

ASIO is somewhat different in a way that it only defines how application and driver can talk to each other, but it doesn't have much code by itself.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Okay provide me with a list of 2 channel and multichannel native DSD streaming (non DOP) DSD 256 capable DAC's that offer this functionality using ALSA on Linux.

 

Native DSD streaming:

- Playback Designs DACs (these were first ones supported)

- D&M: Denon DA-300USB, Marantz HD-DAC1, Marantz SA-14S1

- XMOS: iFi iDSD Nano, iFi iDSD Micro, iFi iDAC2 (?), Matrix Audio X-Sabre, Matrix Audio Mini-i Pro, DIYINHK USB to I2S/DSD, JLSounds I2SoverUSB

 

 

For DSC2, I'm going to support JLSounds I2SoverUSB and Amanero.

 

 

P.S. With the latest XMOS platform revision, things should work up to 8-channel.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Are those all DSD 256?

 

Some, but not all, it is more about the DAC itself rather than the interface.

 

Yes I know quite a bit about the new Xcore-200 chips. It is DSD 256 capable natively over 8 channels with the 16 core chip. Only problem is with USB 2.0 that's about where you max out.

 

I'd prefer PCIe, Thunderbolt or some other local bus for higher number of channels. USB always has an overhead and higher the data rates get, higher the overhead becomes.

 

However I thought you needed the Windows Theyscon ASIO driver to take advantage of that.

 

I'm not very enthusiastic about Thesycon's driver implementation, it would need a bit of tuning for the higher rates.

 

The ASIO driver TEAC has been shipping for their DACs has been rock solid.

 

Just as a reminder, it is always possible to write Linux drivers for whatever kind of audio interface. M2Tech implemented proper driver for their hiFace which is not UAC2, but uses bulk mode instead:

https://github.com/panicking/snd-usb-asyncaudio

it is now officially part of Linux kernel together with the other drivers (if you look at beginning of chip.c you can see which devices are covered by the driver). And this driver works very nicely indeed.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Miska, any particular advantages/disadvantages for an NAA of a Galileo board vs. something like the ODroid (ODROID-C1+ | ameriDroid - ODROID United States and Canada Distribution), and any advantages/disadvantages of EMMC vs. SD Card storage (Storage (eMMC/SD/HDD) | ameriDroid - ODROID United States and Canada Distribution)?

 

As usual, it is not clear cut, as none of the devices are designed for the particular purpose. Galileo is good in a way that it doesn't have GPU and it is quite low power, but has only 100 Mbps ethernet and uses 12V PSU. While ODROID has gigabit ethernet and uses 5V PSU. In optimal case the 5V PSU goes straight to the USB power pins and thus you get benefit from a linear PSU.

 

eMMC is usually faster than SDcard. For example BeagleBone Black has integrated eMMC and microSD slot and you can boot it from either. I assume this is similar in ODROID too, except that it has socketable eMMC.

 

So hard to say, but good thing is that none of these devices is expensive, so it is mostly matter of effort to try out various different boards... :)

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Have you thought of any way to achieve clock sync between 2 NAA's at the same level as Ravenna? This is a big issue for my project.

 

I'm not sure that Ravenna's performance is very good once you go beyond single box. NAA is designed for point-to-point use and there's no clock sync support or even plans for such. If you want lot of channels, use something like this with PCM:

RME: MADIface XT

That's PCIe + USB3 (former being preferred/recommended over latter). Or alternatively:

RME: Fireface UFX

(should work on Linux too after changing settings to be UAC2 compliant)

I think most of the RME HDSP(e) cards are also supported on Linux.

 

Or alternatively for 32-channel PCM, check out

Orion³² Multi-Channel AD/DA Converter | Antelope Audio

 

Overall, I'm not into hardware business, so I let others to decide on the hardware designs and I rather focus on the software side. :)

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
So Jussi, please help, let me check the 'AltDSD' button in a NAA-Configuration...or modify the settings-xml-file.

 

I need to add option for it to the next networkaudiod release, this kind of information is not passed between HQPlayer and NAA and that's why the setting is also disabled. I will add an environment variable to control this detail at the NAA side.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
I have a couple of quad core Wandboards around and linear PSU's from a prior project and was going to use one for NAA. Off the Wandboard site, there are images for Ubuntu, but they are the xxxhf type (if that's the right lingo) vs. the xxxel packages for libasound2 and kernel on the signalyst website. I don't believe the two are compatible, but am not sure. Does anyone know if I can use a Wandboard for NAA? I'm not very familiar with Linux and so wanted to check before I spend the weekend trying to do something that's not doable! I was going to follow the instructions dispersed throughout this thread, but if someone has something that's more "step by step" they can send me, that would be greatly appreciated.

 

I've been busy on other things, so I haven't got time to make new armhf builds. But certainly will when I find the time. At the moment my CuBox-i install of Debian is a bit messed up because I upgraded it to Jessie which of course replaced SysV init with systemd resulting in a messed up system because the kernel I had there was not configured for systemd... Fixing it up would take quite a bit of time, so I will rather get a WandBoard and start from scratch.

 

If you are ready to do some hacking, the optimal would be to modify the CuBox-i NAA image to make it work for WandBoard. You'll need to replace u-boot and kernel (zImage, dtbs and modules).

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
I have tried to add mcast_if="192.168.11.7" (the static address of NAA) in xml it failed.

For example I set static address 192.168.11.8 in HQ side and static address 192.168.11.7 in NAA side in interfaces file, after booting HQ and NAA can ping each other, but cannot find device in HQP if both machines are connected directly by a lan cable.

 

Note that mcast_if must have address of the local interface you want to use for multicast communications. So you should have "192.168.11.8" there...

 

But multi-homed network configurations are always tricky, you get better results by using just single interface and connecting NAA to a high quality smart switch together with all the other networking equipment. If you use copper, I recommend using a switch and interfaces that support 802.3az and other similar features. For smart switches you can usually also get SFP modules for fiber, etc.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
But I couldn't get Rufus to convert the Debian 64 ISO to USB. So I tried Unetbootin. Seemed like everything went good until I tried to boot from it. When I boot from USB a menu comes up with a list of options, and when I choose any of the options I get : invalid or corrupt kernel.

 

You can just dump ISO image to a USB stick as-is, and then install from it to internal storage or to another USB stick.

 

This is at least one disk image writer for Windows:

Win32 Disk Imager download | SourceForge.net

 

Warning! Always double check destination device and be very careful when writing disk images so that you don't accidentally wipe out your system...

 

I didn't check yet, but with good luck Debian Stretch would have all the needed DSD support stuff already in. That would make installation easier.

https://www.debian.org/devel/debian-installer/

Start from the netinst image and don't install any additional software when asked, so you get only a bare text only system without extra things running. SSH server may be the only extra thing one could want (to remotely maintain and update the installation). You certainly don't want to have any GUI on a NAA. And don't setup any swap space, even though the installer complains about it (partitioning better done manually).

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

I just checked (installed on VM) and Debian Stretch is most current, so anybody setting up PC-based NAA who want minimal effort then that's the way to go. After bare installation (no extra packages), "apt-get install libasound2" is enough before installing networkaudiod. There's also 4.1 realtime kernel available in Debian's Stretch repository, "apt-get install linux-image-rt-amd64 linux-headers-rt-amd64" does the trick. :)

 

For networkaudiod, use the Jessie version, it suits Stretch too.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
I read 100 times. Still have no clue how to install the networkaudiod.

 

You do "dpkg -i networkaudiod_3.1.0-25_amd64.deb". It will be started automatically at boot, you don't need to login or anything, you can just leave the machine hang on the login prompt.

 

After installation you can do "systemctl start networkaudiod" to start the service without rebooting.

 

"shutdown -r now" reboots and "shutdown -h now" shuts down the system.

 

For convenience you may want to "apt-get install acpid", then short press on the power button will nicely shutdown the system. Ctrl-Alt-Del will perform nice reboot.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
Ok tried and can't find it. Networkaudiod is on my USB stick. How do I get it to install from the stick?

 

Here's a screenshot of what it's saying:[ATTACH]20275[/ATTACH]

 

You need to mount the USB stick and install from there, now you are trying to install from root's home directory (/root)...

 

This is why I don't write installation instructions, I don't know what level of OS experience to expect. But there are certainly lot of good books (about Linux and Unix/POSIX-like systems in general) to get started.

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...