You are here

LilyPond Portable Developement

11 posts / 0 new
Last post
Patrick Patience
Offline
Last seen: 4 years 11 months ago
DeveloperModerator
Joined: 2007-02-20 19:26
LilyPond Portable Developement

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.

Ryan McCue
Ryan McCue's picture
Offline
Last seen: 15 years 1 month ago
Joined: 2006-01-06 21:27
For the first one,

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."

Patrick Patience
Offline
Last seen: 4 years 11 months ago
DeveloperModerator
Joined: 2007-02-20 19:26
Oh okay.

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.

Patrick Patience
Offline
Last seen: 4 years 11 months ago
DeveloperModerator
Joined: 2007-02-20 19:26
Edit.

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.

Ryan McCue
Ryan McCue's picture
Offline
Last seen: 15 years 1 month ago
Joined: 2006-01-06 21:27
.

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."

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 month ago
DeveloperTranslator
Joined: 2006-09-25 15:15
Line wrap

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

Patrick Patience
Offline
Last seen: 4 years 11 months ago
DeveloperModerator
Joined: 2007-02-20 19:26
I could!

Sorry bout that, I'll fix em.

_____________________________
I felt so different without a signature.

maans
maans's picture
Offline
Last seen: 14 years 3 days ago
Joined: 2009-01-23 16:03
LilyPond IS the answer - if you want true engraving capabilities

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)]

mfidler
Offline
Last seen: 12 years 3 months ago
Joined: 2010-01-14 12:13
LilypondPortable

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

ssooter
Offline
Last seen: 12 years 4 months ago
Joined: 2012-07-25 12:48
thank you!

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! Smile

JCSalomon
Offline
Last seen: 3 years 7 months ago
Joined: 2007-09-25 17:40
Frescobaldi

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.

Log in or register to post comments