"Everything you could write in REXX, but are too lazy to get to it"

Last update - 28.12.2002 (corrected a bug with znp.exe quitting when a
DOS game is being used).

Achtung! ID3v1 tags only supported.

A set of OS/2 commandline utilities for use with Qu-Player CMD/2 by Anton Malykh and 
VIO mp3-player Z! by Dink.

Playlist composition in File Commander/2, "np:" line generation, exact playlist 
playback time calculation, playlist logging, unplayed playlist part restoration 
after system crashes, batch mp3 renaming, ...

Author: shoorah@yandex.ru (responds reluctantly!)

Download quutil.rar

Allows to insert automatically a line like "np: Artist 'Title'" into FIDO, 
e-mail messages or wherever else.

To use, run concurrently with qucmd.exe with a command line like this:
qucmd.exe @playlist.m3u | np.exe /o:path\to\output\file /s:pattern

Pattern string format:
Use "~" to denote a space, "`" for quote symbol.
Recognized keywords: ARTIST, TITLE, ALBUM, YEAR.
Keywords in the pattern string must be separated by a "+" sign.

Pattern string example:

Actual string in a message in this case will look like 
Now Playing: GoatMilkers "GoatMilking - milkthegoat remix" // Best of GoatMilkers ('2002)

Parts of the pattern string corresponding to empty mp3 tag fields, 
i.e. everything between the two "+" signs, simply will not be generated.

By default output file creation is disabled, pattern string - 
np:~+artist~+`title` .

Additional switches:
/p: - Shows (in the np.exe window only) full path to the file being played.
/l: - Creates/updates the np.log file in the directory pointed by TMP 
      environment variable 
      (check your config.sys for "SET TMP=" statement). 
      Saves the history of all files played in the 
      form of full paths. Logged playlists are separated by double CR-LF. 
      Every playlist begins with a date stamp.

Important! The additional np.exe switches _must_ be followed by a colon! 
(like "np.exe /p: /l:").

How to insert an "NP:" line into...

...a GoldEd message:
Open your .TPL-file. Put "@random np_output_file_name" string where needed.

...a PmMail message:
Account -> Account Settings -> Signatures -> New Signature
Create a random signature, save it, make it the default. Go to the 
\PmMail\your_account_name.act\sigs directory. Open the sigs.lst file in a 
text editor. Manually replace the path it contains with the full 
path to the np.exe output file name.

...a Mozilla Mail message
Edit -> Mail & Newsgroup Account Settings -> Attach this Signature
Enter path to the np.exe output file name into the field.


Full np.exe clone for Z! mp3-player by Dink.


1. To use, run with Z! using a CMD-file like this:

=== z_np.cmd ===
start /c /min C:\z\z.exe %1 %2
start /c /f C:\z\znp.exe /p: /l: /o:c:\ftn\golded\np.txt /s:np:~+artist~+`title`~+//~album~+(year)
=== z_np.cmd ===

(Znp.exe may also be run in detached mode.)

2. Supports additional switch
Where "timeout" specifies how long (in seconds) znp.exe must wait for ZMP3 pipe 
to come up. After the timeout is exceeded, znp.exe terminates itself. 
By default, timeout = 4.

Beta! Known glitches: Drives crazy the DOS-version of MSX Emulator by 
Marat Fayzullin. 
I'd be glad if someone who finds out why shared the knowledge with me.

Utilities for handling playlist-related tasks by means of User Menu 
in FileCommander/2
Those two are needed only to make up for an inflexibility of the User Menu function 
in FileCommander/2.
The first one is used to complement filenames in a filelist created by !@ 
operator with the full panel path, the second - to remove quote symbols 
from the list.

Usage example (shows how to populate an mp3list with files from disparate 
A sample z_np.cmd file is shown above in ZNP.EXE description section.

=== fc.mnu ===
F3: Clear MP3 List
    del c:\temp\mp3list.m3u
F4: Add selected to MP3 list
    c:\quplay\quutil\cmplem3u.exe !@ c:\temp\mp3list.m3u
F5: Play composed MP3 list
    c:\quplay\quutil\delquot.exe c:\temp\mp3list.m3u
    C:\z\z_np.cmd -r c:\temp\mp3list.m3u
=== fc.mnu ===

(F3 clears out an old list, F4 adds currently selected files to the list, 
F5 initiates playback of the composed list.)

Usage: restmp3.exe mp3ListName
Restores unplayed part of a playlist, whose playback was unintentionally 
interrupted, e.g. by a system crash. 

Compares the last playlist saved by NP.EXE logging function with the given 
list and overwrites it with the difference (for this to work, NP.EXE must be 
used with the /L: switch as a standard).

Usage example (shows how to play an unplayed part of a cancelled playlist by 
means of the User Menu in FileCommander/2):

=== fc.mnu ===
F9: Play rest of last composed list
    c:\quplay\quutil\restmp3.exe c:\temp\mp3list.m3u
    c:\z\z_np.cmd -r c:\temp\mp3list.m3u
=== fc.mnu ===

Additional utilities
Renames when possible mp3-files using the following pattern:
Artist - Title.mp3
(The necessary info is extracted from ID3 tag and file name.)

Usage: renamemp3.exe filename
(filename masks supported - batch renaming possible)

Calculates the exact playback time of a playlist, with subtotals after each 
file. This one acts by traversing every single frame of an mp3 file - a relatively
slow but a 100% accurate method. Works no matter what the bitrate and it's 
variations are throughout a file.

mp3dur.exe mp3ListName

P.S. For convenience, there are Z! cmd control files in the quutil archive, 
and corresponding icon files. Those could be placed on the WarpCenter.

Correct mp3 tags, get album art automatically
Undiscovered Freeware Reviews. Detect missing mp3 tracklist with taghycardia
Embed album artwork automatically in your MP3s
FREE Words With Friends dictionary helper: learn word eligibility AND definition instantly!
How to make iPhone show lyrics of songs being played
Read lyrics of music tracks while playing them on an Android phone or tablet
Find and Embed cover images into your MP3s Automatically
Preventing MP3 Album Split, Track Numbering and Title Display Issues on Android Devices