You are here

MediaMonkey Portable 4.1.17.1840 Development Test 1

85 posts / 0 new
Last post
Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
MediaMonkey Portable 4.1.17.1840 Development Test 1

Application: MediaMonkey
Category: Music & Video
Description: MediaMonkey is a digital media player and media library application developed by Ventis Media Inc., for organizing and playing audio on Microsoft Windows operating systems. By using plugins, it can be extended to handle video and other media formats as well.

Download MediaMonkey Portable 4.1.17.1840 Development Test 1 [724KB+15.4MB download / 55.1MB installed]
(MD5: 74367177821e3ddad6266d13c47f162a)

There is also one thing that I would eventually like to fix, but I don't know how: The launcher does not update the paths for any scripts that are installed. If there are any ideas, please let me know. I also would like to be able to edit MM.db to update the drive path. This would eliminate the need to use the Watch Folders within MediaMonkey and save some time during startup. If anybody knows how to do this, please post the code below.

Release Notes:

4.1.17.1840 Development Test 1 (2017-09-21):

  • Another year passes by and I've released another update.
  • Updated for the latest version of MediaMonkey


4.1.11.1783 Development Test 2 (2016-08-03):


4.1.11.1783 Development Test 1 (2016-04-19):

  • After 2 years I've finally put together an update.
  • Updated for latest version of MediaMonkey


4.0.7.1511 Development Test 1 (2014-01-16):

  • Updated for latest version of MediaMonkey


3.2.4.1304 Development Test 1 (2010-12-04):

  • Updated installer to point to right path
  • This is just a temporary update. Some files may be left in the registry until PAL 2.1 is released and those files can be addressed.


3.2.1.1297 Development Test 1 (2010-07-17):

  • Updated to latest installer
  • Updated launcher to the new PA.comLauncher
  • Installer is now an online installer so that it will download and install MediaMonkey without any user interaction


3.2.0 Development Test 1 (2009-12-29):

  • Updated to Installer 1.0.1
  • Fixed issue with MediaMonkey folder remaining in Local Data on Windows 7 machines
  • Fixed issue with Winamp folder remaining in registry


3.1.1 Development Test 2 (2009-09-11):

  • Updated to latest PAF specs
  • Added support to save Scripts.ini across sessions
  • New icon


3.1.1 Development Test 1 (2008-12-01): Initial release

BobOrr
Offline
Last seen: 12 years 2 months ago
Joined: 2008-12-29 12:45
BEAUTIFUL

This worked beautifully!! I just copied my local install folder to the folder on my pen drive. Scripts, extensions, settings all just the same. Even if I changed portable settings, they didn't reflect the home install nor vice-versa. Just like taking my monkey to work with me.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Let me know if it keeps the

Let me know if it keeps the same settings while you're at work. If you change any of the settings at work, see if they are kept when you try it out at home again.

Zach Thibeau
Zach Thibeau's picture
Offline
Last seen: 7 years 3 months ago
DeveloperModerator
Joined: 2006-05-26 12:08
I'll give it a go.

I'll give it a go.

your friendly neighbourhood moderator Zach Thibeau

BobOrr
Offline
Last seen: 12 years 2 months ago
Joined: 2008-12-29 12:45
Everything stays on both

Everything stays on both versions. Settings, themes, skins, databases are kept for each version. If you install a new script/skin it will only installl for the version you have open at the time of installation.Now if Media Monkey isn't open at the time, it will default to the local install, but that's to be expected.

ryan2009george
Offline
Last seen: 9 years 1 month ago
Joined: 2009-02-20 06:22
fully loaded and pro

edit

tgrantt
tgrantt's picture
Offline
Last seen: 2 weeks 5 days ago
Joined: 2007-02-26 12:43
3.1.1?

Anyone know if this will work with the new version, 3.1.1?

(Their wiki has info on portabalizing, I wish they made it easier)

I am not my signature.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Still good

I just upgraded earlier today and everything is still working. You cannot use the built in upgrade function, you have to download the MM installer, extract the contents and copy it over your portable version.

The only thing that changed between 3.1.1 and the previous version was that they fixed a problem with auto-tagging from Amazon.com so it is a simple upgrade.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Update to 3.1.1

This updates the launcher to Test 2. See original post for more information.

wyldebull
Offline
Last seen: 11 years 5 months ago
Joined: 2009-09-17 22:27
MediaMonkey 3.1.2.1266 Beta :(

MediaMonkey 3.1.2.1266 Beta cannot be extracted with Universal Extractor. Why?

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Not Supported [Fixed]

It looks like MM upgraded to a new version of the installer that is not supported by UniExtract. Here's the log file from UniExtract:

Signature detected: Inno Setup Setup Data (5.3.3) (u)
This is not directly supported, but i'll try to unpack it as version 5203
; Version detected: 5303
Critical error: The setup files are corrupted. Please obtain a new copy of the program.
Unpacking failed. This version is not supported.

EDIT: So I figured it out. UniExtract uses an older version of the installer that MM was created with. You need to download the latest version and add it to UniExtract/bin. The post describing it can be found here. Clicking the innounp link takes you to another page and you need to hit the download link. You should be directed to a sourceforge page. Then copy this into UniExtract/bin replacing the old one.

wyldebull
Offline
Last seen: 11 years 5 months ago
Joined: 2009-09-17 22:27
Yes!

Thanks Devo!!
It works for me!

dougakins
Offline
Last seen: 1 year 7 months ago
Developer
Joined: 2009-08-17 09:34
GREAT!

This was a good find - I hope it makes it into release. I've been using a modified "portable" Media Monkey for a while, and it's good to see a real one emerging. I'll be using it actively and will let you know if I have any issues.

dougakins
Offline
Last seen: 1 year 7 months ago
Developer
Joined: 2009-08-17 09:34
MM.DB

I'm not sure if this is expected or not, but MediaMonkey is creating a folder in my Local AppData directory (I'm using Windows 7). As I mentioned before I had a previous version of MM that was made portable (not through the portable apps platform - I think it was through ini settings) and pretty much everything stayed in the MM folder on my portable. It would create a folder in my Local AppData, but only put a m3u file in there which I could live with.

This version is copying over my MM.DB database from my portable location to the Local AppData location on the harddrive...

Nevermind - I see what it's doing. It copies these files over to the hard drive and then copies them back to the portable when MM closes. Is this normal? Is there a way to prevent it from behaving like this?

UPDATE=================
I reinstalled the portable version from scratch and it's working as expected now - nothing is being copied over to my Local AppData folder. Something must have gone funky with the MM ini file last time.

dougakins
Offline
Last seen: 1 year 7 months ago
Developer
Joined: 2009-08-17 09:34
MM 3.2

I see they've released v3.2 of MediaMonkey. I tried using UniExtract but with out any luck, even with the fix mentioned above. So I installed in on my computer and copied the files over to the portable directory and so far everything is working great.

I'm also using this with the portable version of Winamp that's here on the forums (setting MediaMonkey to use the winamp player) and it's working great. The only issue I've noticed, which I've mentioned before, is that it creates a folder under local AppData folder and stores some temp m3u files there which it removes when the program is closed.

This isn't an issue for me, but would MediaMonkey be considered a true portable app and be able to be released if it's doing this?

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Make sure you get the right version

I downloaded this file and replaced the one that was in UniversalExtractor and it unpacked properly. Let me know if you have any problems with unpacking it or if you find any bugs. I have noticed that the folder you are speaking of is not cleaned up in Windows 7, but I haven't come across it in XP.

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
I had a quick look at the MM.db file !

Hi Devo,

But as far as I could see it uses relative paths.
Could have missed something, cause the file is very big.

If this is the case and there would be any drive letters, they have to be local files, which you would have to get rid of anyway in a portable version.

So my advise is, keep on using the watch folders. This option actually is perfect.

The way I (will) have this done in Winamp is : (in the next test release)

