Bringing LilyPad into LilyPond

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Bringing LilyPad into LilyPond

Ed Baskerville
Hi all,

As you've probably seen from my message to the user list, I've  
released a (rather feature-poor) preview of LilyPad, an integrated  
editor/previewer for LilyPond on Mac OS X.

First, an apology to the LilyPond icon designer: I stole it. But that  
theft was meant not as an act of aggression, but as a symbol of  
cooperation: I'd like to bring the LilyPad code into LilyPond itself,  
if there's interest--it just doesn't make sense, for me or for the  
community, to maintain a separate Mac OS X front end, when I could be  
helping to polish up the Mac-ness of the mainline LilyPond.app.

After I wrote the initial code, I was surprised to find some Mac OS X  
niceties work their way into the LilyPond 2.6 release--initially I  
was a little annoyed at the duplicate work, but ultimately pleased  
that things were moving forward on the platform. I promised the  
fruits of LilyPad within the week, and (as usual) got sidetracked.  
(Advice: never promise to release software while being a traveling  
chamber music minstrel.) But you can now see what I was doing.

So, first, the main question: is there interest in combining the  
existing LilyPond.app with some of the features and approaches of  
LilyPad? If there is interest, I'd be happy to take the reins on OS X  
GUI development--it's what I know best. If somebody else is already  
doing this actively, I'd be happy to alternatively have a smaller,  
supporting role.

If so, the next question: what logistically has to happen to get that  
code in there and to get me involved in the process? I know nothing  
about the development standards, build system, source tree, etc., so  
I'd love some guidance.

Thanks,
Ed



_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Bringing LilyPad into LilyPond

Han-Wen Nienhuys
Ed Baskerville wrote:
> So, first, the main question: is there interest in combining the  
> existing LilyPond.app with some of the features and approaches of  
> LilyPad? If there is interest, I'd be happy to take the reins on OS X  
> GUI development--it's what I know best. If somebody else is already  

LilyPond.app has been my work, but I don't mind if someone else steps to
continue improveming and developing it. However, I do oppose to
Objective-C as development language. We already have too many languages
(C++, Python, Scheme and bits of C)- and I see a maintenance problem
with adding another one. The wrapper for LilyPond.app has been written
in Python, which is fortunately pretty simple to learn and use.

> doing this actively, I'd be happy to alternatively have a smaller,  
> supporting role.
>
> If so, the next question: what logistically has to happen to get that  
> code in there and to get me involved in the process? I know nothing  
> about the development standards, build system, source tree, etc., so  
> I'd love some guidance.

The easiest would be to check out the installers/macos/ module from
savannah CVS. In the LilyPad subdirectory, you'll find a pyobjc
application, which you can build with

   python setup py2app.py

set LILYPOND_DEBUG_APPDIR=/Applications/LilyPond.app/ , and you will be
able to run dist/LilyPond.app

oh, I suspect that you might have to install pyobjc (pyobjc.sf.net) to
make it work.



--
  Han-Wen Nienhuys - [hidden email] - http://www.xs4all.nl/~hanwen


_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Bringing LilyPad into LilyPond

Ed Baskerville
> LilyPond.app has been my work, but I don't mind if someone else  
> steps to continue improveming and developing it. However, I do  
> oppose to Objective-C as development language. We already have too  
> many languages (C++, Python, Scheme and bits of C)- and I see a  
> maintenance problem with adding another one. The wrapper for  
> LilyPond.app has been written in Python, which is fortunately  
> pretty simple to learn and use.

That's certainly an understandable position. I don't know Python, but  
I have been meaning to learn. From an initial glance through the  
PyObjC documentation, I think it would probably be possible to re-
implement LilyPad in Python, but it would take a fair amount of work,  
and would require writing Python wrappers for a couple of frameworks  
in addition to writing the application code itself.

Therefore, I think my approach will be this: for the immediate  
future, I'll maintain and improve LilyPad in Objective-C as a  
separate project. Over time, I may learn Python and see what features  
can be added to LilyPond.app.

> The easiest would be to check out the installers/macos/ module from  
> savannah CVS. In the LilyPad subdirectory, you'll find a pyobjc  
> application, which you can build with
>
>   python setup py2app.py
>
> set LILYPOND_DEBUG_APPDIR=/Applications/LilyPond.app/ , and you  
> will be able to run dist/LilyPond.app

Great, I'll check this out.

--Ed


_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Bringing LilyPad into LilyPond

Han-Wen Nienhuys
Ed Baskerville wrote:

>> LilyPond.app has been my work, but I don't mind if someone else  steps
>> to continue improveming and developing it. However, I do  oppose to
>> Objective-C as development language. We already have too  many
>> languages (C++, Python, Scheme and bits of C)- and I see a  
>> maintenance problem with adding another one. The wrapper for  
>> LilyPond.app has been written in Python, which is fortunately  pretty
>> simple to learn and use.
>
>
> That's certainly an understandable position. I don't know Python, but  I
> have been meaning to learn. From an initial glance through the  PyObjC
> documentation, I think it would probably be possible to re- implement
> LilyPad in Python, but it would take a fair amount of work,  and would
> require writing Python wrappers for a couple of frameworks  in addition
> to writing the application code itself.

Which frameworks? AFAIK the wrappers are generated automatically from
the Objective libraries, so they should be already available.

--
  Han-Wen Nienhuys - [hidden email] - http://www.xs4all.nl/~hanwen


