Jump to content
IGNORED

Manage HQPlayer playlist from Foobar2000


bogi

Recommended Posts

I created an easy solution to send tracks from Foobar2000 music library to HQPlayer playlist.

 

My solution is yet dirty. I created a youtube video to demonstrate it to you. I am interested for your opinion about such a solution. If you find it useful, or if you have some ideas how to improve my solution, let discuss it in this thread.

 

Key points of this solution:

  • Foobar2000 music library capabilities are on higher level than HQPlayer's. In fact, Foobar2000 is not only player, it is powerful library manager, music tagger, converter etc. Hence the idea to use Foobar2000 capabilities with HQPlayer.
  • HQPlayer does not support DSP or VST plugins. Because of I am using headphones, I am missing the possibility to apply crossfeed or stereo to binaural plugin in HQPlayer. My solution allows to use any Foobar2000 compatible DSP or VST plugin. This applies only to PCM tracks.
  • HQPlayer does not provide special support to play tracks from RAM disk. More CA members pointed ot better sound quality when noise from using SATA or USB hard disk is avoided. My solution copies tracks to RAM disk, creates temporary playlist from RAM disk tracks and sends that playlist to HQPlayer.
  • For PCM, more CA users pointed to better sound quality when playing WAV files than FLAC files. Does less processing lead to less noise? Maybe ... I'm simply trying that in my solution too.
  • DSD files are not processed, they are simply copied to RAM disk.

 

Here is the video:

 

What you see on my video (maybe I will add yet some annotations directly to the video):

I am creating 3GB RAM disk using free SW IMDISK. I simply followed this: How to Create a 10 GB/s RAM Disk in Windows • TekRevue

  • I am showing you Foobar2000 Converter configuration my solution is using. You can see conversion to WAV, RAM disk as conversion destination and selection of Meier crossfeed DSP (optional).
  • I am selecting an album (FLAC tracks) in Foobar2000 'Library Viewer Selection' playlist and I am sending it to HQPlayer playlist. Conversion to WAV, applying Meier crossfeed and copying to RAM disk is performed.
  • I am selecting few more FLAC tracks from other album and adding them to HQPlayer playlist.
  • Then I am demonstrating reorganization of HQPlayer's playlist using Foobar2000. I am using Foobar2000 autoplaylist feature for this. The playlist AUDIO is used to show RAM disk content in Foobar2000. What I did: I cleared HQPlayer's playlist. Then I removed some tracks from RAM disk, I used Foobar2000 interface for that. Then I reordered tracks in the RAM disk autoplaylist and sent it's content to HQPlayer.
  • Finally, I added some DSD tracks to HQplayer's playlist.

 

My solution uses hqp-control.exe and Foobar2000 plugins foo_runcmd, foo_texttools.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

The key point is how to invoke a set of actions, related to Foobar2000 environment.

 

In my solution, which is designed to run on Windows PC, the actions are invoked by clicking on icon outside of Foobar2000. It starts .bat script and that script calls foobar2000 executable with specific parameters to perform specified actions within Foobar2000 environment, see Components for foobar2000 So with my current solution you need to select album(s) or track(s) in Foobar2000 and to invoke a script outside of Foobar2000.

 

Other solution could be to change Foobar2000 GUI to create a new button inside Foobar2000 and to define set of actions for that button press event using foo_scheduler. But that would depend on the type of Foobar2000 GUI on Windows PC.

 

Currently I have no idea how a set Foobar2000 related actions + some actions outside Foobar2000 could be invoked otherwise. That may be limiting factor if you want to use such a solution on mobile device. With my current solution you would need to have possibility to start a bat script on Windows computer remotely.

 

I am not familiar with using Android/iPhone remote control for Foobar2000. I am open to try it on Android. But I am unsure if some remote controller SW is able to run custom actions on Windows computer. That's must for such a solution. If you Geoff or someone else has an idea, please let me know.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

Geoff, you can try something like this:

 

rem set your parameters
set FOOBAR=%ProgramFiles(x86)%\foobar2000\foobar2000.exe
set ORIGPLAYLIST=R:\playorig.m3u8
set DESTPLAYLIST=R:\playdest.m3u8

