Jump to content
IGNORED

HQPlayer Linux Desktop and HQplayer embedded


ted_b

Recommended Posts

7 hours ago, michaelvv said:

Hi

 

I tried the hqplayerd and it worked fine with the gentooplayer.

 

I would like to be able to play music directly from the hqplayerd command line. I found some info using curl

 


curl -v -H "text/xml" --data-binary "<?xml version="1.0" encoding="utf-8"?><GetInfo />" http://localhost:4321
* Rebuilt URL to: http://localhost:4321/
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 4321 (#0)
> POST / HTTP/1.1
> Host: localhost:4321
> User-Agent: curl/7.58.0
> Accept: */*
> Content-Length: 45
> Content-Type: application/x-www-form-urlencoded
> 
* upload completely sent off: 45 out of 45 bytes
<?xml version="1.0" encoding="utf-8"?><GetInfo platform="Linux" product="Signalyst HQPlayer 4 Embedded" version="4">GENERIC BUILD</GetInfo>

but It never returns to the command line after execution.

 

Any other solutions are welcome, saw the hqp-control source files, but don't know how to compile them.

 

Thanks for a great piece of software.

 

 

 

The control connection is persistent, it doesn't close automatically so what happens is that you get your response and the server waits for other commands. You can use something like socat that automatically closes the connection after it gets a response:

 

echo '<?xml version="1.0" encoding="utf-8"?><GetInfo />' | socat - TCP:localhost:4321

You should also mind the quotes, they have to be matched thus it's better to use single outside quotes and double quotes in the XML.

 

Link to comment
6 hours ago, bibo01 said:

Sorry if I come back to this, but I don't understand the difference between my method and yours.

By "doubling up" the modulator that runs on ch1 onto ch3,5,7 through matrix mapping, aren't you effectively adding up four times the same result?! What's the difference with me copying the result of ch1 to ch3,5,7 - I still get a drop in noise floor?!

Afterwards, if you want stereo, you're still 8ch->2ch through wire at output, are you?! 

 

When you run such matrix mapping in HQPlayer, each output channel gets it's own modulator. Each modulator produces different output data, even if they get same input data. What is different is the modulator's noise, but not the signal. When you sum up two channels with same signal, but different noise, the noise floor drops by 3 dB, so in this case you get 6 dB of effective noise attenuation.

 

If you just copy the same data to multiple channels, you don't get this effect...

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
7 hours ago, michaelvv said:

Hi

 

I tried the hqplayerd and it worked fine with the gentooplayer.

 

I would like to be able to play music directly from the hqplayerd command line. I found some info using curl

 


curl -v -H "text/xml" --data-binary "<?xml version="1.0" encoding="utf-8"?><GetInfo />" http://localhost:4321
* Rebuilt URL to: http://localhost:4321/
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 4321 (#0)
> POST / HTTP/1.1
> Host: localhost:4321
> User-Agent: curl/7.58.0
> Accept: */*
> Content-Length: 45
> Content-Type: application/x-www-form-urlencoded
> 
* upload completely sent off: 45 out of 45 bytes
<?xml version="1.0" encoding="utf-8"?><GetInfo platform="Linux" product="Signalyst HQPlayer 4 Embedded" version="4">GENERIC BUILD</GetInfo>

but It never returns to the command line after execution.

 

Any other solutions are welcome, saw the hqp-control source files, but don't know how to compile them.

 

Thanks for a great piece of software.

 

There is source code for hqp-control utility on the same page where you can find HQPlayer Embedded. That gives you command line utility to use that API... It is not HTTP protocol, so using curl is not very good.

 

The utility is very easy to build on any platform (Linux, macOS, Windows...), you need qt5 toolkit and then you first run "qmake" (or sometimes "qmake-qt5" on Linux) and then "make" (on Windows "nmake"). That's it.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
1 hour ago, Miska said:

 

When you run such matrix mapping in HQPlayer, each output channel gets it's own modulator. Each modulator produces different output data, even if they get same input data. What is different is the modulator's noise, but not the signal. When you sum up two channels with same signal, but different noise, the noise floor drops by 3 dB, so in this case you get 6 dB of effective noise attenuation.

 

If you just copy the same data to multiple channels, you don't get this effect...

 

I realize that noise floor drops, but this happens very clearly with Ravenna channel mapping too. I have a feeling that Ravenna's and HQPlayer channel mapping achieve similar results. This doubt of mine will be cleared only by personal testing. :)  

Link to comment
1 minute ago, bibo01 said:

I realize that noise floor drops, but this happens very clearly with Ravenna channel mapping too. I have a feeling that Ravenna's and HQPlayer channel mapping achieve similar results. This doubt of mine will be cleared only by personal testing. :)  

 

That only copies the same data to multiple channels. So there's notable difference.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
1 hour ago, Miska said:

Each modulator produces different output data, even if they get same input data. What is different is the modulator's noise

 

I assume you mean the dither noise is uncorrelated for each channel.  The modulator function downstream from the dither should be completely deterministic (non-random).  In other words, if HQP hypothetically supported dithering each channel independently and then mixing them at the input of a single modulator, you'd get the same noise reduction as using separate modulators.

HQPlayer (on 3.8 GHz 8-core i7 iMac 2020) > NAA (on 2012 Mac Mini i7) > RME ADI-2 v2 > Benchmark AHB-2 > Thiel 3.7

Link to comment
2 minutes ago, Bob Stern said:

I assume you mean the dither noise is uncorrelated for each channel.  The modulator function downstream from the dither should be completely deterministic (non-random).  In other words, if HQP hypothetically supported dithering each channel independently and then mixing them at the input of a single modulator, you'd get the same noise reduction as using separate modulators.

 

No, certainly not... :D

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

Hi @Miska ,

You may have answered this before but I wasn't able to find it. Are there any major differences between HQPlayer on linux, HQEmbedded with Ubuntu Server, and HQPlayer on Win 10 in terms of.............I'm not sure really......SQ is subjective so maybe a more objective measure would be how the information is processed or if there is somehow a difference in the output of information.

 

I don' t know if you can comment on audiophile optimizer at all but does it make a difference when used with HQplayer?

Link to comment
On 3/4/2019 at 11:38 PM, Miska said:

 

That may have something to do with the driver, or actually Butler binary, but it is not related to the HQPlayer. There is normal Linux ALSA driver interface between the two.

 

Ravenna has no way of knowing anything about HQPlayer's matrix pipeline. It only knows HQPlayer is putting out 8 channels. You then need to connect those eight channels to corresponding DAC channels.

 

If you look at HQPlayer Desktop log file about the pipeline initialization you can see it looks the same with 0-based channels. If pipeline matrix is configured same way on both, it should work the same. Same filter files uploaded for the same pipelines.

 

But I cannot imagine anything automatic setting up the routing at Ravenna side any other way than 1:1 channel mapping... (you can anyway verify from Aneman)

 

Hi,

I managed the Problem with filters! Accidentally converted the original 96Khz Files to wav. under Acourate connected as 48Khz. Music is playing correctly with 8 channels now!

what wonders me: at my laptop (Win 7 Pro) although HQPlayer plays the whole number of files one after the other, in the display it remains freezed with track 1.

if At the same time I connect through safari in my iPad, tracks are correctly assigned.

cheers

sigi

Link to comment
2 minutes ago, Sigi said:

I managed the Problem with filters! Accidentally converted the original 96Khz Files to wav. under Acourate connected as 48Khz. Music is playing correctly with 8 channels now!

 

OK, great! :)

 

