[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: I would like to buy this enhancement (highly motivated buyer)

From: Mats Bengtsson
Subject: Re: I would like to buy this enhancement (highly motivated buyer)
Date: Thu, 12 Oct 2006 09:24:33 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20060910 SeaMonkey/1.0.5

There are some possibilities to do this today.

1. Read "Skipping Corrected Music". You can add a separate identifier
that you redefine to something like
select = {
\set Score.skipTypesetting = ##t \skip 1*20
\set Score.skipTypesetting = ##f \skip 1*8 \set Score.skipTypesetting = ##t
to get a certain snippet. However, as you quickly will find out, this solution
has some problems.

2. Use the \tag feature to mark the different snippets.


Rick Hansen (aka RickH) wrote:
I've been using LP for a while now and waiting for the time when I think I
could finance a very useful enhancement.  Now I have something that I would
like to sponsor, and I think it would be a very worthwhile enhancement,
especially for musicologists.  Please tell me if there already is a way to
do what I am about to describe, as that will save me some money in
sponsoring it.


A method whereby I can take an existing LP score, and by adding a simple
array list (new property) to the \paper block, have lilypond "cut up" the
score into several pre-defined cutouts of the full score.  Each fragment
being an eps file that contains only the measures I asked for.  Here is an
example of what the source code MIGHT look like, (I dont profess to know
scheme so I leave final implementation language up to the developer).

Example of possible solution:


(define-public mysnippets '(
   ("measures04thru08.eps" . (cons (* 04) (* 08)))
   ("measures20thru24.eps" . (cons (* 20) (* 24)))
   ("measures01thru06.eps" . (cons (* 01) (* 06)))
   ("measures09thru18.eps" . (cons (* 09) (* 18)))
   ("measures30thru30.eps" . (cons (* 30) (* 30)))
   ("measures34thru35.eps" . (cons (* 34) (* 35)))
   ("measures02thru04.eps" . (cons (* 02) (* 04)))
   ("measures40thru47.eps" . (cons (* 40) (* 47)))

        cutout-rectangles = #(alist->hash-table mysnippets)



1) The user would write their musical score as they always do.

2) They would then define an alist that lists all the "cutouts" they want to
extract, for each cutout they would specify a file name, the starting
measure number, and the ending measure number.

3) Upon compiling their score as usual, the full PDF will be generated as
always, but in addition all the "cutouts" will be outputted to the file
names provided in the alist.  The contents of each cutout rectangle would
match exactly, verbatim, to that area of the full score.

4) The users word processor would be set up to "include" these snippet
rectangle eps files where needed.

5) The contents of each eps would be as though I physically took a razor
blade and "cutout" that rectangle from the paper.  Each cutout would contain
all vertical staffs at the named measures exactly as shown in the full
score, including chordnames, lyrics, tabs, whatever.

Logically I think this enhancement belongs in the \paper block because it is
really meant to be a score that has been "cutup" for use by a "pasteup"
artist.  Probably the best way to do it would be a post-process that takes
the full .ps file and carves out the rectangles from that.  That would
insure that they always match the full score perfectly.  Maybe "comment
markers" can be embedded in the ps file at lily run time, then all the
post-processor has to do is find the markers and write out the postscript
"cutouts" to separate files based on from/to markers?

How much would this cost to develop based on whatever way YOU think is best
to implement/code it?  I am really only interested in the resulting
capability, not how it actually gets accomplished.


        Mats Bengtsson
        Signal Processing
        Signals, Sensors and Systems
        Royal Institute of Technology
        SE-100 44  STOCKHOLM
        Phone: (+46) 8 790 8463                         
       Fax:   (+46) 8 790 7260
        Email: address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]