set TOOLDIR=%~dp0
"%FOOBAR%" /playlist-activate:"Default"
"%FOOBAR%" /show && "%FOOBAR%" /command:"Select all"
"%FOOBAR%" /runcmd-playlist="Utilities/Text Tools/Copy: File path"
"%TOOLDIR%\paste.exe" > %ORIGPLAYLIST%

rem add processing of files from %ORIGPLAYLIST% here and generate %DESTPLAYLIST%

"%TOOLDIR%\hqp-control.exe" localhost "%DESTPLAYLIST%"

 

Notes:

 

  • for "%FOOBAR%" /playlist-activate:"Default" to work you need to copy foo_cmd_playist.dll to Foobar components directory
    substitute "Default" with playlist name you use
  • for "%FOOBAR%" /runcmd-playlist="Utilities/Text Tools/Copy: File path" to work you need to copy foo_runcmd.dll to Foobar components directory
    The command will fill PC clipboard with full pathnames of selected track files
  • Then clipboard content written to file %ORIGPLAYLIST%
    I am using paste utility for it
  • I am assuming this script and tools it is using are placed in the same directory, then you can set and use TOOLDIR as in the example script

Your custom processing may change music files. After processing you may need to generate new playlist for HQPlayer. In the example I am using %DESTPLAYLIST% as the playlist sent to HQPlayer.

 

I didn't try Primo Ramdisk, I searched for something free.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

The conversion idea I'm using is that the conversion is set in Foobar2000 environment as you see on the beginning of my video. I am not changing anything here, I am only showing my configuration. I named my setup as 'Meier' because I'm using Meier crossfeed, byt you can create your conversion setup and save it under any preset name. Then the conversion is called externally for selected playlist items by call

 

"%FOOBAR%" /runcmd-playlist="convert/Meier"

 

I will send you my current script via PM and you can try to combine the suggestion from my previous post with my current solution. It could be quite straightforward .

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
Interesting, thanks. Anyone compared SoftPerfect with Primo?

 

I could not hibernate my notebook with SoftPerfect RAM disk, I had to remove RAM disk. Further, it happened me repeatedly yesterday that after copying files to RAM disk playback in HQPlayer was interrupted. I will yet play with settings, but probably I will try some other RAM disk tool.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

After a reboot SoftPerfect RAM disk seems to work correctly. Hybernation was possible and HQPlayer doesn't react more to adding files to playlist during playback.

 

I compared Primo (trial) and Softperfect RAM disk. Regarding speed, I didn't observe difference. Regarding sound, SoftPerfect seems to sound more airy, more detailed and more bright. With bright recording on rather bright sound device chain in may be inconvenient. On darker chain it may be welcome. Geoff, try it self, it has sense.

 

EDIT:

 

I didn't thought RAM disk can be so big improvement. I am always surprised when I found that sound of my relatively cheap setup can be still improved. IMO SoftPerfect RAM disk is more detailed than Primo, with good quality recordings, which are not too bright, it sounds amazingly.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
  • 1 month later...
Bogi,

I am wondering if you have made anymore progress on this Foobar2000 method. I have just finished installing Foobar on my new machine. I would certainly like to try this if there is a step by step guide. Thanks.

 

My latest improvement is handling of insufficient space in RAM disk. I am using Foobar Converter. It is very fast and powerful, it can process so much tracks in parallel as is the number of cores. But it leaves incompletely converted files if the destination folder has not enough space to complete running conversions. I added special processing to detect and delete incompletely converted files. Only completely processed tracks are sent to HQPlayer playlist.

 

Another feature I didn't mention yet in this thread is support for CUE + image per album. I know people who resist to try HQPlayer because they have significant part of their music library organized this way.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

I am working on the step by step guide currently. I will not release it before the next HQPlayer version. The version 3.7.1 has one bug when adding tracks to existing HQPlayer playlist and the only newer version is beta.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
Thanks! I shall look forward to it. I have spent quite a bit of time to implement the foobar skin that i absolutely love now. Cant wait to use it to navigate and manage playlists.

 

OK. :) When you are so waiting for my work, I just finished the 1st version of the manual.

Find the initial version SendToHQP v1.0.0 here: https://drive.google.com/uc?export=download&id=0B1IZPbDClIn6WmVyUDlkbC1rbk0

 

ATTENTION: Currently it works only with the latest HQP beta!! http://www3.signalyst.com/bins/HQPlayerDesktop3-setup-380b1.exe

 