3 minutes ago, Sigi said:

what wonders me: at my laptop (Win 7 Pro) although HQPlayer plays the whole number of files one after the other, in the display it remains freezed with track 1.

if At the same time I connect through safari in my iPad, tracks are correctly assigned.

 

That is probably due to local caching by the browser. Different browsers handle this differently. I think I need to check once again that I flag the pages non-cacheable.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
1 hour ago, Miska said:

 

OK, great! :)

 

 

That is probably due to local caching by the browser. Different browsers handle this differently. I think I need to check once again that I flag the pages non-cacheable.

 

Hi,

one thing : when I select the filters they are renamed in impulse_01.wav etc. So I can’t control if I selected the right ones. Is there a place where I control if what I selected as filter is located where I wanted it?

 

Link to comment
4 hours ago, Sigi said:

one thing : when I select the filters they are renamed in impulse_01.wav etc. So I can’t control if I selected the right ones. Is there a place where I control if what I selected as filter is located where I wanted it?

 

Because files are uploaded through browser they need some special handling so that for example over time the system doesn't collect large amount of unused files or get otherwise inconsistent. For example someone who is uploading filters could have all with same file name but in different folders like "left/filter.wav" and "right/filter.wav", however this folder structure doesn't come along with the files, so the two names would conflict, etc... So when HQPlayer is storing the files being uploaded it renames the files according to the channel they where uploaded for.

 

If you manually edit and maintain the configuration file instead of web interface, you of course have full freedom to place the files where you want with any file name you want. For some of my servers I do things this way (I use ssh to login to the server and just edit the config file manually).

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
1 hour ago, Miska said:

 

Because files are uploaded through browser they need some special handling so that for example over time the system doesn't collect large amount of unused files or get otherwise inconsistent. For example someone who is uploading filters could have all with same file name but in different folders like "left/filter.wav" and "right/filter.wav", however this folder structure doesn't come along with the files, so the two names would conflict, etc... So when HQPlayer is storing the files being uploaded it renames the files according to the channel they where uploaded for.

 

If you manually edit and maintain the configuration file instead of web interface, you of course have full freedom to place the files where you want with any file name you want. For some of my servers I do things this way (I use ssh to login to the server and just edit the config file manually).

 

 

I think you didn’t understood what I meant:

