UNDER CONSTRUCTION



"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



NP.EXE

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

Now~Playing:~+artist~+`title`~+//~album~+('year)



Actual string in a message in this case will look like 

Now Playing: GoatFuckers "GoatFucking - fuckthegoat remix" // Best of GoatFuckers ('2002)



Parts of the pattern string, corresponding to empty mp3 tag fields, 

i.e. everything between 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 the date stamp.



Achtung! The additional np.exe switches _must_ be followed by a colon! 

(like "np.exe /p: /l:").



---

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



...into a GoldEd message:

Open your .TPL-file. Insert "@random np_output_file_name" string where needed.



...into a PmMail message:

Account -> Account Settings -> Signatures -> New Signature

Create a random signature, save it, make it 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 np.exe output file name.



...into a Mozilla Mail message

Edit -> Mail & Newsgroup Account Settings -> Attach this Signature

Enter path to the np.exe output file name into the field.



ZNP.EXE



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



Differences:



1. To use, run with Z! using 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 detach mode.)



2. Supports additional switch

/t:timeout

Where "timeout" specifies how long (in seconds) znp.exe must wait for ZMP3 pipe 

to come up. After this 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

******************************************************************************

CMPLEM3U.EXE, REMQUOT.EXE

Those two are needed only to make up for inflexibility of 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 

directories):

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 old list, F4 adds currently selected files to the list, 

F5 initiates playback of the composed list.)



******************************************************************************

RESTMP3.EXE

Usage: restmp3.exe mp3ListName

Restores unplayed part of 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

******************************************************************************

RENAMEMP3.EXE

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

(dos-masks supported - batch renaming possible)



******************************************************************************

MP3DUR.EXE

Calculates the exact playback time of a playlist, with subtotals after each 

file.



Usage: 

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.