The launcher checks for the system drive serial number (drive letter is not good enough, cause 2 different PC's could give the same drive letter)
If new and old serial are equal, keep old media library.
If new and old serial are not equal, delete media library and use watch folders. (and have it check for the drive letter of course)

This way the launcher keeps the existing media library when the user uses MediaMonkeyPortable on the same computer. But as well there couldn't be any missing files in the media library, when using another Pc !

Ps.: I have read about, that there even is a possibility that the same Pc could give different drive letters to the same flash drive. So also you would need to add this in your script.

[edit] Did you try to update the drive letter to mediamonkey.m3u. I have seen some ini options to remove missing files ?

Formerly Gringoloco
Windows XP Pro sp3 x32

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
I'm pretty sure MM.db uses

I'm pretty sure MM.db uses absolute paths, otherwise when you change computers it would have no problem playing files.

I guess I don't understand why you need to use the serial number. If you just change the drive letter of each file in MM.db, that should be sufficient for MediaMonkey to play the files. The folder structure hasn't changed, just the drive letter that the usb is plugged in to.

Also, the size of MM.db depends on how many files you have in your library, so you could just make a small library and use that to test functionality.

EDIT: here's a bunch of information I found on the MM.db. I don't really know much about computers, so I don't know if it's helpful or not. If you want you can take this over because I think the scope of what I would like to do is far above what I know how to do.

EDIT 2: I don't know how to update drive letters. I don't really have the time for the next few months to learn how to either.

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
Just testing with fewer music files at the moment

The reason I am explaining about the drive letter, is that users would probably add local files/folders to the library, which would be missing when using it on different PC !

Checked the MM.db with smaller library (still it is a lot of data to go through) but didn't find any drive letters

00032ec0: 00 00 00 01 0D 0D 0D 0D 0D 0D 19 01 01 4D 00 61 ; .............M.a
00032ed0: 00 6E 00 75 00 20 00 43 00 68 00 61 00 6F 00 0B ; .n.u. .C.h.a.o..
00032ee0: 43 00 6C 00 61 00 6E 00 64 00 65 00 73 00 74 00 ; C.l.a.n.d.e.s.t.
00032ef0: 69 00 6E 00 6F 00 4D 00 61 00 6E 00 75 00 20 00 ; i.n.o.M.a.n.u. .
00032f00: 43 00 68 00 61 00 6F 00 31 00 30 00 57 00 65 00 ; C.h.a.o.1.0.W.e.
00032f10: 6C 00 63 00 6F 00 6D 00 65 00 20 00 74 00 6F 00 ; l.c.o.m.e. .t.o.
00032f20: 20 00 54 00 69 00 6A 00 75 00 61 00 6E 00 61 00 ;  .T.i.j.u.a.n.a.
00032f30: 3A 00 5C 00 44 00 6F 00 63 00 75 00 6D 00 65 00 ; :.\.D.o.c.u.m.e.
00032f40: 6E 00 74 00 73 00 5C 00 4D 00 75 00 73 00 69 00 ; n.t.s.\.M.u.s.i.
00032f50: 63 00 5C 00 4D 00 61 00 6E 00 75 00 20 00 43 00 ; c.\.M.a.n.u. .C.
00032f60: 68 00 61 00 6F 00 5C 00 43 00 6C 00 61 00 6E 00 ; h.a.o.\.C.l.a.n.
00032f70: 64 00 65 00 73 00 74 00 69 00 6E 00 6F 00 5C 00 ; d.e.s.t.i.n.o.\.
00032f80: 57 00 65 00 6C 00 63 00 6F 00 6D 00 65 00 20 00 ; W.e.l.c.o.m.e. .
00032f90: 74 00 6F 00 20 00 54 00 69 00 6A 00 75 00 61 00 ; t.o. .T.i.j.u.a.
00032fa0: 6E 00 61 00 2E 00 6D 00 70 00 33 00 FF 46 00 6F ; n.a...m.p.3.ÿF.o

Formerly Gringoloco
Windows XP Pro sp3 x32

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Adding local files inherently

Adding local files inherently breaks portability. The idea is that the user would use a local install to play local files. It is their own computer, why would they have music files on their computer and no music player? The music player on the usb drive would play files that are located on the usb drive as well. That way users would be able to take their media library with them. This is the concept behind portable apps.

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
That's is accactly my point.

Adding local files inherently breaks portability.

But you will not have control of what all users will do with MMportable. There are bount to be users who will (temporaraly) add some files from a local hdd.

Anyway....
There is a new test app out :
XYplorerFree Portable
It gives you the possibility to see the raw data of the MM.db file.

Formerly Gringoloco
Windows XP Pro sp3 x32

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
No, but thank you !

Not for now I want to take this over cause I am to busy with my current project.

As well Media Monkey has the same problem as Winamp does, leaving cookies and stuff through their browsers.

Maybe if I really can't get any further with Winamp Portable I will have a look on disabling the browser for Media Monkey, cause leaving traces is a no go for PA.c !

Ps.: But hey, don't give up just like this. I was just offering to help you !

Formerly Gringoloco
Windows XP Pro sp3 x32

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
I'm not really giving up, I

I'm not really giving up, I just don't have the time to figure things out right now. Also, I have no idea how to change the drive letters. If you know how to please post and I'll try to get around to adding that functionality.

Also, what program are you using to view MM.db?

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
Drive letters

I am using a non freeware program to do it, but it is easy enough just opening windows notepad and drag 'n drop MM.db on to the notepad window. The data will be pretty clear that way.

By the way, after I actually got some local folders in MM.db, still I couldn't find any drive letters. You'll have to try and see for your self. So I suggest you keep the Watch Folders the way they are now, seems to work fine.

Besides the MM.db file, for all the other MM settings files I came across, the drive letter update isn't that hard.
Make sure you include the last two lines of the following in to your script

;=== Include
!include "Registry.nsh"
!include "GetParameters.nsh"
!include "MUI.nsh"
!include TextReplace.nsh
!include ReplaceInFileWithTextReplace.nsh

Add the following, as a file 'Other\Source\ReplaceInFileWithTextReplace.nsh'
If there is a newer version, could somebody please correct it !!!

; ReplaceInFile wrapper for testreplace function
; John T. Haller of PortableApps.com
; BSD License
; Requires TextReplace plugin installed in NSIS and !include "TextReplace.nsh" in main nsi
;
; Usage: ${ReplaceInFile} SOURCE_FILE SEARCH_TEXT REPLACEMENT
; or use ReplaceInFileCS for case-sensitive (use when possible, it's faster)
; No return variable.  Error will be set if unable to do the replacement (invalid file, locked file, etc)

Function ReplaceInFile
	Exch $0 ;REPLACEMENT
	Exch
	Exch $1 ;SEARCH_TEXT
	Exch 2
	Exch $2 ;SOURCE_FILE
	Exch 3
	Exch $3 ;CASE_INSENSITIVE
	Push $4 ;NEW_FILE
	Push $5 ;RETURN_VALUE
	
	StrCpy $4 `$2.OldReplaceInFile`
	
	${textreplace::ReplaceInFile} "$2" "$4" "$1" "$0" "$3 /C=0" $5
	
	IntCmp $5 0 StackCleanup ReturnError RenameToOriginal
	
	ReturnError:
		SetErrors
		Goto StackCleanup
	
	RenameToOriginal:
		Delete $2
		Rename $4 $2
	
	StackCleanup:
		Pop $5
		Pop $4
		Pop $3
		Pop $0
		Pop $1
		Pop $2

		${textreplace::Unload}
FunctionEnd

!macro ReplaceInFileCS SOURCE_FILE SEARCH_TEXT REPLACEMENT
	Push `/S=1`
	Push `${SOURCE_FILE}`
	Push `${SEARCH_TEXT}`
	Push `${REPLACEMENT}`
	Call ReplaceInFile
!macroend

!macro ReplaceInFile SOURCE_FILE SEARCH_TEXT REPLACEMENT
	Push `/S=0`
	Push `${SOURCE_FILE}`
	Push `${SEARCH_TEXT}`
	Push `${REPLACEMENT}`
	Call ReplaceInFile
!macroend

!define ReplaceInFileCS '!insertmacro "ReplaceInFileCS"'

!define ReplaceInFile '!insertmacro "ReplaceInFile"'

Use the instruction in your script, like this :

${ReplaceInFile} "$SETTINGSDIRECTORY\MediaMonkey\mediamonkey.m3u" $OLDDRIVELETTER $NEWDRIVELETTER

Have a look how for example Notepad++Portable deal with it, it isn't that complicated !

Formerly Gringoloco
Windows XP Pro sp3 x32

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Thanks for this. Now for the

Thanks for this. Now for the real question, hopefully you'll be able to answer this one too:

How does MediaMonkey store the file paths then? If it was simply relative paths, then the media library would work as long as the media and MediaMonkey were on the same drive. This isn't the case. Whenever you switch computers and the drive letter changes, MediaMonkey can not longer find the media. This is what led me to believe that MediaMonkey somehow uses absolute paths.

The problem with using the file monitor is that every time it rescans it adds jpgs and other random files to the library. If you look under the node for Unknown Artists you will see a ton of files. I've also noticed that the File Monitor doesn't remove missing tracks. I think this is a bug with MediaMonkey itself though.

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
This is a problem !

Your right they aren't relative, neither absolute in the standard format (D:\Folder\File.mp3). But have a go through the data, the way I explained before (or get info on the site you mentioned) , maybe you will find how MM saves the drive letter. If you find it I could help you to code the drive letter update for MM.db.

Isn't there an ini option to exclude extensions ?
About the missing tracks, you could just delete the MM.db at every launch !

Formerly Gringoloco
Windows XP Pro sp3 x32

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
For missing files in mediamonkey.m3u......

You could use the following code to deal with them, it doesn't really remove missing files, but it removes files which aren't located on the flashdrive. If you get the launcher to only update 'n remove when ever MMportable is being used on a different Pc, it should be what you need !

Use it instead of ${ReplaceInFile}
Make sure $6 contains $SETTINGSDIRECTORY\MediaMonkey\mediamonkey.m3u

  StrCpy $0 $OLDDRIVELETTER
  StrCpy $1 $NEWDRIVELETTER
  StrCpy $6 $SETTINGSDIRECTORY\MediaMonkey\mediamonkey.m3u
  FileOpen $R0 $6 r                 ;open file to read
  GetTempFileName $R2               ;get temp file name
  FileOpen $R1 $R2 w                ;open temp file to write
  FileRead $R0 $R3                       ;read first line '#EXTM3U'
  FileWrite $R1 $R3                  ;write first line
UnR_Loop:
  FileRead $R0 $R3
  IfErrors UnR_End
  StrCpy $5 $R3 1 ; get first char
  StrCmp $5 "#" UnR_JustFileInfo ; check whether it is drive letter or not
  StrCpy $R4 $R3
  goto UnR_Skip
UnR_JustFileInfo:
  FileRead $R0 $R4
UnR_Skip:
  StrCpy $R5 $R4 1 1 ; get second char
  StrCmp $R5 ":" UnR_IsDriveletter ; check whether is relative (just in main playlist)
  Goto UnR_Write
UnR_IsDriveletter:
  StrCpy $4 $R4 3                ; get drive letter
  StrCmp $4 $0 0 UnR_Loop ; compare old drive letter to line-driveletter
  StrCpy $R4 $R4 "" 3 ; remove drive letter
  StrCpy $R4 "$1$R4" ; add new drive letter
UnR_Write:
  StrCmp $5 "#" 0 +2
         FileWrite $R1 $R3                  ;write line
  FileWrite $R1 $R4                  ;write line
  Goto UnR_Loop

  UnR_End:
    FileClose $R1                   ;close writen file
    FileClose $R0                   ;close read file

    Delete "$6.old"                 ;delete old file, if still exists after last replace
    Rename "$6" "$6.old"            ;rename original file
    Rename "$R2" "$6"               ;move/rename replaced file
  ClearErrors

This is just a quick fix, I have been using it for Winamp, so it also recognizes url's and relative paths. See if it works on mediamonkey.m3u.
It should, but if not let me know and I'll have a better look at it ?

Formerly Gringoloco
Windows XP Pro sp3 x32

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Directly into Launcher Code?

So this code goes directly in the launcher code or is it a plugin?

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Location Node uses Absolute Paths

So I was thinking about the issue with the paths, it has to be relative paths because the is a node for Location. Within that node, you can move through all the folders until you get to your music file. Again, I have no idea how to update the database, I just thought this might be more helpful.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
@Prapper: I have a question

@Prapper or Gringoloco: I have another question, kind of unrelated. There are actually 2 registry entries created: HKLM/Software/MediaMonkey and HKLM/Software/Winamp. I've taken care of the MediaMonkey entry, but until now have ignored the Winamp entry because it didn't really have any data in it. I'm trying to figure out how to handle it, but I'm not where to manage it in the code, could you take a look at the code and give me a suggestion? Also, if you don't mind, can you make any other suggestions; I'm trying to get this to the point where it can be an online installer.

;Copyright (C) 2004-2009 John T. Haller
;Copyright (C) 2008-2009 Devo

;Website: http://PortableApps.com/Development/test

;This software is OSI Certified Open Source Software.
;OSI Certified is a certification mark of the Open Source Initiative.

;This program is free software; you can redistribute it and/or
;modify it under the terms of the GNU General Public License
;as published by the Free Software Foundation; either version 2
;of the License, or (at your option) any later version.

;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;GNU General Public License for more details.

;You should have received a copy of the GNU General Public License
;along with this program; if not, write to the Free Software
;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

!define PORTABLEAPPNAME "MediaMonkey Portable"
!define NAME "MediaMonkeyPortable"
!define APPNAME "MediaMonkey"
!define VER "3.2.0.1294"
!define WEBSITE "PortableApps.com/MediaMonkeyPortable"
!define DEFAULTEXE "MediaMonkey.exe"
!define DEFAULTAPPDIR "MediaMonkey"
!define DEFAULTSETTINGSPATH "settings"

;=== Program Details
Name "${PORTABLEAPPNAME}"
OutFile "..\..\${NAME}.exe"
Caption "${PORTABLEAPPNAME} | PortableApps.com"
VIProductVersion "${VER}"
VIAddVersionKey ProductName "${PORTABLEAPPNAME}"
VIAddVersionKey Comments "Allows ${APPNAME} to be run from a removable drive.  For additional details, visit ${WEBSITE}"
VIAddVersionKey CompanyName "PortableApps.com"
VIAddVersionKey LegalCopyright "John T. Haller"
VIAddVersionKey FileDescription "${PORTABLEAPPNAME}"
VIAddVersionKey FileVersion "${VER}"
VIAddVersionKey ProductVersion "${VER}"
VIAddVersionKey InternalName "${PORTABLEAPPNAME}"
VIAddVersionKey LegalTrademarks "PortableApps.com is a Trademark of Rare Ideas, LLC."
VIAddVersionKey OriginalFilename "${NAME}.exe"
;VIAddVersionKey PrivateBuild ""
;VIAddVersionKey SpecialBuild ""

;=== Runtime Switches
CRCCheck On
WindowIcon Off
SilentInstall Silent
AutoCloseWindow True
RequestExecutionLevel user

; Best Compression
SetCompress Auto
SetCompressor /SOLID lzma
SetCompressorDictSize 32
SetDatablockOptimize On

;=== Include
!include "Registry.nsh"
!include "GetParameters.nsh"
!include "MUI.nsh"

;=== Program Icon
Icon "..\..\App\AppInfo\appicon.ico"

;=== Icon & Stye ===
!define MUI_ICON "..\..\App\AppInfo\appicon.ico"

;=== Languages
!insertmacro MUI_LANGUAGE "English"

LangString LauncherFileNotFound ${LANG_ENGLISH} "${PORTABLEAPPNAME} cannot be started. You may wish to re-install to fix this issue. (ERROR: $MISSINGFILEORPATH could not be found)"
LangString LauncherAlreadyRunning ${LANG_ENGLISH} "Another instance of ${APPNAME} is already running. Please close other instances of ${APPNAME} before launching ${PORTABLEAPPNAME}."
LangString LauncherAskCopyLocal ${LANG_ENGLISH} "${PORTABLEAPPNAME} appears to be running from a location that is read-only. Would you like to temporarily copy it to the local hard drive and run it from there?$\n$\nPrivacy Note: If you say Yes, your personal data within ${PORTABLEAPPNAME} will be temporarily copied to a local drive. Although this copy of your data will be deleted when you close ${PORTABLEAPPNAME}, it may be possible for someone else to access your data later."
LangString LauncherNoReadOnly ${LANG_ENGLISH} "${PORTABLEAPPNAME} can not run directly from a read-only location and will now close."

Var PROGRAMDIRECTORY
Var SETTINGSDIRECTORY
Var ADDITIONALPARAMETERS
Var EXECSTRING
Var PROGRAMEXECUTABLE
Var INIPATH
Var DISABLESPLASHSCREEN
Var ISDEFAULTDIRECTORY
Var SECONDARYLAUNCH
Var FAILEDTORESTOREKEY
Var MISSINGFILEORPATH

Section "Main"
	;=== Check if already running
	System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${NAME}2") i .r1 ?e'
	Pop $0
	StrCmp $0 0 CheckForINI
		StrCpy $SECONDARYLAUNCH "true"

	CheckForINI:
	;=== Find the INI file, if there is one
		IfFileExists "$EXEDIR\${NAME}.ini" "" NoINI
			StrCpy "$INIPATH" "$EXEDIR"
			Goto ReadINI

	ReadINI:
		;=== Read the parameters from the INI file
		ReadINIStr $0 "$INIPATH\${NAME}.ini" "${NAME}" "${APPNAME}Directory"
		StrCpy "$PROGRAMDIRECTORY" "$EXEDIR\$0"
		ReadINIStr $0 "$INIPATH\${NAME}.ini" "${NAME}" "SettingsDirectory"
		StrCpy "$SETTINGSDIRECTORY" "$EXEDIR\$0"

		;=== Check that the above required parameters are present
		IfErrors NoINI

		ReadINIStr $0 "$INIPATH\${NAME}.ini" "${NAME}" "AdditionalParameters"
		StrCpy "$ADDITIONALPARAMETERS" $0
		ReadINIStr $0 "$INIPATH\${NAME}.ini" "${NAME}" "${APPNAME}Executable"
		StrCpy "$PROGRAMEXECUTABLE" $0
		ReadINIStr $0 "$INIPATH\${NAME}.ini" "${NAME}" "DisableSplashScreen"
		StrCpy "$DISABLESPLASHSCREEN" $0

	;CleanUpAnyErrors:
		;=== Any missing unrequired INI entries will be an empty string, ignore associated errors
		ClearErrors

		;=== Correct PROGRAMEXECUTABLE if blank
		StrCmp $PROGRAMEXECUTABLE "" "" CheckForProgramINI
			StrCpy "$PROGRAMEXECUTABLE" "${DEFAULTEXE}"
			Goto CheckForProgramINI
			
	CheckForProgramINI:
		IfFileExists "$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" FoundProgramEXE NoProgramEXE

	NoINI:
		;=== No INI file, so we'll use the defaults
		StrCpy "$ADDITIONALPARAMETERS" ""
		StrCpy "$PROGRAMEXECUTABLE" "${DEFAULTEXE}"
		StrCpy "$DISABLESPLASHSCREEN" "false"

		IfFileExists "$EXEDIR\App\${DEFAULTAPPDIR}\${DEFAULTEXE}" "" NoProgramEXE
			StrCpy "$PROGRAMDIRECTORY" "$EXEDIR\App\${DEFAULTAPPDIR}"
			StrCpy "$SETTINGSDIRECTORY" "$EXEDIR\Data\${DEFAULTSETTINGSPATH}"
			StrCpy "$ISDEFAULTDIRECTORY" "true"
			Goto FoundProgramEXE

	NoProgramEXE:
		;=== Program executable not where expected
		StrCpy $MISSINGFILEORPATH $PROGRAMEXECUTABLE
		MessageBox MB_OK|MB_ICONEXCLAMATION `$(LauncherFileNotFound)`
		Abort
		
	FoundProgramEXE:
		;=== Check if already running
		StrCmp $SECONDARYLAUNCH "true" CheckForSettings
		FindProcDLL::FindProc "$PROGRAMEXECUTABLE"                 
		StrCmp $R0 "1" WarnAnotherInstance CheckForSettings

	WarnAnotherInstance:
		MessageBox MB_OK|MB_ICONINFORMATION `$(LauncherAlreadyRunning)`
		Abort
	
	CheckForSettings:
		IfFileExists "$SETTINGSDIRECTORY\*.*" SettingsFound
		;=== No settings found
		StrCmp $ISDEFAULTDIRECTORY "true" CopyDefaultSettings
		CreateDirectory $SETTINGSDIRECTORY
		Goto CopyDefaultSettings
	
	CopyDefaultSettings:
		CreateDirectory "$EXEDIR\Data"
		CreateDirectory "$EXEDIR\Data\settings"
		CopyFiles /SILENT $EXEDIR\App\DefaultData\settings\*.* $EXEDIR\Data\settings
		Goto SettingsFound

	SettingsFound:
		StrCmp $DISABLESPLASHSCREEN "true" GetPassedParameters
			;=== Show the splash screen before processing the files
			InitPluginsDir
			File /oname=$PLUGINSDIR\splash.jpg "${NAME}.jpg"	
			newadvsplash::show /NOUNLOAD 1500 200 0 -1 /L $PLUGINSDIR\splash.jpg

	GetPassedParameters:
		;=== Get any passed parameters
		Call GetParameters
		Pop $0
		StrCmp "'$0'" "''" "" LaunchProgramParameters

		;=== No parameters
		StrCpy $EXECSTRING `"$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE"`
		Goto AdditionalParameters

	LaunchProgramParameters:
		StrCpy $EXECSTRING `"$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" $0`

	AdditionalParameters:
		StrCmp $ADDITIONALPARAMETERS "" RegistryBackup

		;=== Additional Parameters
		StrCpy $EXECSTRING `$EXECSTRING $ADDITIONALPARAMETERS`

	RegistryBackup:
		StrCmp $SECONDARYLAUNCH "true" LaunchAndExit
		;=== Backup the registry
		${registry::KeyExists} "HKEY_CURRENT_USER\Software\MediaMonkey-BackupByMediaMonkeyPortable" $R0
		StrCmp $R0 "0" RestoreTheKey
		${registry::KeyExists} "HKEY_CURRENT_USER\Software\MediaMonkey" $R0
		StrCmp $R0 "-1" RestoreTheKey
		${registry::MoveKey} "HKEY_CURRENT_USER\Software\MediaMonkey" "HKEY_CURRENT_USER\Software\MediaMonkey-BackupByMediaMonkeyPortable" $R0
		Sleep 100
		
	RestoreTheKey:
		IfFileExists "$SETTINGSDIRECTORY\MediaMonkey.reg" "" DetermineLocalInstall
	
		IfFileExists "$WINDIR\system32\reg.exe" "" RestoreTheKey9x
			nsExec::ExecToStack `"$WINDIR\system32\reg.exe" import "$SETTINGSDIRECTORY\MediaMonkey.reg"`
			Pop $R0
			StrCmp $R0 '0' DetermineLocalInstall ;successfully restored key

	RestoreTheKey9x:
		${registry::RestoreKey} "$SETTINGSDIRECTORY\MediaMonkey.reg" $R0
		StrCmp $R0 '0' DetermineLocalInstall ;successfully restored key
		StrCpy $FAILEDTORESTOREKEY "true"
	
	DetermineLocalInstall:
	IfFileExists "$LOCALAPPDATA\MediaMonkey\*.m3u" MoveOriginalSettings LaunchNow
	
	MoveOriginalSettings:
		Rename "$LOCALAPPDATA\MediaMonkey" "$LOCALAPPDATA\MediaMonkey-BackupByMediaMonkeyPortable"
		Sleep 100
		Goto LaunchNow
	
	LaunchNow:
		CopyFiles /SILENT "$SETTINGSDIRECTORY\MediaMonkey.ini" "$PROGRAMDIRECTORY\MediaMonkey.ini"
		CopyFiles /SILENT "$SETTINGSDIRECTORY\MM.db" "$PROGRAMDIRECTORY\MM.db"
		CopyFiles /SILENT "$SETTINGSDIRECTORY\Scripts.ini" "$PROGRAMDIRECTORY\Scripts\Scripts.ini"
		CreateDirectory "$LOCALAPPDATA\MediaMonkey"
		CopyFiles /SILENT "$SETTINGSDIRECTORY\MediaMonkey\*.*" "$LOCALAPPDATA\MediaMonkey"
		Sleep 100
		ExecWait $EXECSTRING
		
	CheckRunning:
		Sleep 1000
		FindProcDLL::FindProc "${DEFAULTEXE}"                  
		StrCmp $R0 "1" CheckRunning
		
		StrCmp $FAILEDTORESTOREKEY "true" SetOriginalKeyBack
		${registry::SaveKey} "HKEY_CURRENT_USER\Software\MediaMonkey" "$SETTINGSDIRECTORY\MediaMonkey.reg" "" $0
		Sleep 100
	
	SetOriginalKeyBack:
		${registry::DeleteKey} "HKEY_CURRENT_USER\Software\MediaMonkey" $R0
		Sleep 100
		${registry::KeyExists} "HKEY_CURRENT_USER\Software\MediaMonkey-BackupByMediaMonkeyPortable" $R0
		StrCmp $R0 "-1" MoveSettingsBack
		${registry::MoveKey} "HKEY_CURRENT_USER\Software\MediaMonkey-BackupByMediaMonkeyPortable" "HKEY_CURRENT_USER\Software\MediaMonkey" $R0
		Sleep 100
		Goto MoveSettingsBack
	
	MoveSettingsBack:
		CopyFiles /SILENT "$LOCALAPPDATA\MediaMonkey\*.*" "$SETTINGSDIRECTORY\MediaMonkey"
		Sleep 100
		RMDir /r "$LOCALAPPDATA\MediaMonkey"
		Sleep 100
		Rename "$LOCALAPPDATA\MediaMonkey-BackupByMediaMonkeyPortable" "$LOCALAPPDATA\MediaMonkey"
		Sleep 100
		Delete "$SETTINGSDIRECTORY\MediaMonkey.ini"
		Rename "$PROGRAMDIRECTORY\MediaMonkey.ini" "$SETTINGSDIRECTORY\MediaMonkey.ini"
		Delete "$SETTINGSDIRECTORY\MM.db"
		Rename "$PROGRAMDIRECTORY\MM.db" "$SETTINGSDIRECTORY\MM.db"
		Delete "$SETTINGSDIRECTORY\Scripts.ini"
		Rename "$PROGRAMDIRECTORY\Scripts\Scripts.ini" "$SETTINGSDIRECTORY\Scripts.ini"
		Goto TheEnd
		
	LaunchAndExit:
		Exec $EXECSTRING
	
	TheEnd:
		${registry::Unload}
		newadvsplash::stop /WAIT
SectionEnd
prapper
Offline
Last seen: 2 weeks 6 days ago
Developer
Joined: 2008-01-24 17:01
Multiple Reg Keys

I found a previous post of mine re: multiple registry entries here which may help. I would only add that you may have to put Sleep 100 after each registry::SaveKey line (middle section) if you find duplicate entries in the reg file.

Re: the rest of the launcher -

  • I think there's a bug in the "CopyDefaultSettings:" section - if $ISDEFAULTDIRECTORY is "false", the alternative dir is created but the default settings files will still be copied into the default location. I haven't tested it though.
  • There's still a fade on the splash (I think this was dropped a while ago).
  • You have a few un-needed Gotos in there - CheckForProgramINI (should be EXE, although it doesn't matter), CopyDefaultSettings, SettingsFound and MoveSettingsBack. They don't break anything though.
  • I think FindProc should be "$PROGRAMEXECUTABLE" rather than "${DEFAULTEXE}" as, if it's been changed, it won't be found.
  • Also, "!define VER" appears to be the app's version number? It should be the launcher's although I admit to being a bit confused about how to keep track of this, I think it's about 1.6.7.0 or 1.6.8.0 at the moment?

I think it would be a good idea to update the launcher to the latest version generally (which doesn't use "ISDEFAULTDIRECTORY", uses "ReadINIStrWithDefault.nsh" etc.). If you wanted to update it, you could look at EAC that I posted a few days ago. It's mostly stock stuff up to "CheckSettings:" (and handles multiple reg keys too). What files do you need to replace the drive letters in? Is it just MM.db (that one sounds like Gringoloco's area though).

The online installer should be simple enough once the launcher's working OK. Famous last words Smile

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Thanks for the help

Thanks for looking over this. I'll work on updating things. As far as the online installer, I don't think it'll be easy at all. In order to extract the installer you have to use Universal Extractor with an updated version of Inno Setup. 7-zip can't extract the installer, so it may be an issue until something better can be found.

prapper
Offline
Last seen: 2 weeks 6 days ago
Developer
Joined: 2008-01-24 17:01
Oh Yeah

You're right Sad I take it back.

Famous last words indeed Sad

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
I promise I`ll have a look at media library, again...

soon. But not much time lately, since I`m enjoying holiday with my girlfriend and am dealing with some of my own projects!

Not long ago, I found a way to update drive letters in AIMP2's '*.db' library. Hopefully it's the same format!

Formerly Gringoloco
Windows XP Pro sp3 x32

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Updated to 3.2.0

Updated and fixed a few bugs. See above.

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
I had a look at MM.db, again !

It's nothing like AIMP2 it's library file. And I gave up looking for a drive-letter after a decided that the file is just to big to do any drive-letter update through a NSIS scripted 'ReplaceInFile'. The code would just be to slow.

As I mentioned before, MM.db is HUGE !!! (even with just a small library)

About the playlist, I will see if I can add the code I send (above) into your script one day. Which removes local located song files !
Or you could use:
https://portableapps.com/node/21840
Which just updates drive letters in unicoded files. (Prapper used it for XMPlayPortable, without complaints for now)

I'm sorry for the Media Library !

Formerly Gringoloco
Windows XP Pro sp3 x32

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
Online installer

Devo, you should have a look how gluxon put up on online installer for
BurnAware Portable !

Same would probably work for your Media Monkey Portable.

Formerly Gringoloco
Windows XP Pro sp3 x32

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Help Updating to New Launcher

I finally got the online installer working, but I am having issues getting the launcher to work properly. I have 2 registry entries that need to be backed up:

HKCU\Software\MediaMonkey
HKCU\Software\Winamp

For some reason the MediaMonkey entry is not being saved to the Data folder when the launcher closes.

Also the folder \Data\settings\MediaMonkey should be copied to LOCALAPPDATA, but I don't see that happening. I was hoping somebody could look over the launcher to see if you can figure out what I've done wrong. Here's the link to the installer and below is the launcher.ini

[Launch]
ProgramExecutable=MediaMonkey\MediaMonkey.exe
WorkingDirectory=%PAL:AppDir%\MediaMonkey

[Activate]
Registry=true

[RegistryKeys]
MediaMonkey=HKCU\Software\MediaMonkey\
Winamp=HKCU\Software\Winamp\


[FilesMove]
settings\MediaMonkey.ini=%PAL:AppDir%\MediaMonkey
settings\MM.db=%PAL:AppDir%\MediaMonkey
settings\Scripts.ini=%PAL:AppDir%\MediaMonkey\Scripts

[DirectoriesMove]
settings\MediaMonkey=%LOCALAPPDATA%
Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
Hi devo,

First of all, you could use PortableApps.comLauncherDebug.nsh, to debug PAL launcher.ini's. After getting used to it, debugging becomes a peace of cake
Like:

!define DEBUG_SEGMENT_RegistryKeys
!define DEBUG_SEGMENT_DirectoriesMove

Update the launcher.ini with the following lines:

[RegistryKeys]
MediaMonkey=HKCU\Software\MediaMonkey
Winamp=HKCU\Software\Winamp

[DirectoriesMove]
settings\MediaMonkey=%LOCALAPPDATA%\MediaMonkey

...and all should work like expected.

Although, I'm really do not think you want to be backing-up the Winamp key, this would conflict with Winamp Portable !

Formerly Gringoloco
Windows XP Pro sp3 x32

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
I don't really know how the

I don't really know how the debug thing works, but I'll look into it. I had launcher.ini the way you have it above, but it wasn't working, so I have no idea what's wrong. Can you download the installer and take a look at it. I don't see what I'm doing wrong.

I need to do something with the Winamp key because MediaMonkey creates it as well, so I have to address it.

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
Did you see the difference in

Did you see the difference in the launcher.ini settings I send you and the once you where using ? (for [RegistryKeys] have a look at the final back-slash, it should not be there and for [DirectoriesMove] you need to set the sub-folder in %LOCALAPPDATA%, otherwise it will back-up all of %LOCALAPPDATA%!}
And yes I did download, debug and (quick) tested this before I send the reply !

For the Winamp key, if it's just about dealing with the specific one value

[HKEY_CURRENT_USER\Software\Winamp\in_vorbis]
"rg"=dword:00000000

Why not use

[RegistryValueBackupDelete]
1=HKCU\Software\Winamp\in_vorbis\rg

Formerly Gringoloco
Windows XP Pro sp3 x32

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Would I also

Would I also use

[RegistryCleanpIfEmpty]
1=HKCU\Software\Winamp

That way, if winamp is not installed then the empty directory would be removed. It isn't really clear if [RegistryValueBackupDelete] will perform this function if the folders are empty.

[EDIT]
I tried adding it to the launcher and an empty folder is left. Any ideas?

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 5 years 8 months ago
Joined: 2007-04-15 21:08
HKCU\Software\Winamp\in_vorbis

Seeing as you're just doing the value, you'd also need HKCU\Software\Winamp\in_vorbis, before HKCU\Software\Winamp. I personally think it'd be simpler doing a [RegistryKeys] line -=HKCU\Software\Winamp or -=HKCU\Software\Winamp\in_vorbis (the "file name" of - makes it not save it). That, I would think, is more "future-proof" against possible missed values.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
Do not worry about the Winamp

Do not worry about the Winamp value to much,
give ChrisMorgan's idea a shot and release the package, after I will have a go on it together with Winamp Portable to see what the exact behavior will be.

I have to say it's an interesting situation

and congrats about the online installer, it's perfect this way

Formerly Gringoloco
Windows XP Pro sp3 x32

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Updated to 3.2.1.1297

See initial post for details.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Feedback

Any comments or feedback would be appreciated.

vf2nsr
vf2nsr's picture
Offline
Last seen: 4 years 4 months ago
DeveloperModerator
Joined: 2010-02-13 17:10
Link?

Click on your link above get htis message:

Invalid or Deleted File
The key you provided for file download was invalid. This is usually caused because the file is no longer stored on Mediafire. This occurs when the file is removed by the originating user or Mediafire.

“Be who you are and say what you feel because those who mind don't matter and those who matter don't mind.” Dr. Seuss

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
I messed up the link. Try

I messed up the link. Try again in a few minutes.

Jano
Offline
Last seen: 9 years 8 months ago
Joined: 2009-12-30 11:47
Hi, They changed the download

Hi,

They changed the download link, so the file is not downloaded anymore. I downloaded by my own and used innounp to extract the files, but this way it's not portable (there's a entry on reg:
HKEY_USERS\S-1-5-21-1417001333-884357618-2147169803-1003\Software\MediaMonkey

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
MediaMonkey Servers Down

It looks like they're having an issue with their servers so the download link has temporarily changed. I'm going to wait a couple days for things to get back to normal to see if the link has really changed. If it has, I will push out a quick update.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Winamp Reg Entry

Gringoloco/Chris:

For some reason, the Winamp reg entry is not dealt with properly. An empty Winamp folder is left behind. Can one of you take a look at this and see if you can figure out what the problem is?

Thanks

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
I will, these days...

as I promised before, to look at the behavior together with WinampPortable.

Currently, I've (finally) found some time to work on Winamp Portable.

I let you know as soon as I can

Formerly Gringoloco
Windows XP Pro sp3 x32

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
in_vorbis\rg

I had a go on this, and I think there is no way of doing this properly, MediaMonkey's & Winamp's registry entries will always conflict on this, one way or another ! (Allthough, I think it's save just to delete the all of the keys/values within HKCU\Winamp, cause Winamp it self deletes them on exit. I'll have a closer look at that later. And it would need some custom-code)

For the HKCU\Winamp key being left behind with MediaMonkeyPortable. You'll need some changes in your launcher.ini:

[RegistryValueBackupDelete]
1=HKCU\Software\Winamp\in_vorbis\rg

[RegistryCleanupIfEmpty]
1=HKCU\Software\Winamp\in_vorbis
2=HKCU\Software\Winamp

I've done a regshot (Values added:846)of MediaMonkeyPortable first launch, and it left some shocking stuf behind on the OS. I'm a bit confused, as most of the entries look like .dll files being registered, but actually all point to App\MediaMonkey\MediaMonkey.exe. FYI, all I done is opening MediaMonkeyPortable and close it immidiatly. Hopefully MediaMonkey will change it's behavior in coming version updates. (I do not remember MediaMonkey doing this in the past versions)

Edit: Or just use:

[RegistryKeys]
-=HKCU\Software\Winamp

...and leave the above enties (sorry, I find it hard to decide about this)

Formerly Gringoloco
Windows XP Pro sp3 x32

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 5 years 8 months ago
Joined: 2007-04-15 21:08
TypeLibs

Ah, fun. MediaMonkey.exe is registering lots of TypeLibs. I'll need to extend my [RegisterDLL] so it can deal with TypeLibs as well. And I'm thinking it will require the ProgID (e.g. SongsDB.SDBPlaylist) or CLSID (e.g. {0632ED14-116D-4CB4-B5E6-2945C4193D81}). I suspect for backup/restoration purposes just one TypeLib/CLSID will be sufficient for when more than one is registered by registering the file, so that the path for the thing to reregister after can be got. I'm not sure if I may actually be able to get a CLSID - any CLSID - from the file. I've still got to play around with that, and I haven't got to it yet due to Uni work.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
So is there something I can

So is there something I can add to the launcher.ini to address these issues, or do I need to wait for a new version of PAL to come out?

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
About the Winamp\in_vorbis

About the Winamp\in_vorbis key left behind you can use one of the above options
Preferable, just:

[RegistryKeys]
-=HKCU\Software\Winamp

About the TypeLibs, you'll have to wait till Chris Morgan extend his [RegisterDLL] code for PAL 2.1 Sad

Formerly Gringoloco
Windows XP Pro sp3 x32

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Yeah, I got that, I just had

Yeah, I got that, I just had it under the wrong section. I was more concerned with the TypeLibs. I noticed in the Winamp thread that you updated to 2.1; do you have any idea when he'll be releasing that, or is there still a lot of work to be done on it?

Mark Sikkema
Offline
Last seen: 9 years 5 months ago
Developer
Joined: 2009-07-20 14:55
No idea...

as Chris says, he's very busy at university. Whenever he's got the code finished for testing he would be happy if you get it from the repository to test it.
You can always download from the repository with Mercurial (Mercurial Cmd Portable)

Formerly Gringoloco
Windows XP Pro sp3 x32

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 5 years 8 months ago
Joined: 2007-04-15 21:08
Further and further back

I had intended 2.1 to be a few new features - all of which are now in, I think - and significant documentation updates. However, more features are being needed, so 2.1 is getting more features put on its list - and so far I'm getting less time to work with it. I've still got to document XML/wildcard stuff, improve DLL registration and extend it to support TypeLibs (shared DLLs and services will wait till 2.2, I think).

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

dougakins
Offline
Last seen: 1 year 7 months ago
Developer
Joined: 2009-08-17 09:34
Curious

Just curious whatever happened to this project. Sounds like it would be a really good app to be portable.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Waiting for PAL 2.1

I'm waiting for the 2.1 launcher to be released. There were some issues that the previous version of the launcher couldn't address. When 2.1 is released I plan on updating this.

dougakins
Offline
Last seen: 1 year 7 months ago
Developer
Joined: 2009-08-17 09:34
Thanks

Good to know - glad this project isn't "dead". I think it's a great candidate to be an "official" portable app.

tech.freak243
Offline
Last seen: 5 years 11 months ago
Joined: 2009-03-19 10:34
i get the download isnt valid

i get the download isnt valid error. any help?

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Download again

Fixed.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Updated to 3.2.4.1304

See original post for changes.

rozberk
rozberk's picture
Offline
Last seen: 3 years 6 months ago
Joined: 2007-05-14 15:05
Thanks!

I'm going to replace iTunes with a mobile version and nothing else really does podcasts, device syncing, and music management in one package. This seems like my best hope, so I will give this a serious look at and let you know.

Thanks!

rozberk
rozberk's picture
Offline
Last seen: 3 years 6 months ago
Joined: 2007-05-14 15:05
Directories with Spaces

Found an issue where the installer will not copy the downloaded MediaMonkey app to a location that has a space in it.

For example: c:\Dir 1\MediaMonkeyPortable

But it works find for: c:\Dir2\MediaMonkeyPortable

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Unsupported

This generally isn't supported by the installer. By design portable apps should be installed to X:\PortableApps\. I understand that you would like to install this to a different location, but unfortunately I didn't have a hand in writing the installer so I can't change it. I have tried in the past to get the devs to allow custom locations, but the idea was eventually turned down. Sorry.

If you would like to install it somewhere else, my recommendation would be to install it to X:\PortableApps\ and then copy the whole MediaMonkeyPortable folder to the location you want and run it from there. It should function properly, but unfortunately there's not a lot I can do about the installer.

rozberk
rozberk's picture
Offline
Last seen: 3 years 6 months ago
Joined: 2007-05-14 15:05
No Problem

If that is the standard, I understand. When I test products, I usually install them in a sandbox first, and this one just had a space in it. Good to know though.

One question though, if I may: Why does the launcher need Admin rights on Win7? What functionality does it need? I've been going back and forth, but I am not seeing anything obvious.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Admin rights not needed

Some scripts need admin rights to run. All of the standard, included scripts should run fine without admin rights. I installed a couple extra that require admin rights to run, specifically Lyricator. I haven't really decided how to handle this, I may just remove it by default and make a plugin installer that would add admin rights back in.

So basically, MediaMonkey doesn't require admin rights and will function properly without it; only certain scripts that the user may install could require admin rights.

rozberk
rozberk's picture
Offline
Last seen: 3 years 6 months ago
Joined: 2007-05-14 15:05
Good Question

The problem I ran into is that if you load MediaMonkey Portable under normal user or an admin account, it seems to run under different registry entries. For example, I found MediaMonkey registry entries left behind under my admin account when I did run it under the admin account. It also launched the default browser (Internet Explorer) instead of Firefox which was set to the default browser under my normal account.

Still, I see the problem. Scripts do bring functionality that others would find useful. Perhaps a check box during the installation (much like the language queries I've seen other installers use) might be useful? Explain that scripts will need to have admin rights and let the end-user check if they want the scripts installed or not?

Tough call, but I understand what's going on now. Thanks!

jkemp
Offline
Last seen: 9 years 7 months ago
Joined: 2007-11-26 16:50
MediaMonkey 4.0 Beta 1 is Out with Portable Mode

Thought I would share a link to MediaMonkey 4.0 Beta 1 That has portable mode during installation.

Here is a quote from there site:

" Here's beta 1 of MediaMonkey 4--beta1 signifying that it's pretty much functionally complete though there are plenty more bugs to quash. It includes another ~25 fixes, including a fair number of stability improvements + a feature that many of you have asked for a long time: Portable mode. "

...here is the link.

dougakins
Offline
Last seen: 1 year 7 months ago
Developer
Joined: 2009-08-17 09:34
Nice

I haven't tested it yet, but I like the UI improvements. Not too long ago my MM started crashing every time it changed songs. I also noticed that A LOT of my files were messed up and missed tags - but I think that happened because my whole library got moved and the "locate" feature didn't pick up all changes too well. I just switched to Songbird and re-organized my library, but maybe I'll give MM a second look.

jkemp
Offline
Last seen: 9 years 7 months ago
Joined: 2007-11-26 16:50
Installs All Over The Place

Warning:

1) Creates start menu folder in all users.
2) Creates MediaMonkey folders with sub-directories.

Data\Application Data

C:\Documents and Settings\User\Application Data\MediaMonkey
C:\Documents and Settings\User\Application Data\MediaMonkey\Scripts
C:\Documents and Settings\User\Application Data\MediaMonkey\Skins
C:\Documents and Settings\User\Application Data\MediaMonkey\Trash

Local Settings\Application Data

C:\Documents and Settings\User\Local Settings\Application Data\MediaMonkey
C:\Documents and Settings\User\Local Settings\Application Data\MediaMonkey\Previews
C:\Documents and Settings\User\Local Settings\Application Data\MediaMonkey\VirtualCD

3) Creates item in Add/Remove Programs: MediaMonkey 4.0
4) Create a file called MediaMonkey.registry where MediaMonkey is installed.
5) Creates MM.db in MediaMonkey root directory. No need for .ini entry.
6) After editing MediaMonkey.ini to change VirtualCD and Previews directory they are no longer created, but the base MediaMonkey directory still appears under \Local Settings\Application Data empty.