It's only free time activity for me and I have limited amount of free time ... So please report here if something isn't clear or doesn't function as expected, but be patient until I am able to process the questions.

 

Also, foobar has a component called RmDisk. Have you ever used it?

 

I tried that foobar2000 RAM disk component but didn't find a difference worth to use it. It seems that RAM disk implementation matters.

 

For SendToHQP I recommend to use SoftPerfect RAM disk.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

2 corrections:

 

1)

 

If you don't use DSP while converting PCM tracks to WAV in RAM disk, substitute the line

 

"%TOOLDIR%\cmdow.exe" /b | findstr "Converting (DSP)"

 

with

 

"%TOOLDIR%\cmdow.exe" /b | findstr "Converting"

 

2)

 

The PDF document correctly contains link

foobar2000: Components Repository - Text Tools

but the hyperlink leads to foo_utils. Use foo_texttools from the previous line.

 

 

General hint for testing:

 

You can add command

pause

anywhere in the script, for example at the end. This way in the case of troubles you can see the script output. You can click to the top left icon of the Command Prompt window and use Edit | Select All and Edit | Copy to copy all window content as text to clipboard.

To allow more than last 300 lines of output from Command Prompt window, you can set value for example 3000 in Properties | Layout | Screen Buffer Size | Height (through the same top left icon).

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
Bogi, if my music is already in AIFF (one of the uncompressed WAV formats), I supposed i don't have to do step (1) right?

Thanks,

OpusOne

 

DSP (Digital Signal Processing) and format conversion are different things. DSP is for example equalization or for example crossfeed for more natural listening on headphones I am using. You probably don't need DSP, because you didn't mention that.

 

The line

"%TOOLDIR%\cmdow.exe" /b | findstr "Converting"

will always function well - with or without DSP.

 

The command is used to check, if window with title containing "Converting" still exists. It is used for waiting to foobar2000 Converter until it finishes conversion.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

Please read the PDF manual. In this case the last chapter is relevant. All PCM files are converted to WAV in RAM disk, no matter on input PCM format.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
Hello Bogi,

I forgot to mention that in order to make it work here, I had to disable the DSP conversion option (MathAudio Room EQ).

First trial resulted in converted files that were large in size as any .WAV normally are, but with no sound at all... Guess that is a problem from the Foobar conversion with MathAudio DSP, nothing to do with your solution.

Once the DSP conversion was disabled it began to work just fine and also much faster!

 

I don't know MathAudio Room EQ, thanks for sharing your experience. You can test the Converter setup interactively before testing it with my script.

 

HQPlayer contains it's own support for room correction, so if you cannot use MathAudio Room EQ, you can try that one. There are people using it in the CA forum.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
Bogi, Thx a bunch. I have look through the documentation and it is definitely of high quality. I am still not running the new HQP beta, so i cannot run through the whole thing. Hopefully, Miska will release whatever you are waiting for soon.

 

After small adaption you can run the script with HQPlayer 3.7.1, but the following bug will appear:

 

~~~~~~~~~~~~~~~~

When some tracks already appear in HQPlayer Desktop playlist and new playlist is sent to HQPlayer Desktop via hqp_control, tracks from the added playlist are correctly appended to the end of HQPlayer playlist, but focus unexpectedly becomes the first track in HQPlayer playlist. Playback is not stopped, but HQPlayer is now messed. The 1st track typically has different length than the track which is playing. I already become a negative number in Remain time field. 3B49BED161F042D888055900B22E8AAF@bogipc Playback then wants to continue with the 2nd track in HQPlayer playlist.

 

Special case - when the 1st track is PCM track, the currently playing track is DSD track and the playlist added via hqp_control contains PCM tracks: Focus again goes to 1st track in HQPlayer playlist, but in this case unexpected behavior occurs. HQPlayer stops playback, or plays the track on much higher speed. When DSD track playback is then manually started again, it can play on much slower speed. Clearing playlist and starting form beginning helps.

~~~~~~~~~~~~~~~~

 

The adaption for 3.7.1 is is to change --playlist-clear with --clear

 

Substitute the line

set CLEARCMD="%TOOLDIR%\hqp-control.exe" localhost --playlist-clear

with this one:

set CLEARCMD="%RDDRIVE%\HQPlayer\hqp-control.exe" localhost --clear

 

Other point, regardless on HQPlayer version:

SendToHQP script is calling hqp-control.exe from the folder where you collected SendToHQP.bat, cmdow.exe, paste.exe, join.exe. So you have to copy hqo-control.exe here too.

Better soluton is: In lines beginning with set CLEARCMD= and set SENDPLAYLISTCMD= substitute "%TOOLDIR%\hqp-control.exe" with "%RDDRIVE%\HQPlayer\hqp-control.exe" (like in the 3.7.1 adaption few lines above).

This small change will be part of the next version.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
  • 3 weeks later...

New SendToHQP version 1.0.2 changelog:

- User can now choose an intermediate PCM file format for RAM disk: WAV, AIFF or FLAC

- Music tracks in PCM formats supported by HQPlayer (FLAC, WAV, AIFF) can be now copied to RAM disk without converting them to an intermediate format.

- Added limited support to send DVD audio ISO and SACD ISO content to HQPlayer

 

Find more details in the PDF guide.

 

Download: https://drive.google.com/uc?export=download&id=0B1IZPbDClIn6Q3ppcDE3bldPODA

 

Pre-requisite: HQPlayer Desktop 3.8.0b3 or newer

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
  • 2 weeks later...
launching the batch file doesn't bring to life any conversion of files and therefore no feeding to HQPlayer.

 

Instead, the batch works perfectly with native WAV files. BTW, the convertion launched from Foobar works fine too.

 

Hi tranfa, what's your shortcut setup and Converter setup? Pictures could help.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
  • 3 weeks later...

I just returned from holiday, I will look at your issue. One idea: Try to disable transferring pictures with Foobar Converter (save the change to your setup 'Pietro'). That's one difference between our setup (compare your setup and the picture from PDF). I'm not sure if transferring pictures works well in automated mode.

 

The bat script contains line:

"%FOOBAR%" /runcmd-playlist="convert/%CONVPRESET%"

With environment variables expanded, it should be in your case something like:

"C:\Program Files (x86)\foobar2000\foobar2000.exe" /runcmd-playlist="convert/Pietro"

That command should result to the same conversion as the interactive conversion in foobar2000 environment.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

The original MP3 file does not have to appear in RAM disk, only the conversion result. How did it happen that it is stored in RAM disk? Try to remove it and then invoke SendToHQP shortcut again.

 

The usage scenario is: You have your music library located outside of RAM disk. You select some tracks from that library in a foobar2000 playlist. When you invoke the SendToHQP shortcut, conversion results are stored in RAM disk. Then temporary playlist has to be created from them (in root of RAM disk). Then that temporary playlist is sent to HQPlayer.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

I see on your picture you are doing resampling with SoX mod and yet something during conversion ... Why are you resampling in foobar2000 when HQPlayer does this job better? Maybe that prevents from successful conversion. Try to disable any DSP during conversion.

 

Although lossy MP3's are not the file type recommended for HQPlayer, I just tried some MP3's with SendToHQP and it worked fine. MP3s were converted to WAWs in RAM disk.

 

Please be sure you select tracks of the same type in foobar2000 (for example only MP3s, or only FLACs). Then it is easier to isolate your issue.

 

Please note also this my post: http://www.computeraudiophile.com/f11-software/hq-player-20293/index119.html#post449434

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment
the issue is exactely the fact that in my setup the script doesn't convert but just copies the file....

 

When you invoke the Converter preset Pietro interactively from foobar2000 environment, then MP3s are converted to WAWs or not?

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

Does the command like

"C:\Program Files (x86)\foobar2000\foobar2000.exe" /runcmd-playlist="convert/Pietro"

convert MP3 to WAV in RAM disk or does it only copy MP3 file to RAM disk?

 

Do you see the foobar's conversion progress bar window titled 'Converting ...' when the action is done from the SendToHQP script?

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
Link to comment

Please add a single line containing only

pause

to the end of SendToHQPlayer.bat and run it again.

 

The processing will be paused at the end, a line Press any key to continue . . . will display.

Then use the upper left Command Prompt window icon to copy window content to clipboard:

Edit > Select All

Edit > Copy

Paste the clipboard content to any text editor. Send me that content in any way.

i7 11850H + RTX A2000 Win11 HQPlayer ► Topping HS02 ► 2x iFi iSilencer ► SMSL D300 ► DIY headamp DHA1 ► HiFiMan HE-500
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...