Jump to content

Clip systems: Difference between revisions

From LilyPond wiki
m New category
Tags: Mobile edit Mobile web edit
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
This code shows how to clip (extract) snippets from a full score.
This code shows how to clip (extract) snippets from a full score.


This file needs to be run separately with <code>-dclip-systems</code>; the output cannot be shown on this Wiki due to technical limitations. The result will be files named <code><var>base</var>-from-<var>start</var>-to-<var>end</var>[-<var>count</var>].eps</code>.
This file needs to be run separately with <code>-dclip-systems</code>. <span class="nodoc">Note that the output cannot be shown on this Wiki due to technical limitations.</span> The result will be files named <code><var>base</var>-from-<var>start</var>-to-<var>end</var>[-<var>count</var>].eps</code>.


If system starts and ends are included, they include extents of the <code>System</code> grob, e.g., instrument names.
If system starts and ends are included, they include extents of the <code>System</code> grob, e.g., instrument names.
Line 10: Line 10:


<pre>
<pre>
\version "2.24.0"
\version "2.24"
 
#(set-default-paper-size "a6" 'landscape)
\layout {
  indent = 2.4\cm
}


#(ly:set-option 'clip-systems)
#(ly:set-option 'clip-systems)
Line 16: Line 21:
#(define output-suffix "1")
#(define output-suffix "1")


origScore = \score {
origScore = \new Staff \with { instrumentName = "Instrument" }
  \relative c' {
\relative c' {
    \new Staff \with { instrumentName = "Instrument" }
  c1
    c1
  d1
    d1
  \grace c16 e1
    \grace c16 e1
  \key d \major f1 \break
    \key d \major
 
    f1 \break
  \clef bass g,1
    \clef bass
  fis1
    g,1
    fis1
  }
}
}


Line 35: Line 37:
     \layout {
     \layout {
       % Each clip-region is a (START . END) pair
       % Each clip-region is a (START . END) pair
       % where both are rhythmic-locations.
       % where both are rhythmic locations. Syntax:
 
      %
       % (make-rhythmic-locations BAR-NUMBER NUM DEN)
       %   (make-rhythmic-locations BAR-NUMBER NUM DEN)
      %
       % means NUM/DEN whole-notes into bar numbered BAR-NUMBER
       % means NUM/DEN whole-notes into bar numbered BAR-NUMBER


       clip-regions = #(list
       clip-regions = #(list (cons (make-rhythmic-location 2 0 1)
      (cons
                                  (make-rhythmic-location 4 0 1))
      (make-rhythmic-location 2 0 1)
                            (cons (make-rhythmic-location 0 0 1)
      (make-rhythmic-location 4 0 1))
                                  (make-rhythmic-location 4 0 1))
 
                            (cons (make-rhythmic-location 0 0 1)
      (cons
                                  (make-rhythmic-location 6 0 1)))
      (make-rhythmic-location 0 0 1)
      (make-rhythmic-location 4 0 1))
 
      (cons
      (make-rhythmic-location 0 0 1)
      (make-rhythmic-location 6 0 1))
      )
     }
     }
   }
   }
Line 66: Line 62:
   \score {
   \score {
     \lyrics {
     \lyrics {
       \markup { from-2.0.1-to-4.0.1-clip.eps }
       "from-2.0.1-to-4.0.1-clip.eps"
       \markup {
       \markup \epsfile #X #30.0
        \epsfile #X #30.0 #(format #f "~a-1-from-2.0.1-to-4.0.1-clip.eps"
                      #(format #f "~a-1-from-2.0.1-to-4.0.1-clip.eps"
                            (ly:parser-output-name)) }
                                (ly:parser-output-name))
     }
     }
   }
   }

Latest revision as of 15:13, 25 December 2025

This code shows how to clip (extract) snippets from a full score.

This file needs to be run separately with -dclip-systems. Note that the output cannot be shown on this Wiki due to technical limitations. The result will be files named base-from-start-to-end[-count].eps.

If system starts and ends are included, they include extents of the System grob, e.g., instrument names.

Grace notes at the end point of the region are not included.

Regions can span multiple systems. In this case, multiple EPS files are generated.

\version "2.24"

#(set-default-paper-size "a6" 'landscape)
\layout {
  indent = 2.4\cm
}

#(ly:set-option 'clip-systems)
#(ly:set-option 'separate-page-formats 'ps)
#(define output-suffix "1")

origScore = \new Staff \with { instrumentName = "Instrument" }
\relative c' {
  c1
  d1
  \grace c16 e1
  \key d \major f1 \break

  \clef bass g,1
  fis1
}

\book {
  \score {
    \origScore
    \layout {
      % Each clip-region is a (START . END) pair
      % where both are rhythmic locations.  Syntax:
      %
      %   (make-rhythmic-locations BAR-NUMBER NUM DEN)
      %
      % means NUM/DEN whole-notes into bar numbered BAR-NUMBER

      clip-regions = #(list (cons (make-rhythmic-location 2 0 1)
                                  (make-rhythmic-location 4 0 1))
                            (cons (make-rhythmic-location 0 0 1)
                                  (make-rhythmic-location 4 0 1))
                            (cons (make-rhythmic-location 0 0 1)
                                  (make-rhythmic-location 6 0 1)))
    }
  }
}

#(ly:set-option 'clip-systems #f)
#(ly:set-option 'separate-page-formats #f)
#(define output-suffix #f)

\book {
  \score { \origScore }
  \markup { \bold \fontsize #6 clips }
  \score {
    \lyrics {
      "from-2.0.1-to-4.0.1-clip.eps"
      \markup \epsfile #X #30.0
                       #(format #f "~a-1-from-2.0.1-to-4.0.1-clip.eps"
                                (ly:parser-output-name))
    }
  }
}