Scripts for Media Monkey

from Andreas Weichert (

Take a look on my Android app Time Sheriff – the extensive all-in-one timer / reminder.

Multi-Previewer 1.4.0

Start Download Restart Media Monkey after installation to get the menu-entries. Entry in the forums for discussions

The idea and code based on one of the great scripts from trixmoto the “Previewer”. Thank you for the base script– I have learned much of.


With the Multi-Previewer you can take songs from your mediathek, quick listen to it iterative and pick songs you like to fill the now-playing-list.



It works as follows:

  1. Select one or more songs from you mediathek
  2. Start the “Multi-Previewer” (Menu/Player, Context-menu or hotkey)
  3. The player starts with the first selected song. The playing can be started at the beginning or from a relative position automatically (Checkbox “Begin at position”)
  4. You can seek in the song absolute (to 0%, 25%, 50%, 75%) or relative (by ± 5 sec, 30 sec) with the hotkeys.
    The hotkeys are organized as a block on a German keyboard like gamer use the keyboard. If you want other hotkeys or translate the button text you can easy manipulate the script. Take a look on the variables at the first lines of the script.
  5. If the song end is reached the player jumps to the next song automatically unless you have enable “Stop track at end”.
  6. Before the song is finished you must decide what to do with the current song. “Next” will skip the current song and plays the next. The current song will be removed from the now-playing-list.
  7. Append: Append song as last to the end of the now playing list
  8. Insert: Inserts it directly after the song, which was played before you started the Multi-Previewer
  9. Insert 2: Appends it after your last inserted song – if you have no inserted one before it’s the same as “Insert”
  10. If you press “Close” (or Ecs-key) in the Previewer window or the last selected song was played, the player starts again with the song played before (at the position before) or plays the first new song of the now-playing-list
  11. You can seek in the song by clicking with the mouse in the area under the red bar.
    Before you can do this you must calibrate the mouse. Click on the help button “?”.
    Hold down the Shift & Strg & Alt Key and click with the mouse in the panel at the most right possible position in the panel. Begin at right edge outside the panel and move the mouse pixel by pixel to left and click permanently until you get a message. Maybe you must do again it if you change the skin.
  12. Move the mouse over the controls and wait to get a hint on its function.
  13. The multimedia key “Stop” seeks to the next track. (side-effect) The Pause/Play button works, too


Older Versions:  Version 1.0.0.


Just Play Now 1.0.0

Start Download                  Entry in the forum

I missed the function “Append selected songs to the now-playing-list and just play it now”. I have integrated this function in the context menu of the main-tack-list.

The script was very simple and small. Therefore I took it as a base for more functions I missed. For the additional functions I found not a good compact name, so I gave the plugin the name of its first function.

Because I work nearly always with hand-made playlist I wanted to optimise my work with it. Selecting something, group it and quick sort it with the cursor-keys. The functions are integrated in sub-menus of the context-menu of the main track-list: “Selection” and “Moving”





The additional functions are:

  1.  Selecting:
    1. From focused to last or from first to focused
    2. All, nothing , invert selection
    3. Only last played or all behind to it to continue with the next songs I did not hear
    4. Never/ ever played
    5. Rating larger/smaller than a special star-value
    6. All rated song or songs with missing rating
    7. Depend on the current focused song, select all with the same Album, Artist or Album-Artist
  2. Change the track order with the usual windows hotkeys (only for manual playlist)
    1. Move songs up/down one position (Ctrl-Up/Down)
    2. Move songs a “page” up/down. (Ctrl-Page Up/Down). You can configure the increment
    3. Move song to top/end of the list (Ctrl-Home/End)
    4. For a selecting with lags in it you can remove the lags and group it together (up or down).


Problems with the Moving-Function:

The manual changing of the track order with hot-keys was a hard work.

  1. The moving functions overwrite the default hotkeys of MM: Changing the focused track without change the selection. This function I never use. I take the scrollbars or the mouse wheel to scroll in the list. Nevertheless this function works yet - if you press Ctrl-Shift.
  2. The hot-key definitions are language dependent. Therefore you must find out how is the definition for you language and change the script (variables at the top of the code). The moving functions without hotkey access make no sense. Current version is English.
  3. Autoplaylists cannot be manual sorted. In this case you get an error message.
    MM doesn’t allow this.
    (Cannot understand why, this should be simple to implement and would be a powerfull additional function. Think this could be my next MM project. Manual playlist with an additional filter.)
  4. Manual sorting makes only sense if you have applied no special sorting. The list must be sorted by the “#” column. Unfortunately I found no way to find out what is the current state of the main-track-window to show an error message or ignore the action. If you use the moving function you must switch to unsorted.
  5. I found no way to sort the main-track-window directly. So I sort in the responding playlist. To show the changings (online) in the window it must be Refreshed AND ProcessMessages must be performed. Then I apply the new selection based on the type of the moving action.
  6. During the ProcessMessage MM reacts on new events (before the applying of the new selection). This produces problems for fast interaction in my first experiments. With a trick I avoid this problem. Sometimes the trick does no work and the section changes to one song. But found no bug in the code, it should work always.
  7. The playlist manipulating and the window refreshes are slow in MM. On slow computers manual sorting function could work badly. (On my 2.2 GHz Windows 8 it works good.)
  8. The MM-Scripting interface delivers no function to reorganize a playlist array by indices. You can work only with the songs in playlist. Therefore a song position is not clear defined if you have duplicate songs it. I don’t really know what happens in this case.
  9. I wanted to hold the selected track visible after a moving action - move it not outside the visible area. So I make a set “focus-bracket” around the selected tracks. That would work best if I the code has the information how many track are show in the list, how high is the visible area of the list. But I found no way to get this information from MM, so I decided that the list scrolls as follows: Show some more lines additional to the selected lines in the last moving direction. You can set this value in the settings.


Speak Song Title 1.1.0

Start Download                  Entry in the forum

If I am sitting on my sofa and control MM with my Android remote app, I want to know some information about the current song I hear. I am to lazy for looking on my phone and the way to the computer monitor to long. Therefore I made this plug-in.

This plugin speaks some information about the current song at its start. You can configure 10 different masks with custom text with place-holder for some song properties: Title, artits, album, album artist and rating. A delay separator for a more natural pronunciation is integrated. The information can be spoken simultaneously or the music can be pause during speaking.


One speaking-mask can consist of multiple masks (separated by “|”) now. One of them will be chosen by random for every song automatically.

Configure the plugin in the options dialog under the player-sheet. Enable/Disable it in the main-menu under the Play entry.

The script uses the windows SAPI text-to-speech function. All installed voices can be used.


Here you see its configuration dialog.


AWDebugpanel 1.0.0

Start Download

This panel is made only for developer ! You can put out text to trace something. Install the plug-in and paste the code below in your file. You can show/hide the panel from the View menu.

Show a new text entry with         DebText “Hallo World !”

Const DebugMode = true

Sub DebText (Msg)

      If(Not DebugMode) Then: Exit Sub: End If

      Dim Deb:   Set Deb = SDB.Objects("AWDebugger")

      If Deb Is Nothing Then

            Exit Sub

      End If

      Deb.NewEntry Msg

End Sub



Comments and ideas are welcome. (