7) Writes and leaves Internet browsing data to:

C:\Documents and Settings\User\Local Settings\Temporary Internet Files.

Had to change these settings in the MediaMonkey.ini file:

[Portable]
IsPortable=1

[System]
WinampPath=.\WinAmp.exe
TempDir=\Temp\
CacheDir=.\Data\VirtualCD\
PreviewDir=.\Data\Previews\

[Options]
CommonImagesFolder=\Documents\Pictures\Coverart\

[Masks]
DownloadLocation=\Downloads\%A\%L\%S

[Podcasts]
Glb_DownloadLocation=\Documents\Podcasts\%L\%S

[PodcastMasks]
Mask1=\Documents\Podcasts\%L\%S

[DownloadMasks]
Mask1=\Downloads\%A\%L\%S

Your directories may differ.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Thanks for taking a look at

Thanks for taking a look at this. Unfortunately I've run into a lot of work and won't have the time to keep on top of this. If you would like to take it over and update the launcher, feel free. I probably won't get around to updating this for a couple months. If you would like to try to keep this updated, go for it, otherwise it's going to be a bit until I have some free time to work on this. Just let me know.

dougakins
Offline
Last seen: 1 year 7 months ago
Developer
Joined: 2009-08-17 09:34
Online Installer

I don't think the Online installer will work with the new 4.0 version they're testing on right now. I did some tests with it myself and the files don't extract properly.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Update Unpacker

Have you tried updating to a newer version of innounp? I honest haven't had a chance to look at it yet, but I know in the past using the latest version worked. It might be worth a shot.

I hope this doesn't die, but unfortunately I don't have time to work on it. Hopefully I can get to it around the New Year. Until then I hope somebody can pick this up.

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Updated

Posted a long-overdue update for the MediaMonkey launcher (see OP). This updates MediaMonkey to the latest version (4.0.7.1511). If you find any bugs let me know and I'll try to get to it. It's been awhile since I've looked at the PA specifications so please let me know if I need to update anything.

j34nius
j34nius's picture
Offline
Last seen: 4 years 12 months ago
Joined: 2015-08-18 12:46
Portable version of newest stable release 4.1.8.1751

My contributions, enjoy! Smile
HelloNzb
MediaMonkey

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Update

Finally got around to putting together the latest update for MediaMonkey (4.1.11.1783). As always, let me know if you find any bugs.

3D1T0R
3D1T0R's picture
Offline
Last seen: 2 years 9 months ago
Developer
Joined: 2006-12-29 23:48
Please update the title of the thread.

Hello,
Could you possibly update the title of the thread to reflect the current version number? (and preferably also that it's an "online" installer as well.)

Anywhere, here's some feedback regarding this package:

PortableApps.com Format validation failed with 8 errors and 4 warning.

Errors

  • File Other\Source\LauncherLicense.txt is missing
    Your current License.txt should be renamed to LauncherLicense.txt as it's only the license for the launcher, not the base app too.
  • App\AppInfo\appinfo.ini: [Details]:AppID incorrect capitalization
  • App\AppInfo\appinfo.ini: [Details]:Publisher should be "Ventis Media, Inc. & PortableApps.com"
    or "Ventis Media, Inc. & PortableApps.com (Devo)" if you want your name to be in there.
  • App\AppInfo\appinfo.ini: [Details]:InstallType should be omitted. (Sorry, that's not what InstallType is used for.)
  • App\AppInfo\installer.ini: [CheckRunning]:CloseEXE should be omitted if it's contents are equal to that of App\AppInfo\appinfo.ini: [Control]:Start.
    In fact, you should just remove the whole [CheckRunning] section, you don't need it.
  • App\AppInfo\installer.ini: [Source]:IncludeInstallerSource should be omitted if set to false.
  • App\AppInfo\installer.ini: [MainDirectories] section should be omitted as you have set everything to what they are by default anyway.
  • App\AppInfo\installer.ini: [DownloadFiles]:DownloadMD5 should be omitted if empty, but really it should be there and contain "96d75b96b26d6c7e95db26a173d9628d".

Warnings

  • App\AppInfo\appinfo.ini: [Format]:Version needs to be updated from 2.0 to 3.0
  • App\AppInfo\appinfo.ini: [Details]:HomePage should point to this thread. (i.e. "PortableApps.com/node/16968")
  • App\AppInfo\appinfo.ini: [Details]:Donate is required if the publisher has a web page where donations are accepted.
    I'm not sure how this works with commercial apps. For now I would think this should be where you can buy the "Gold" version (either MediaMonkey.com/download/ or "esd.element5.com/product.html?cart=1&productid=300066318&backlink=http%3A//www.mediamonkey.com/download/&noquickbuy=1"), but I would guess that a new [Details]:Purchase (or similar) entry might be added to the spec for situations like this when/if the PortableApps.com Format becomes more 'payware' friendly.
  • App\AppInfo\installer.ini: [DownloadFiles]:AdditionalInstallSize should be reflect the amount of space (in KB) taken by files that will be present in the completed installation, which are not included in the installer. According to my install this should be "53480".

Information

  • Suggested file App\AppInfo\appicon_75.png is missing
  • App\AppInfo\appinfo.ini: [Details]:Trademarks As far as I can tell, MediaMonkey is not a registered Trademark of Ventis Media, Inc. so I'm not sure if this line should be included or not.

Also, you should use the -c{app} -d$INSTDIR\App\MediaMonkey parameters for innounp.exe instead of -x. This will allow you to remove all of the following lines from your PortableApps.comInstallerCustom.nsh:

Delete "$INSTDIR\Other\Source\install_script.iss"
RMDir /r "$INSTDIR\Other\Source\{commonappdata}"
RMDir /r "$INSTDIR\Other\Source\{tmp}"
RMDir /r "$INSTDIR\Other\Source\{sys}"
RMDir /r "$INSTDIR\Other\Source\{Code_IniPath}"
RMDir /r "$INSTDIR\Other\Source\{code_FixDeskPlayer}"
CopyFiles /silent "$INSTDIR\Other\Source\{app}\*" "$INSTDIR\App\MediaMonkey\"
RMDir /r "$INSTDIR\Other\Source\{app}"

I'd like to add this to the Development Test page, but I'd like (at least?) to see the errors fixed, the Format Version updated, the AdditionalInstallSize entry fixed and the homepage pointed to this thread first.

It might also be good to add a "Purchase", or "Get Gold" (or something like that) link to the help.html file under the PortableApps.com Donate link which should point to the a place to buy the "Gold" version and say something along the lines of 'Purchase a "Gold" license key to unlock more features.'
It could use one of the "Get Gold" button images from their site, or you could make your own image to put there.
From a quick look at their site, I see http://www.mediamonkey.com/_inc/img/huge-gold.gif, http://www.mediamonkey.com/_inc/img/button-getgold.gif and http://www.mediamonkey.com/_inc/img/slides/getgold.gif.

~3D1T0R

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Sorry for taking so long to

Sorry for taking so long to respond to this, I just bought a house and don't have much free time anymore to work on this. That said, I really appreciate the feedback and have attempted to address your comments.
Errors:
I've addressed all the errors in appinfo.ini and most of them in installer.ini. However, if I remove the [MainDirectories] section from the installer.ini, for some reason when I generate the installer again, it no longer generates an online installer. If I add that section back in, the online installer is created correctly. I'm not sure if it's a bug with the install generator or if I'm doing something wrong.

Warnings:
I've addressed all warnings.

Information:
I added appicon_75. According to the very last sentence of the MediaMonkey EULA, "MediaMonkey is a trademark of Ventis Media, Inc."
For the custom installer, I tried implementing your suggestion and did a little bit of research on the innoup code, but no matter what I tried I couldn't get it to extract the installer properly. I'm going to have to leave the custom install code as-is because it is working properly.
Finally, I updated the Help file to add a link to the Gold version.

Seriously, thank you for all the feedback and help. Please take another look at it and if you this it's worth it feel free to add it to the Development Test page. As I mentioned earlier, I don't really have much time to work on this, so if you or anybody else would like to take this over let me know.

Ulf2014
Ulf2014's picture
Offline
Last seen: 1 month 1 week ago
Joined: 2014-05-05 05:16
New Version

Version 4.1.15 from 21.02.2017.
http://www.mediamonkey.com/download/

Devo
Offline
Last seen: 1 year 1 week ago
Joined: 2007-09-04 14:55
Update 4.1.17.1840

Updated to the latest version available for download.

Ulf2014
Ulf2014's picture
Offline
Last seen: 1 month 1 week ago
Joined: 2014-05-05 05:16
New 2018

Version 4.1.22 from 2018.
https://www.mediamonkey.com/download/

Wink

Log in or register to post comments