I am currently working on making LilyPond portable. LilyPond is a text based musical notation software There's a few specific features I want the portable version to have, and there's a couple stumbles I've had already when trying to make it portable.
So to start, if anybody wants to download LilyPond, install it, and run the Shortcut it creates, you'll notice it opens up a text document in LilyPad, the text editor included with LilyPond. It tells you to save the file as whatever.ly, and then drag the file onto the LilyPond shortcut, once you drag it, it converts the text into a PDF Music Sheet with the music you just wrote, a log file, a midi file if it's included, and the .ps file. So, I decided to start, I'll make a launcher for LilyPad, simple enough, and it worked fine portably, next, I decided to try at the LilyPond executable, there was quite a few under the bin folder, so I checked what the desktop shortcut was pointing to. It was, "C:\Program Files\LilyPond\usr\bin\lilypond-windows.exe" -dgui. So, I pointed my launcher to there, and nothing happened when I clicked on the launcher or when I dragged the whatever.ly file onto it. So I decided, I wonder what "-dgui" does, so I added it in to launch '$EXEDIR\App\LilyPond\usr\bin\lilypond-windows.exe' -dgui. Nothing happened again, so I changed it to launch "$EXEDIR\App\LilyPond\usr\bin\lilypond-windows -dgui", and now, when I double clicked on the launcher, it opened the default text document like the local install does, however, when I dragged whatever.ly onto it, nothing was converted and nothing happened. So, I'm stumped their, I'm figuring "-dgui" has something to do with Graphical User Interface since LilyPond really doesn't have one. So, does anyone have any idea on how to fix that problem, there's more below regarding it, so keep reading.
Next question, when I used regshot, I found that this key was added: "HKLM\SOFTWARE\Classes\.ly". It is obviously the file extension for LilyFiles, plus these:
HKLM\SOFTWARE\Classes\LilyPond\shell
HKLM\SOFTWARE\Classes\LilyPond\shell\edit
HKLM\SOFTWARE\Classes\LilyPond\shell\edit\command
were also added, they all seem play a roll in when a lily file is double clicked on, it runs "C:\Program Files\LilyPond\usr\bin\lilypond-windows.exe" -dgui, so the file is automatically converted, If I was to import those key with my portable version, and if I modified them, is there a way to point it to start lilypond-windows' -dgui, of the portable device? I'm doubtful, but maybe there's a way to make it search for "lilypond-windows" on all removable drives?
Next. When installing LilyPond, there's a checkbox to install bundled Python, does anybody know the reason why I would need this? Because the box is checked by default.
And next, some more keys are added perhaps having to do with the -dgui thing, I would check what they say, but I forget the tool that allows you to easily read Reg entries, they keys are:
HKLM\SOFTWARE\Classes\.scm\: "GUILE"
HKLM\SOFTWARE\Classes\.scm\GUILE: "GUILE"
and
HKLM\SOFTWARE\Classes\GUILE
HKLM\SOFTWARE\Classes\GUILE\shell
HKLM\SOFTWARE\Classes\GUILE\shell\open
HKLM\SOFTWARE\Classes\GUILE\shell\open\command
maybe someone know what they do, and if someone could tell me the SysInternals tool to view and edit RegEntries, that'd be great thanks. BTW, here are all the keys added when installing LilyPond.
---------------------------------- Keys added:34 ---------------------------------- HKLM\SOFTWARE\Classes\.ly HKLM\SOFTWARE\Classes\.py HKLM\SOFTWARE\Classes\.scm HKLM\SOFTWARE\Classes\GUILE HKLM\SOFTWARE\Classes\GUILE\shell HKLM\SOFTWARE\Classes\GUILE\shell\open HKLM\SOFTWARE\Classes\GUILE\shell\open\command HKLM\SOFTWARE\Classes\LilyPond HKLM\SOFTWARE\Classes\LilyPond\DefaultIcon HKLM\SOFTWARE\Classes\LilyPond\shell HKLM\SOFTWARE\Classes\LilyPond\shell\edit HKLM\SOFTWARE\Classes\LilyPond\shell\edit\command HKLM\SOFTWARE\Classes\LilyPond\shell\generate HKLM\SOFTWARE\Classes\LilyPond\shell\generate\command HKLM\SOFTWARE\Classes\LilyPond\shell\open HKLM\SOFTWARE\Classes\LilyPond\shell\open\command HKLM\SOFTWARE\Classes\ly_auto_file HKLM\SOFTWARE\Classes\ly_auto_file\shell HKLM\SOFTWARE\Classes\ly_auto_file\shell\open HKLM\SOFTWARE\Classes\ly_auto_file\shell\open\command HKLM\SOFTWARE\Classes\Python HKLM\SOFTWARE\Classes\Python\shell HKLM\SOFTWARE\Classes\Python\shell\open HKLM\SOFTWARE\Classes\Python\shell\open\command HKLM\SOFTWARE\Classes\py_auto_file HKLM\SOFTWARE\Classes\py_auto_file\shell HKLM\SOFTWARE\Classes\py_auto_file\shell\open HKLM\SOFTWARE\Classes\py_auto_file\shell\open\command HKLM\SOFTWARE\Classes\textedit HKLM\SOFTWARE\Classes\textedit\shell HKLM\SOFTWARE\Classes\textedit\shell\open HKLM\SOFTWARE\Classes\textedit\shell\open\command HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\LilyPond HKLM\SOFTWARE\LilyPond ---------------------------------- Values added:33 ---------------------------------- HKLM\SOFTWARE\Classes\.ly\: "LilyPond" HKLM\SOFTWARE\Classes\.ly\LilyPond: "LilyPond" HKLM\SOFTWARE\Classes\.ly\Content Type: "text/lilypond-source" HKLM\SOFTWARE\Classes\.py\: "Python" HKLM\SOFTWARE\Classes\.py\Python: "Python" HKLM\SOFTWARE\Classes\.py\Content Type: "text/x-python" HKLM\SOFTWARE\Classes\.scm\: "GUILE" HKLM\SOFTWARE\Classes\.scm\GUILE: "GUILE" HKLM\SOFTWARE\Classes\.scm\Content Type: "text/x-guile" HKLM\SOFTWARE\Classes\GUILE\shell\open\command\: ""C:\Program Files\LilyPond\usr\bin\guile.exe" -e main -s "%1"" HKLM\SOFTWARE\Classes\GUILE\shell\: "open" HKLM\SOFTWARE\Classes\LilyPond\shell\edit\ command\: ""C:\Program Files\LilyPond\usr\ bin\lilypad.exe" "%1"" HKLM\SOFTWARE\Classes\LilyPond\shell\ generate\command\: ""C:\Program Files\ LilyPond\usr\bin\lilypond-windows.exe" -dgui "%1"" HKLM\SOFTWARE\Classes\LilyPond\shell\open\ command\: ""C:\Program Files\LilyPond\usr\ bin\lilypad.exe" "%1"" HKLM\SOFTWARE\Classes\LilyPond\shell\generate\ : "&Generate PDF ..." HKLM\SOFTWARE\Classes\LilyPond\shell\edit\ : "&Edit source..." HKLM\SOFTWARE\Classes\LilyPond\shell\: "generate" HKLM\SOFTWARE\Classes\LilyPond\DefaultIcon\ : "C:\Program Files\LilyPond\usr\bin\ lilypond-windows.exe,1" HKLM\SOFTWARE\Classes\LilyPond\DefaultIcon: "" HKLM\SOFTWARE\Classes\ly_auto_file\shell\open\ command\: ""C:\Program Files\LilyPond\usr\bin \lilypad.exe" "%1"" HKLM\SOFTWARE\Classes\ly_auto_file\shell\: "open" HKLM\SOFTWARE\Classes\Python\shell\open\command\ : ""C:\Program Files\LilyPond\usr\bin\python.exe" "%1" %2 %3 %4 %5 %6 %7 %8 %9"% HKLM\SOFTWARE\Classes\Python\shell\: "open" HKLM\SOFTWARE\Classes\py_auto_file\shell\open\command\: ""C:\Program Files\LilyPond\usr\bin\python.exe" "%1" %2 %3 %4 %5 %6 %7 %8 %9" HKLM\SOFTWARE\Classes\py_auto_file\shell\: "open" HKLM\SOFTWARE\Classes\textedit\shell\open\command\ : ""C:\Program Files\LilyPond\usr\bin\guile.exe" -e main -s "C:\Program Files\LilyPond\usr\bin\ lilypond-invoke-editor.scm" "%1"" HKLM\SOFTWARE\Classes\textedit\shell\: "open" HKLM\SOFTWARE\Classes\textedit\URL protocol: "" HKLM\SOFTWARE\Microsoft\Windows\ CurrentVersion\Uninstall\LilyPond\DisplayName: "LilyPond" HKLM\SOFTWARE\Microsoft\Windows\ CurrentVersion\Uninstall\LilyPond\UninstallString : ""C:\Program Files\LilyPond\uninstall.exe"" HKLM\SOFTWARE\Microsoft\Windows\ CurrentVersion\Uninstall\LilyPond\NoModify: 0x00000001 HKLM\SOFTWARE\Microsoft\Windows\ CurrentVersion\Uninstall\LilyPond\NoRepair: 0x00000001 HKLM\SOFTWARE\LilyPond\Install_Dir: "C:\Program Files\LilyPond"
Thanks for all your help in advance.
you need to pass on the parameters. See one of John's apps, which use http://nsis.sourceforge.net/Get_command_line_parameters
----
Ryan McCue.
Blog.
So all that Airbus-delay trouble over here in Europe is because of YOU!
Simeon.
"If you're not part of the solution, you're part of the precipitate."
That's what you were saying before, I didn't understand in the first post, I'll check into that, thanks.
_____________________________
I felt so different without a signature.
I figured, when installers create file extensions registry keys, normally using NSIS, they have to direct it to the install location, which can normally be anywhere. So is there a way to make it create a file extension registry key that will do something like create it for the location of the current LilyPond executable.
_____________________________
Wow, that signature totally got old.
WriteRegStr
or something like that. I'll explain more when I get back.https://portableapps.com/node/7456#comment-38032
----
Ryan McCue.
Blog.
So all that Airbus-delay trouble over here in Europe is because of YOU!
Simeon.
"If you're not part of the solution, you're part of the precipitate."
Could someone cut thos long lines down to a human size???
Thanks.
“Science is the belief in the ignorance of the experts” - Richard P. Feynman
"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate
Sorry bout that, I'll fix em.
_____________________________
I felt so different without a signature.
Hi Patrick
Please look into this project: http://valentin.villenave.info/Merry-Christmas-and-Easy-LilyPond.
Valentin succeded in combining the excellent plugin Lily4Jedit (with Jedit) with LilyPond and Java - in one installable package. He just needs to make it portable...
It's very sleek and there's no limit to what extent you can use or tweak Lilypond in Jedit. You can even play the midi and see the score on the fly - click a note and get back to textediting at the excact spot again.
I've been using Sibilius for some years and Finale to some extent (for educational use/reasons - I'm a Musicteacher in Denmark).
I can write as many staves as I like with Lilypond - and the tweakening of the scorelayout is by far more impressive than the 2 beforementioned - They have fixed parameters - and you'll take what you get (and what you've paid for!!)
LilyPond is OpenSource and therefore opens up for users as well as programmers to develop and refine. It's very nice and competent indeed!!.
Without any insight in making programs portable whatsoever - I'm by no means a programmer - Just a musician - trying to get to grips with powerfull tools for writing music - I've tried to run Valentins package as a portable app - I've even tried to switch the Jedit application with one I found at Winpenpack - But no luck.
I am also using OOoLilyPond at a dayly basis. It's a plugin for OpenOffice which enables You to write notes directly in Writer, Draw and Impress. I've managed to make my own templates - and I'm happy with its versability - and open structure.
It's very simple - yet very usefull. You'll find it here: http://ooolilypond.sourceforge.net/
Again it depends on a working Lilypond-installation, which doesn't seem to lend itself to portability??!!
Untill then I will use MuseScore for portability. It's a very promising Wysiwygprogram for writing scores and it reads and writes xml and *.ly files very well (Much better than Canorus!!) It is very standard in layout - it prints well - but it's only VERY beautifull when exported to LilyPond.
Read about MuseScore here: http://www.musescore.org/en
Winpenpack have a portable version..(http://www.winpenpack.com/main/download.php?view.965)It's not quite up to date - but even so..
[removed post across multiple topics, one topic is good - moderator PP (I'll reply later)]
I looked through the settings and all of the attached settings are to associate files with the appropriate applications. This is not typically done with PortableApps. You should use something like Espresso.
Anyhow, I do agree with making LilyPond portable.
I have uploaded a portable version at:
http://code.google.com/p/portable-lilypond/downloads/detail?name=LilyPon...
Hey all,
I'm afraid I can't help with the programming. . .
But I love using LilyPond and I am so happy that you guys are doing this! Just downloaded LilyPondPortable.
THANK YOU!
To revive the thread:
Seems to me LilyPond doesn’t need much installation beyond putting the files somewhere. What would be a good fit for PA would be one of the interface programs: Frescobaldi, for instance. Make that portable, including a copy of a LilyPond installation tree, and you have something useful.
I’ve never done this sort of thing before, but I think I’ll give it a try.