lilypond-devel
[Top][All Lists]
Advanced

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

Help with making new Context and Engraver


From: Carl Sorensen
Subject: Help with making new Context and Engraver
Date: Tue, 09 Nov 2004 21:18:24 -0700

I'm trying to make a FretDiagram context and a Fret_diagram_engraver to
better implement fret diagrams.

Here's what I've done:

1.  Copied ChordNames context in ly/engraver-init.ly 
Modified as it seemed to make sense to me.
\context {
    \type "Engraver_group_engraver"
    \name FretDiagram

    \description "Typesets fret diagrams."

    \consists "Fret_diagram_engraver"
    \consists "Volta_engraver"
    
    \consists "Rest_swallow_translator" 
    \consists "Output_property_engraver"        
    \consists "Separating_line_group_engraver"
    \consists "Skip_event_swallow_translator"
    \consists "Hara_kiri_engraver"
    
    fretDiagramCreator = #fret-diagram-markup
    voltaOnThisStaff = ##f
    minimumVerticalExtent = #'(0 . 2.5)
    extraVerticalExtent = ##f
    \override SeparatingGroupSpanner #'padding = #0.8
    verticalExtent = ##f 
}
2.  Copied chord-name-engraver.cc to fret-diagram-engraver.cc.  Made
changes as seemed appropriate.  For testing, I have a hard-coded fret
diagram markup.  Got the code to compile and link without error.  Copy
is attached.

3.  Added an entry in scm/define-context-properties.scm for
fretDiagramCreator.

     (fretDiagramCreator ,procedure? "Function used to create fret
diagrams, given a diagram string.")

4.  Created a .ly file to try out the engraver:

\score{
  <<
    \chords{d}
    \new FretDiagram {d}
    \chordmode{d}

  >>
}


Tried executing lilypond: 

address@hidden lilypond]$ lily/out/lilypond fretc2.ly
GNU LilyPond 2.5.0.hwn1
Processing `fretc2.ly'
Parsing...
Interpreting music... warning: Cannot find or create `FretDiagram'
called `uniqueContext1'
[1]
Preprocessing graphical objects...
Calculating line breaks... [2]
Layout output to `fretc2.tex'...
Converting to `fretc2.dvi'...
Converting to `fretc2.ps'...
Converting to `fretc2.pdf'...

I checked with gdb, and, as expected, the code is never executing
Fret_diagram_engraver::process_music.

What step have I missed?

Thanks,

Carl



Attachment: fret-diagram-engraver.cc
Description: Text Data


reply via email to

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