_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Bringing LilyPad into LilyPond

Ed Baskerville
Specifically, QTKit and PDFKit (inside Quartz)--they're separate from  
the standard AppKit/Foundation frameworks. On second glance, it looks  
like the wrappers are very easy to generate, especially since I don't  
think there are any ObjC protocols to wrap.

The fact that I use QTKit and PDFKit brings up another issue--these  
are only available in Tiger and later, and I doubt you'd want to  
restrict Panther users from using LilyPond.app. At one point, I had  
LilyPad working so that those two frameworks were weak-linked, and  
the app used older classes (NSMovieView, NSImageView, etc.) when  
launched on a Panther system--the big drawback was that point-and-
click didn't work, because NSImageView doesn't know anything about  
PDF links. Somewhere along the line I broke this and will try to get  
it fixed soon, certainly before trying to put anything into  
LilyPond.app.

--Ed

On Jul 26, 2005, at 3:19 PM, Han-Wen Nienhuys wrote:

> Ed Baskerville wrote:
>
>>> LilyPond.app has been my work, but I don't mind if someone else  
>>> steps to continue improveming and developing it. However, I do  
>>> oppose to Objective-C as development language. We already have  
>>> too  many languages (C++, Python, Scheme and bits of C)- and I  
>>> see a  maintenance problem with adding another one. The wrapper  
>>> for  LilyPond.app has been written in Python, which is  
>>> fortunately  pretty simple to learn and use.
>>>
>> That's certainly an understandable position. I don't know Python,  
>> but  I have been meaning to learn. From an initial glance through  
>> the  PyObjC documentation, I think it would probably be possible  
>> to re- implement LilyPad in Python, but it would take a fair  
>> amount of work,  and would require writing Python wrappers for a  
>> couple of frameworks  in addition to writing the application code  
>> itself.
>>
>
> Which frameworks? AFAIK the wrappers are generated automatically  
> from the Objective libraries, so they should be already available.
>
> --
>  Han-Wen Nienhuys - [hidden email] - http://www.xs4all.nl/~hanwen
>



_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Bringing LilyPad into LilyPond

Han-Wen Nienhuys
Ed Baskerville wrote:

> Specifically, QTKit and PDFKit (inside Quartz)--they're separate from  
> the standard AppKit/Foundation frameworks. On second glance, it looks  
> like the wrappers are very easy to generate, especially since I don't  
> think there are any ObjC protocols to wrap.
>
> The fact that I use QTKit and PDFKit brings up another issue--these  are
> only available in Tiger and later, and I doubt you'd want to  restrict
> Panther users from using LilyPond.app. At one point, I had  LilyPad
> working so that those two frameworks were weak-linked, and  the app used
> older classes (NSMovieView, NSImageView, etc.) when  launched on a
> Panther system--the big drawback was that point-and- click didn't work,
> because NSImageView doesn't know anything about  PDF links. Somewhere
> along the line I broke this and will try to get  it fixed soon,
> certainly before trying to put anything into  LilyPond.app.

Have a look at Lilypond.app, which registers itself as a handler for the
textedit:// protocol. You could launch Preview on 10.3, and use the same
mechanism there.

--
  Han-Wen Nienhuys - [hidden email] - http://www.xs4all.nl/~hanwen


_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Bringing LilyPad into LilyPond

Ed Baskerville
On Jul 26, 2005, at 4:28 PM, Han-Wen Nienhuys wrote:

> Have a look at Lilypond.app, which registers itself as a handler  
> for the textedit:// protocol. You could launch Preview on 10.3, and  
> use the same mechanism there.

I certainly could. That just precludes the possibility of "almost  
live" previewing on 10.3--in LilyPad, you don't actually have to save  
or explicitly execute any command to have your preview be up to date.

A question about using textedit:// URLs: is it not conceivable that  
you might want to have different handlers for textedit:// links in  
different kinds of files? E.g., LilyPond or LilyPad for PDFs  
generated by LilyPond, and TeXShop for TeX-originating PDFs?

In which case, might it not be better to define a LilyPond-specific  
URL scheme, say, lilypond:// ?

--Ed


_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Bringing LilyPad into LilyPond

Han-Wen Nienhuys
Ed Baskerville wrote:

> On Jul 26, 2005, at 4:28 PM, Han-Wen Nienhuys wrote:
>
>> Have a look at Lilypond.app, which registers itself as a handler  for
>> the textedit:// protocol. You could launch Preview on 10.3, and  use
>> the same mechanism there.
>
>
> I certainly could. That just precludes the possibility of "almost  live"
> previewing on 10.3--in LilyPad, you don't actually have to save  or
> explicitly execute any command to have your preview be up to date.

Yes, I wondered about that. Isn't it possible to make Preview close or
revert the PDF by sending it the right apple event?

> A question about using textedit:// URLs: is it not conceivable that  you
> might want to have different handlers for textedit:// links in  
> different kinds of files? E.g., LilyPond or LilyPad for PDFs  generated
> by LilyPond, and TeXShop for TeX-originating PDFs?
>
> In which case, might it not be better to define a LilyPond-specific  URL
> scheme, say, lilypond:// ?
>

I invented the textedit protocol, so I don't think so. And we can fix it
later, if we like.

> --Ed
>


--
  Han-Wen Nienhuys - [hidden email] - http://www.xs4all.nl/~hanwen


_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel