Thursday, October 08, 2015
MQn setup
MQn sounds great, but it's a little tricky to setup, the instructions (at least as of now) are incomplete. So I decided to add a blog post to help others set it up.
Note that I'm using a Haswell based Xeon CPU, a E3-1225 V3.
I'm not sure if MQn works with a non haswell based CPU now.
OS is Windows Server 2012 R2.
EDIT Jan 26, 2016 (sounds really good):
Blog updated to install mqn from the zip file.
I have not tried mqnrewrite yet, so no instructions for that yet. I do have a section for it at the end, with information supplied in the mqn thread.
Here is the blog for MQn
Official mqnplayer blog
Go here to get the files
MQn files
A google drive window should open, select the Main directory folder
Download mqnfiles.zip from Main.
As of Jan 26,2016, it contains the following files:
On your music PC, create a directory called C:\musicplayer
Unzip the files into the musicplayer directory.
rename
mqncontrol.exe haswell v99 (or whatever version it is) to mqncontrol.exe
mqnloader.exe haswell v84 (or whatever version it is) to mqnloader.exe
mqnplay.exe haswell w2012 r2 v224 (or whatever version it is) to mqnplay.exe*
notes:
* If you are using Windows 10, use mqnplay.exe win 10 v224.
Double click on setupmqnparam
It will create mqnparam.txt. If you open mqnparam.txt, it should look similar to this (but only two lines):
\\?\usb#vid_1852&pid_7022&mi_01#6&851d114&0&0001#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\global
0
Now, you're ready to play wav files. Go to a wav file, select it, right click and then select copy
And then go double click on the MQn.bat file. A screen should pop up with the name of the wav file you selected, and it should play music.
At some point, I couldn't use some versions of MQn, they wouldn't play.
I broke my MQn, and it took a little while to recover. So I'd recommend, as soon as you get a working setup, copy all the files to a backup directory, to save the configuration. The files are small, and space is cheap now.
And you can try the different play and control.exe's to see what you like best.
But periodically backup your backup you working directory, so you can recover if things stop working.
Playing FLAC files
EDIT: I figured out how to play FLAC files.
You need to download, and install SOX. I used
sox 14.4.1 files
I used sox 14.4.1a-win32.exe
Just run this program, and let it install sox
I read online that the 1a fixes a problem where they forgot to enable flac. I started with 1, and it didn't work, but 1a works fine. It's not the latest version, but works so I'm using it.
I then tried the mqnflac batch file, but it didn't work.
I made some changes to it, to make it more closely match the mqn batch file, and got it to work.
You can get the new batch file from the directory below.
shared directory with new file
If you install sox, and change the mqn.bat file to the one in my shared directory, you should be able to play flac files.
It is also included below:
@echo off
cd c:\musicplayer
Title MQn - Just good music
rem stop other instances of program if they are currently playing
taskkill /fi "PID gt 0" /IM mqnplay.exe /F >nul
taskkill /fi "PID gt 0" /IM mqnloader.exe /F >nul
taskkill /fi "PID gt 0" /IM mqncontrol.exe /F >nul
rem delete old file
del Files.txt /q
rem changing pag
FOR /F "tokens=*" %%A IN ('CHCP') DO FOR %%B IN (%%~A) DO SET CodePage=%%B
rem chcp 65001
rem paste from clipboard to param file
paste > param.txt
rem following converts flac file to wav, in the musicplayer directory
rem first delete any wav files in musicplayer dir
del *.wav /q
rem If a single file only, convert it from flac to wav using sox
for /F "usebackq delims==" %%i IN (`sort param.txt ^| FIND ".flac"`) do "C:\Program Files (x86)\sox-14-4-1\sox.exe" "%%i" "%CD%\%%~ni.wav" && echo %%~ni.wav >> File1.txt
if exist File1.txt goto :wav
rem if a flac folder, convert contents of folder to wav files in musicplayer dir
for /F "usebackq delims==" %%i IN (`sort param.txt`) DO for /f "delims=" %%f in ('dir /b "%%i\*.flac"') do "C:\Program Files (x86)\sox-14-4-1\sox.exe" "%%i\%%f" "%CD%\%%~nf.wav" && echo %%~nf.wav >> File1.txt
if exist File1.txt goto :wav
rem for a wav file
for /F "usebackq delims==" %%i IN (`sort param.txt ^| FIND /I ".wav"`) do echo %%i >> File1.txt
if exist file1.txt goto :wav
rem for a wav folder
for /F "usebackq delims==" %%i IN (`sort param.txt`) DO for /f "delims=" %%f in ('dir /b "%%i\*.wav"') do echo %%i\%%f >> Files1.txt
:wav
rem remove cr/lf from last line
setlocal DisableDelayedExpansion
set "firstLineReady="
(
for /F "eol=$ delims=" %%a in (File1.txt) DO (
if defined firstLineReady (echo()
set "firstLineReady=1"
)
) > Files.txt"
del File1.txt /q
rem CHCP %CodePage%
cls
set TIMESTAMP=%TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2%
echo Playback commenced - %timestamp%
echo.
for /F "usebackq delims==" %%i IN (`sort Files.txt`) do echo %%~ni
echo.
rem lets play music
MQncontrol --file ".\Files.txt"
exit
@echo on
Foobar
The two problems with mqn is getting it to work, and the user interface.
Hopefully this blog will with the first one. For the 2nd one, MQn will work with foobar, so if you're ok with foobar, the UI problem is solved
First off, get MQn working with flac files per the instructions above. Then if you don't already use foobar, install it, and get foobar working.
For some reason, if I used MQn, I need to reset my PC before foobar will work.
After foobar works, install scheduler and run command.
Here is where I downloaded the zip files from. Just click on download under links
foobar scheduler
foobar run cmd
Download the zip files. I usually install through foobar.
Click on File, Preferences, Components
Click on Install button in lower left corner
If you did default download, go to download directory, double click on the
foo_runcmd-1.1-20100107.zip
Click on Apply and let foobar restart
Repeat this for
foo_scheduler.zip
Now click on File, Scheduler, Preferences,
Click the Add in the middle by Action lists
Type playmqn, and you should get this
Right click playmqn, "Add Action" then "Stop playback"
This reason for this step is kind of self explanatory. It tells foobar not to play the song. So foobar doesn't think its really playing a song.
Right click playmqn, "Add Action" then "Launch application", then type
C:\Program Files (x86)\foobar2000\foobar2000.exe /runcmd-playlist=Copy
The start of this (C:\Program Files (x86)\foobar2000\) needs to point to where your foobar2000.exe file is
This step copies whatever is in the playlist to the clipboard. It is equivalent to when you right click on a song file, and then select copy.
BTW, I think this step is why remote control software like monkeymote is not working correctly, but I can't figure out what to change to make it work.
Right click playmqn, "Add Action" then "Launch application",
This needs to point to where MQnload.exe is
If you want to used MQn.bat,
Right click on that, select Assign action list, then select playmqn
click apply again
Scheduler enabled box should be checked
Click preferences, playback, output set the device to null output
Click on preferences, shell integration then tick the always send new files to playlist Default option
I'm trying to get remote software working with this, so I can control foobar with either a ipad or my android phone.
So far, not working correctly. I've tried monkeymote (ipad) foobar2000 controller (android) and foobarcon (android).
MQnstop batch file
The mqnstop file didn't work for my until I added these two lines to it
taskkill /fi "PID gt 0" /IM mqnplay.exe /F >nul
taskkill /fi "PID gt 0" /IM mqncontrol.exe /F >nul
MQN rewrite
uploaded mqnrewrite haswell v2
need to create a directory called mqnrewrite and mqnrewrite\out
open a cmd window
cd \
md mqnrewrite
cd mqnrewrite
md out
close the window
copy mqnrewrite.exe to mqnrewrite
copy the track you want to rewrite to mqnrewrite directory
rename it to test.wav
double click on mqnrewrite
wait until process has finished
rewritten test.wav file will be in the out directory
play as usual
I think there is an improvement, not sure whether to incorporate it in mqn or make it standalone.
would be quite easy to have a batch process to copy/rename/rewrite/rename in a loop
not suitable for copying other types of files because it misses a few bytes off the end
uploaded mqnrewrite.bat
copy it to c:\mqnrewrite
also copy paste.exe to c:\mqnrewrite (it's in the same folder as mqn.bat eg c:\musicplayer or can be downloaded)
then just use it like mqn ie copy files or folder to the clipboard and double click on mqnrewrite.bat
the rewritten files will be in the c:\mqnrewrite\out folder
don't delete your original source files as the rewritten files are a few bytes smaller, I'll fix that sometime.
tried rewriting an already rewritten file and sounds different again. If it's better I'll alter mqnrewrite.bat to rewrite twice, worth a try.
seems to take a bit of edge/treble away, not sure that's a good thing. Some tracks sound better than others.
@echo off
cd c:\mqnrewrite
Title MQnRewrite - Just good music
rem taskkill /fi "PID gt 0" /IM mqnplay.exe /F >nul
rem taskkill /fi "PID gt 0" /IM mqnloader.exe /F >nul
rem taskkill /fi "PID gt 0" /IM mqncontrol.exe /F >nul
rem net stop "Desktop Window Manager Session Manager"
del Files.txt /q
FOR /F "tokens=*" %%A IN ('CHCP') DO FOR %%B IN (%%~A) DO SET CodePage=%%B
paste > param.txt
rem echo off
rem file
for /F "usebackq delims==" %%i IN (`sort param.txt ^| FIND /I ".wav"`) do echo %%i >> File1.txt
if exist file1.txt goto :crlf
rem folder
for /F "usebackq delims==" %%i IN (`sort param.txt`) DO for /f "delims=" %%f in ('dir /b "%%i\*.wav"') do echo %%i\%%f >> File1.txt
:crlf
rem remove cr/lf from last line
setlocal DisableDelayedExpansion
set "firstLineReady="
(
for /F "eol=$ delims=" %%a in (File1.txt) DO (
if defined firstLineReady (echo()
set "firstLineReady=1"
)
) > Files.txt"
del File1.txt /q
echo files to rewrite
for /F "usebackq delims==" %%i IN (`sort Files.txt`) do echo %%~ni
echo starting rewrite
for /F "usebackq delims==" %%i IN (`sort Files.txt`) do (echo %%~ni & copy "%%i" c:\mqnrewrite\test.wav & start /wait mqnrewrite & ren c:\mqnrewrite\out\test.wav "%%~ni%%~xi")
echo rewrite complete
pause
@echo on
exit
Note that I'm using a Haswell based Xeon CPU, a E3-1225 V3.
I'm not sure if MQn works with a non haswell based CPU now.
OS is Windows Server 2012 R2.
EDIT Jan 26, 2016 (sounds really good):
Blog updated to install mqn from the zip file.
I have not tried mqnrewrite yet, so no instructions for that yet. I do have a section for it at the end, with information supplied in the mqn thread.
Here is the blog for MQn
Official mqnplayer blog
Go here to get the files
MQn files
A google drive window should open, select the Main directory folder
Download mqnfiles.zip from Main.
As of Jan 26,2016, it contains the following files:
On your music PC, create a directory called C:\musicplayer
Unzip the files into the musicplayer directory.
rename
mqncontrol.exe haswell v99 (or whatever version it is) to mqncontrol.exe
mqnloader.exe haswell v84 (or whatever version it is) to mqnloader.exe
mqnplay.exe haswell w2012 r2 v224 (or whatever version it is) to mqnplay.exe*
notes:
* If you are using Windows 10, use mqnplay.exe win 10 v224.
Double click on setupmqnparam
It will create mqnparam.txt. If you open mqnparam.txt, it should look similar to this (but only two lines):
\\?\usb#vid_1852&pid_7022&mi_01#6&851d114&0&0001#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\global
0
Now, you're ready to play wav files. Go to a wav file, select it, right click and then select copy
And then go double click on the MQn.bat file. A screen should pop up with the name of the wav file you selected, and it should play music.
At some point, I couldn't use some versions of MQn, they wouldn't play.
I broke my MQn, and it took a little while to recover. So I'd recommend, as soon as you get a working setup, copy all the files to a backup directory, to save the configuration. The files are small, and space is cheap now.
And you can try the different play and control.exe's to see what you like best.
But periodically backup your backup you working directory, so you can recover if things stop working.
Playing FLAC files
EDIT: I figured out how to play FLAC files.
You need to download, and install SOX. I used
sox 14.4.1 files
I used sox 14.4.1a-win32.exe
Just run this program, and let it install sox
I read online that the 1a fixes a problem where they forgot to enable flac. I started with 1, and it didn't work, but 1a works fine. It's not the latest version, but works so I'm using it.
I then tried the mqnflac batch file, but it didn't work.
I made some changes to it, to make it more closely match the mqn batch file, and got it to work.
You can get the new batch file from the directory below.
shared directory with new file
If you install sox, and change the mqn.bat file to the one in my shared directory, you should be able to play flac files.
It is also included below:
@echo off
cd c:\musicplayer
Title MQn - Just good music
rem stop other instances of program if they are currently playing
taskkill /fi "PID gt 0" /IM mqnplay.exe /F >nul
taskkill /fi "PID gt 0" /IM mqnloader.exe /F >nul
taskkill /fi "PID gt 0" /IM mqncontrol.exe /F >nul
rem delete old file
del Files.txt /q
rem changing pag
FOR /F "tokens=*" %%A IN ('CHCP') DO FOR %%B IN (%%~A) DO SET CodePage=%%B
rem chcp 65001
rem paste from clipboard to param file
paste > param.txt
rem following converts flac file to wav, in the musicplayer directory
rem first delete any wav files in musicplayer dir
del *.wav /q
rem If a single file only, convert it from flac to wav using sox
for /F "usebackq delims==" %%i IN (`sort param.txt ^| FIND ".flac"`) do "C:\Program Files (x86)\sox-14-4-1\sox.exe" "%%i" "%CD%\%%~ni.wav" && echo %%~ni.wav >> File1.txt
if exist File1.txt goto :wav
rem if a flac folder, convert contents of folder to wav files in musicplayer dir
for /F "usebackq delims==" %%i IN (`sort param.txt`) DO for /f "delims=" %%f in ('dir /b "%%i\*.flac"') do "C:\Program Files (x86)\sox-14-4-1\sox.exe" "%%i\%%f" "%CD%\%%~nf.wav" && echo %%~nf.wav >> File1.txt
if exist File1.txt goto :wav
rem for a wav file
for /F "usebackq delims==" %%i IN (`sort param.txt ^| FIND /I ".wav"`) do echo %%i >> File1.txt
if exist file1.txt goto :wav
rem for a wav folder
for /F "usebackq delims==" %%i IN (`sort param.txt`) DO for /f "delims=" %%f in ('dir /b "%%i\*.wav"') do echo %%i\%%f >> Files1.txt
:wav
rem remove cr/lf from last line
setlocal DisableDelayedExpansion
set "firstLineReady="
(
for /F "eol=$ delims=" %%a in (File1.txt) DO (
if defined firstLineReady (echo()
set "firstLineReady=1"
)
) > Files.txt"
del File1.txt /q
rem CHCP %CodePage%
cls
set TIMESTAMP=%TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2%
echo Playback commenced - %timestamp%
echo.
for /F "usebackq delims==" %%i IN (`sort Files.txt`) do echo %%~ni
echo.
rem lets play music
MQncontrol --file ".\Files.txt"
exit
@echo on
Foobar
The two problems with mqn is getting it to work, and the user interface.
Hopefully this blog will with the first one. For the 2nd one, MQn will work with foobar, so if you're ok with foobar, the UI problem is solved
First off, get MQn working with flac files per the instructions above. Then if you don't already use foobar, install it, and get foobar working.
For some reason, if I used MQn, I need to reset my PC before foobar will work.
After foobar works, install scheduler and run command.
Here is where I downloaded the zip files from. Just click on download under links
foobar scheduler
foobar run cmd
Download the zip files. I usually install through foobar.
Click on File, Preferences, Components
Click on Install button in lower left corner
If you did default download, go to download directory, double click on the
foo_runcmd-1.1-20100107.zip
Click on Apply and let foobar restart
Repeat this for
foo_scheduler.zip
Now click on File, Scheduler, Preferences,
Click the Add in the middle by Action lists
Type playmqn, and you should get this
Right click playmqn, "Add Action" then "Stop playback"
This reason for this step is kind of self explanatory. It tells foobar not to play the song. So foobar doesn't think its really playing a song.
Right click playmqn, "Add Action" then "Launch application", then type
C:\Program Files (x86)\foobar2000\foobar2000.exe /runcmd-playlist=Copy
The start of this (C:\Program Files (x86)\foobar2000\) needs to point to where your foobar2000.exe file is
This step copies whatever is in the playlist to the clipboard. It is equivalent to when you right click on a song file, and then select copy.
BTW, I think this step is why remote control software like monkeymote is not working correctly, but I can't figure out what to change to make it work.
Right click playmqn, "Add Action" then "Launch application",
then type C:\musicplayer\MQnload.exe
This needs to point to where MQnload.exe is
NOTE: the "official" instructions use MQn.bat here, but since I'm using MQnload to play flac files, I point to MQnload instead.
If you want to used MQn.bat,
instead of C:\musicplayer\MQnload.exe
type C:\musicplayer\MQn.bat
Pointing to where MQn.bat is located.
So, the last line in the action lists window in the screenshot below for playmqn will say
Launch "C:\musicplayer\MQn.bat" instead of Launch "C:\musicplayer\MQnload.exe"
after you're done.
This is the step that actually calls MQnload.exe, or MQn.bat to play a song. As an aside, this really can be anything, if you wanted to use another player instead of MQn.
new note: Since I first did this, I was able to make mqn.bat work for playing flac files, so I changed it to mqn.bat, and it works fine.
type C:\musicplayer\MQn.bat
Pointing to where MQn.bat is located.
So, the last line in the action lists window in the screenshot below for playmqn will say
Launch "C:\musicplayer\MQn.bat" instead of Launch "C:\musicplayer\MQnload.exe"
after you're done.
This is the step that actually calls MQnload.exe, or MQn.bat to play a song. As an aside, this really can be anything, if you wanted to use another player instead of MQn.
new note: Since I first did this, I was able to make mqn.bat work for playing flac files, so I changed it to mqn.bat, and it works fine.
Click on Apply in bottom right
Click on the top Add, by Event, then Add Player Event
Choose On playback start (re-enable event), then OK
Click on the top Add, by Event, then Add Player Event
Choose On playback start (re-enable event), then OK
Right click on that, select Assign action list, then select playmqn
click apply again
Scheduler enabled box should be checked
Click preferences, playback, output set the device to null output
Click on preferences, media library, album list then tick the start playback when sending selection to playlist optionClick on preferences, shell integration then tick the always send new files to playlist Default option
Now you can use foobar as you normally would to play musicI'm trying to get remote software working with this, so I can control foobar with either a ipad or my android phone.
So far, not working correctly. I've tried monkeymote (ipad) foobar2000 controller (android) and foobarcon (android).
MQnstop batch file
The mqnstop file didn't work for my until I added these two lines to it
taskkill /fi "PID gt 0" /IM mqnplay.exe /F >nul
taskkill /fi "PID gt 0" /IM mqncontrol.exe /F >nul
I added them to the end, but it probably doesn't matter where they are
mqnload
This is a utility written by someone else, that makes mqn more usable.
Download it from here
mqnload
get the zip file. Unzip the files into the musicplayer directory.
Read the txt file for instructions, but you can just double click on it, and run it.
First time will take you to a setup screen. You can either select a different MQnControl and MQnPlay file to use, or if you leave it on "none", the ones you have been using will be used.
This makes it easy to try other versions, you just copy the files into the musicplayer directory, and you don't need to change the extension.
And if you want to get to the setup screen later, just push ALT+space. Thats the default hot key to get to the mqnload setup screen.
But the real reason I like mqnload is that it makes it easier to select a song. Just select a song, right click, select "MQn", and it calls MQn and starts playing the song. Or select a song and push F9 (default hot key to play a song), and the song will play. If you select a directory, all songs in the directory will play.
And you can setup to play flac files. The readme tells you how. You just have to download the flac file,
Download: http://www.rarewares.org/lossless.php Choose: FLAC v.1.3.0 win32 bundle OR FLAC v.1.3.0 win64 bundle
I used win64 for Server 2012 r2
Copy it the musicplayer/data directory, and now you can play flacs.
Since I was able to make the flac batch file work, I have stopped using mqnload, and deleted it. I never noticed a difference in sound, but the method below appears to be less obtrusive, so I figured it would be better.
mqnload
This is a utility written by someone else, that makes mqn more usable.
Download it from here
mqnload
get the zip file. Unzip the files into the musicplayer directory.
Read the txt file for instructions, but you can just double click on it, and run it.
First time will take you to a setup screen. You can either select a different MQnControl and MQnPlay file to use, or if you leave it on "none", the ones you have been using will be used.
This makes it easy to try other versions, you just copy the files into the musicplayer directory, and you don't need to change the extension.
And if you want to get to the setup screen later, just push ALT+space. Thats the default hot key to get to the mqnload setup screen.
But the real reason I like mqnload is that it makes it easier to select a song. Just select a song, right click, select "MQn", and it calls MQn and starts playing the song. Or select a song and push F9 (default hot key to play a song), and the song will play. If you select a directory, all songs in the directory will play.
And you can setup to play flac files. The readme tells you how. You just have to download the flac file,
I used win64 for Server 2012 r2
Copy it the musicplayer/data directory, and now you can play flacs.
Since I was able to make the flac batch file work, I have stopped using mqnload, and deleted it. I never noticed a difference in sound, but the method below appears to be less obtrusive, so I figured it would be better.
MQN rewrite
uploaded mqnrewrite haswell v2
need to create a directory called mqnrewrite and mqnrewrite\out
open a cmd window
cd \
md mqnrewrite
cd mqnrewrite
md out
close the window
copy mqnrewrite.exe to mqnrewrite
copy the track you want to rewrite to mqnrewrite directory
rename it to test.wav
double click on mqnrewrite
wait until process has finished
rewritten test.wav file will be in the out directory
play as usual
I think there is an improvement, not sure whether to incorporate it in mqn or make it standalone.
would be quite easy to have a batch process to copy/rename/rewrite/rename in a loop
not suitable for copying other types of files because it misses a few bytes off the end
uploaded mqnrewrite.bat
copy it to c:\mqnrewrite
also copy paste.exe to c:\mqnrewrite (it's in the same folder as mqn.bat eg c:\musicplayer or can be downloaded)
then just use it like mqn ie copy files or folder to the clipboard and double click on mqnrewrite.bat
the rewritten files will be in the c:\mqnrewrite\out folder
don't delete your original source files as the rewritten files are a few bytes smaller, I'll fix that sometime.
tried rewriting an already rewritten file and sounds different again. If it's better I'll alter mqnrewrite.bat to rewrite twice, worth a try.
seems to take a bit of edge/treble away, not sure that's a good thing. Some tracks sound better than others.
@echo off
cd c:\mqnrewrite
Title MQnRewrite - Just good music
rem taskkill /fi "PID gt 0" /IM mqnplay.exe /F >nul
rem taskkill /fi "PID gt 0" /IM mqnloader.exe /F >nul
rem taskkill /fi "PID gt 0" /IM mqncontrol.exe /F >nul
rem net stop "Desktop Window Manager Session Manager"
del Files.txt /q
FOR /F "tokens=*" %%A IN ('CHCP') DO FOR %%B IN (%%~A) DO SET CodePage=%%B
paste > param.txt
rem echo off
rem file
for /F "usebackq delims==" %%i IN (`sort param.txt ^| FIND /I ".wav"`) do echo %%i >> File1.txt
if exist file1.txt goto :crlf
rem folder
for /F "usebackq delims==" %%i IN (`sort param.txt`) DO for /f "delims=" %%f in ('dir /b "%%i\*.wav"') do echo %%i\%%f >> File1.txt
:crlf
rem remove cr/lf from last line
setlocal DisableDelayedExpansion
set "firstLineReady="
(
for /F "eol=$ delims=" %%a in (File1.txt) DO (
if defined firstLineReady (echo()
set "firstLineReady=1"
) > Files.txt"
del File1.txt /q
echo files to rewrite
for /F "usebackq delims==" %%i IN (`sort Files.txt`) do echo %%~ni
echo starting rewrite
for /F "usebackq delims==" %%i IN (`sort Files.txt`) do (echo %%~ni & copy "%%i" c:\mqnrewrite\test.wav & start /wait mqnrewrite & ren c:\mqnrewrite\out\test.wav "%%~ni%%~xi")
echo rewrite complete
pause
@echo on
exit