If by example instead of filter for left channel cor2L.wav I downloaded by error cor2RL.wav,  it will be converted to impulse_01. wav

How can I check, that I have made the wrong download?

Link to comment
10 hours ago, Miska said:

 

There is source code for hqp-control utility on the same page where you can find HQPlayer Embedded. That gives you command line utility to use that API... It is not HTTP protocol, so using curl is not very good.

 

The utility is very easy to build on any platform (Linux, macOS, Windows...), you need qt5 toolkit and then you first run "qmake" (or sometimes "qmake-qt5" on Linux) and then "make" (on Windows "nmake"). That's it.

 

 

Thanks it worked like a dream. 🙂

 

If any other is interested, this is what I have been doing.

 

apt install qt5-default build-essential
qmake
make

Link to comment
20 minutes ago, Sigi said:

I think you didn’t understood what I meant:

If by example instead of filter for left channel cor2L.wav I downloaded by error cor2RL.wav,  it will be converted to impulse_01. wav

How can I check, that I have made the wrong download?

 

For example on Linux you can use "md5sum" to compute MD5 hash of the files. And then you can compute the same on your originating computer and compare if they match. macOS also comes with a command line tool to compute MD5 and other hashes, I just don't remember out of my head right now how it was called. On Windows there's for example "fciv" from Microsoft that can compute both MD5 and SHA1.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment

Hi ,

am tying to connect Roon through HQPlayer with Hapi.

can you help ? 

Roon recognized Ravenna-alsa, but I don’t see how I can setup in Roon the 8 channels. The matrix in HQPlayer seems  to have no effect. I get 2 channels playing in Hapi. Roon offers 2 channels or sourrond till 7.1 and what should I select for multichannel ?

cheers

Sigi

Link to comment
4 hours ago, Sigi said:

am tying to connect Roon through HQPlayer with Hapi.

can you help ? 

Roon recognized Ravenna-alsa, but I don’t see how I can setup in Roon the 8 channels. The matrix in HQPlayer seems  to have no effect. I get 2 channels playing in Hapi. Roon offers 2 channels or sourrond till 7.1 and what should I select for multichannel ?

 

Don't enable the ALSA interface in Roon, but configure Roon to output 7.1 channel to HQPlayer. And tell it to do only channel mapping under advanced settings. And stereo sent as stereo. That way it works the same way as you would play locally within HQPlayer.

 

I'm using this since I don't have any 7.1 content, only up to 5.1:

1788321358_ScreenShot2019-01-06at15_04_31.png.a46fa066b42eaf3b9c1a854b74ae5c86.png

 

If your intention is to send just stereo and let HQPlayer do the previously discussed matrix, you don't need to do any of this, just leave it as it is by default.

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
On 3/7/2019 at 10:13 PM, Miska said:

 

Don't enable the ALSA interface in Roon, but configure Roon to output 7.1 channel to HQPlayer. And tell it to do only channel mapping under advanced settings. And stereo sent as stereo. That way it works the same way as you would play locally within HQPlayer.

 

I'm using this since I don't have any 7.1 content, only up to 5.1:

1788321358_ScreenShot2019-01-06at15_04_31.png.a46fa066b42eaf3b9c1a854b74ae5c86.png

 

If your intention is to send just stereo and let HQPlayer do the previously discussed matrix, you don't need to do any of this, just leave it as it is by default.

 

Hi,

with default Roon sends Stereo to HQPlayer and 8 channel matrix is done by HQ. Works fine but:

1. If I stop the track and select other track For playing nothing happens.

2. I have to go to HQ Menu and select the button apply!

3. Then I can start the new track

4. Qued tracks play without problem one after the other if not stopped.

 

Link to comment
1 hour ago, Sigi said:

with default Roon sends Stereo to HQPlayer and 8 channel matrix is done by HQ. Works fine but:

1. If I stop the track and select other track For playing nothing happens.

2. I have to go to HQ Menu and select the button apply!

3. Then I can start the new track

4. Qued tracks play without problem one after the other if not stopped.

 

That is one of the bugs in the Ravenna ALSA driver... It doesn't start playback again after stopping once, unless the entire device is closed and reopened...

 

Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Link to comment
10 hours ago, Miska said:

That is one of the bugs in the Ravenna ALSA driver... It doesn't start playback again after stopping once, unless the entire device is closed and reopened...

 

Yikes. Are Merging already aware?

 

I know the driver is relatively new-ish.

Link to comment
3 hours ago, arglebargle said:

Thanks kindly. I can’t believe 18.04 shipped what seems to me a fundamentally flawed systemd-resolved as default but other than that the install was painless!

 

Yeah, I am not a fan of 18.04.  They install a lot of stuff not needed as part of bare bones system and their mini install is able to boot under UEFI but will not install the required UEFI stuff after finishing the install.

 

For now I am sticking with Debian Stretch, since I do not have any plans to install CUDA support.

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...