tablature with lilypond
Moderators: MattKingUSA, khz
tablature with lilypond
edit: The new documentation about lilypond you can find at:
http://kainhofer.com/~lilypond/Document ... x.html#Top
Here some info about it:
http://www.guitarmiami.com/lilypond
http://lilypond.org/doc/v2.11/Documenta ... tar#Guitar
edit: tuxguitar version 1 has a lilypond plugin
http://www.tuxguitar.com.ar/tgwiki/doku ... r_lilypond
http://www.tuxguitar.com.ar/forum_posts ... 3&view=NEW
http://kainhofer.com/~lilypond/Document ... x.html#Top
Here some info about it:
http://www.guitarmiami.com/lilypond
http://lilypond.org/doc/v2.11/Documenta ... tar#Guitar
edit: tuxguitar version 1 has a lilypond plugin
http://www.tuxguitar.com.ar/tgwiki/doku ... r_lilypond
http://www.tuxguitar.com.ar/forum_posts ... 3&view=NEW
Last edited by studio32 on Sat Sep 06, 2008 12:24 pm, edited 3 times in total.
Bends: http://lilypond.org/doc/v2.11/Documenta ... -and-doits
Slides: http://lilypond.org/doc/v2.11/Documenta ... #Glissando
or (for midi)
Fake Hammer on with slurs:
http://lilypond.org/doc/v2.11/Documenta ... lurs#Slurs
Harmonic and dampened notes
http://lilypond.org/doc/v2.11/Documenta ... ened-notes
Parentheses
http://kainhofer.com/~lilypond/Document ... arentheses
Transparant stems and beams:
Invisible Dots in tablature
Invisible slurs in the tablature
use \tag , see also the second example below....
http://kainhofer.com/~lilypond/Document ... Using-tags
examples
Check: http://draft.wikilily.org/wiki/index.php/Signe for an example.
or: http://12stringmusings.blogspot.com/200 ... ogram.html
Slides: http://lilypond.org/doc/v2.11/Documenta ... #Glissando
or (for midi)
Code: Select all
\acciaccatura {fis\5 } g4\5
http://lilypond.org/doc/v2.11/Documenta ... lurs#Slurs
Harmonic and dampened notes
http://lilypond.org/doc/v2.11/Documenta ... ened-notes
Parentheses
http://kainhofer.com/~lilypond/Document ... arentheses
Transparant stems and beams:
Code: Select all
\override TabStaff.Stem #'transparent = ##t %% Makes stems transparent
\override TabStaff.Beam #'transparent = ##t %% Makes beams transparent
Code: Select all
\override TabStaff.Dots #'transparent = ##t
use \tag , see also the second example below....
http://kainhofer.com/~lilypond/Document ... Using-tags
examples
Check: http://draft.wikilily.org/wiki/index.php/Signe for an example.
or: http://12stringmusings.blogspot.com/200 ... ogram.html
Re: tablature with lilypond
There are some new tablature functions in 2.12:
http://lilypond.org/doc/v2.12/Documenta ... /NEWS.html
http://lilypond.org/doc/v2.12/Documenta ... fe648fb.ly
Sponsored by Mike Amundsen
http://lilypond.org/doc/v2.12/Documenta ... /NEWS.html
http://lilypond.org/doc/v2.12/Documenta ... fe648fb.ly
Sponsored by Mike Amundsen
Re: tablature with lilypond
Anyone who would like to be involved in documenting/discussing features missing from LilyPond's guitar tab support, please send me an off-list email at the following address:
dstocker<at>thenotesetter.com
When we have a list of around 10-15 specific items, we can then prioritize and start to talk about sponsorship of features and then send a proposal to -devel.
Thanks,
Dave
- nathan
- Site Admin
- Posts: 405
- Joined: Mon Dec 11, 2006 8:53 pm
- Location: Phoenix, AZ
- Been thanked: 5 times
- Contact:
Re: tablature with lilypond
I just hope more people will use lilypond for tablature and that lilypond will be improved for lilypondnathan wrote:Thanks for all this info...this is a great reference.
Check the Lilypond Snippet Repository (LSR) for example: http://lsr.dsi.unimi.it/LSR/Search?q=tab
- nathan
- Site Admin
- Posts: 405
- Joined: Mon Dec 11, 2006 8:53 pm
- Location: Phoenix, AZ
- Been thanked: 5 times
- Contact:
Re: tablature with lilypond
Cool. I actually didn't know Lily had this capability when it comes to tabs.
Re: tablature with lilypond
I'm also discussing how to improve the Frescobaldi templates for (notation and) tablature, for guitar and bass.
Re: tablature with lilypond
It's now possible in Frescobaldi svn to include predefined fret diagrams into the score
Re: tablature with lilypond
(lilypond user mailinglist: tablature.ly)
tablature-test1.ly
(save files with *.ly extension)
Happy testing and report issues on the lilypond user mailinglist
tablature.ly:Hello tablature users*,
after some days of struggling with lilypond's internals, I have created a file tablature.ly
which supports:
1) two commands to switch between the display style:
\tabNumbersOnly shows only the mubers,
\tabFullNotation shows up everything (as it is the default in \TabVoice upto now)
2) two commands for the possible clefs:
\calligraphicTabClef #<tuning>
\sansSerifTabClef #<tuning>
(I didn't like "modern" or "old" clef, so I used commands which describe the apperance
of the clefs).
The sans serif clef is available for 4 to 7 strings. It internally sets
\TabStaff.stringTunings to <tuning>.
3) some more tunings are defined:
guitar-seven-string-tuning
guitar-drop-d-tuning bass-four-string-tuning bass-drop-d-tuning bass-five-string-tuning bass-six-string-tuning
(yes I know, the already defined "bass-tuning" is the same as my "bass-four-string-tuning", but
as I write music for various basses, this is easier to read at first glance.)
4) commandos for palm mute playing and dead notes are supported (palm mute is not a tablature-specific
issue, but as electric guitar players use tablature and often play palm mute, I think this is ok).
At first I thought of using \x for dead notes, but in other threads \x is used for almost everything,
so I leave it to the user to say x = \deadNotes and use \x for faster typing myriads of dead notes
I post this along with a test file, so you can check this out.
*Carl, which isn't really a tablature user, has given me a lot of support an insight to lilypond,
and he proposed to include tablature.ly in future releases of lilypond, so this would be the place to
go for further development (bendings, etc.). Establishing \tabNumbersOnly as a standard would mean to
break with older versions, but as it is a single command, this should not be considered as a serious
drawback.
As there are more people invoved in developing tablature extensions for lilypond, I send tablature.ly
to this list for testing purposes, so changes, corrections etc. could be discussed before establishing
the file in future versions. As I said before, it is just a starting point, any suggestions, improvements
etc. are welcome. Are there other tunings we should consider being defined internally?
Yet again, I would like to thank Carl for his great help and patience, and as far as I can see now,
making contributions to lilypond is easier than one might think, there are a lot of people outside
willing to help you, if you are willing to bring lilypond further on, so give it a try!
Greetings,
Marc
Code: Select all
% tablature.ly
% these definitions will be moved to scm/output-lib.scm
#(define-public guitar-seven-string-tuning '(4 -1 -5 -10 -15 -20 -25))
#(define-public guitar-drop-d-tuning '(4 -1 -5 -10 -15 -22))
#(define-public bass-four-string-tuning '(-17 -22 -27 -32))
#(define-public bass-drop-d-tuning '(-17 -22 -27 -34))
#(define-public bass-five-string-tuning '(-17 -22 -27 -32 -37))
#(define-public bass-six-string-tuning '(-12 -17 -22 -27 -32 -37))
% some publications use the triangled note head
% for palm mute, so here we go:
palmMuteOn = { \set shapeNoteStyles = #'#(do do do do do do do ) }
palmMuteOff = { \unset shapeNoteStyles }
% for single notes (or groups of notes within { ...} :
palmMute = #(define-music-function (parser location note) (ly:music?)
#{
\set shapeNoteStyles = #'#(do do do do do do do )
$note
\unset shapeNoteStyles
#})
% x-tab-format uses a "x" instead of the fret number:
#(define (x-tab-format str context event)
(make-whiteout-markup
(make-vcenter-markup
(markup #:musicglyph "noteheads.s2cross"))))
% dead notes are marked with a cross-shape note head,
% both in normal notation and in tablature:
deadNotesOn = {
\override NoteHead #'style = #'cross
\set tablatureFormat = #x-tab-format
}
deadNotesOff = {
\unset tablatureFormat
\revert NoteHead #'style
}
% for single notes or groups of notes within {...}:
deadNotes = #(define-music-function (parser location notes) (ly:music?)
#{
\override NoteHead #'style = #'cross
\set tablatureFormat = #x-tab-format
$notes
\unset tablatureFormat
\revert NoteHead #'style
#})
% define sans serif-style tab-Clefs according to
% http://lsr.dsi.unimi.it/LSR/Item?id=323
% for 4, 5, 6 and 7 strings
#(define-markup-command (customTabClef layout props tuning) (pair?)
(let* ((num-strings (length tuning))
;; the number of strings has to be in 4...7
(num-strings (cond ((< num-strings 4) 4)
((> num-strings 7) 7)
(else num-strings)))
(raise-value (- (* num-strings 0.4) 0.9))
(font-size (- (* num-strings 1.5) 7))
(base-skip (cond ((= 4 num-strings) 1.55)
((= 5 num-strings) 1.84)
((= 6 num-strings) 2.00)
((= 7 num-strings) 2.08)))
(new-props (cons (list
'(font-family . sans)
(cons 'baseline-skip base-skip))
props)))
(interpret-markup layout new-props
(markup #:raise raise-value #:bold #:fontsize font-size
#:column ("T" "A" "B")))))
% Wrappers for the different clefs
% the argument is the string-tuning, which is automatically set.
sansSerifTabClef = #(define-music-function (parser location tuning) (pair?)
#{
\override TabStaff.Clef #'stencil = #ly:text-interface::print
\override TabStaff.Clef #'text = \markup \customTabClef $tuning
\set TabStaff.stringTunings = $tuning
#})
calligraphicTabClef = #(define-music-function (parser location tuning) (pair?)
#{
\revert TabStaff.Clef #'stencil
\set TabStaff.stringTunings = $tuning
#})
% commands for switching between tablature with numbers only...
tabNumbersOnly = {
% no time signature
\override TabStaff.TimeSignature #'stencil = ##f
% no stems, beams, dots, ties and slurs
\override TabVoice.Stem #'stencil = ##f
\override TabVoice.Beam #'stencil = ##f
\override TabVoice.Dots #'stencil = ##f
\override TabVoice.Tie #'stencil = ##f
\override TabVoice.Slur #'stencil = ##f
% no tuplet stuff
\override TabVoice.TupletBracket #'stencil = ##f
\override TabVoice.TupletNumber #'stencil = ##f
% no dynamic signs, text spanners etc.
\override DynamicText #'transparent = ##t
\override DynamicTextSpanner #'stencil = ##f
\override TextSpanner #'stencil = ##f
\override Hairpin #'transparent = ##t
% no rests
\override TabVoice.Rest #'stencil = ##f
\override TabVoice.MultiMeasureRest #'stencil = ##f
% no markups
\override TabVoice.Script #'stencil = ##f
\override TabVoice.TextScript #'stencil = ##f
}
% and the full notation
tabFullNotation = {
% time signature
\revert TabStaff.TimeSignature #'stencil
% stems, beams, dots
\revert TabVoice.Stem #'stencil
\revert TabVoice.Beam #'stencil
\revert TabVoice.Dots #'stencil
\revert TabVoice.Tie #'stencil
\revert TabVoice.Slur #'stencil
% tuplet stuff
\revert TabVoice.TupletBracket #'stencil
\revert TabVoice.TupletNumber #'stencil
% dynamic signs
\revert DynamicText #'transparent
\override DynamicTextSpanner #'stencil = ##f
\revert TabVoice.DynamicTextSpanner #'stencil
\revert TabVoice.Hairpin #'transparent
% rests
\revert TabVoice.Rest #'stencil
\revert TabVoice.MultiMeasureRest #'stencil
% markups
\revert TabVoice.Script #'stencil
\revert TabVoice.TextScript #'stencil
}
Code: Select all
\version "2.12.2"
\include "tablature.ly"
\markup {First, a lot of stuff as it is displayed both in notation and in tablature.}
alotofstuff = {
\time 3/4
c4^"test" d( e)
f4\f g a^\fermata
c8\< c16 c ~ c2\!
c'2.
\mark \default
R2.
r4 d4 r8 r
\times 3/4 { b4 c d c }
c4. d-_( e\varcoda)
->f g~ a\prall g\thumb e-. f-. g-.
\times 3/4 { b4 c d c }
\bar "|."
}
\score {
<<
\new Staff \alotofstuff
\new TabStaff \alotofstuff
>>
}
\markup{When we invoke tabNumbersOnly, it looks better.}
\score {
<<
\new Staff \alotofstuff
\new TabStaff { \tabNumbersOnly \alotofstuff }
>>
}
\markup{ tablature.ly supports an easy way to mark notes as played palm mute-style...}
palmmute = \relative c, {
\time 4/4
e8^\markup { \musicglyph #"noteheads.u2do" = palm mute } \palmMuteOn e e \palmMuteOff e e \palmMute e e e
e8 \palmMute { e e e } e e e e
\palmMuteOn
< e b' e>8 e e e <e b' e>2
\bar "|."
}
\score {
<<
\new Staff { \clef "G_8" \palmmute }
\new TabStaff { \tabNumbersOnly
\calligraphicTabClef #guitar-tuning
\palmmute }
>>
}
\markup {... or dead notes:}
deadnotes = \relative c,, {
e8. \deadNotesOn e16 \deadNotesOff g4 a b
e8. \deadNotes e16 g4 a b
e,4. \deadNotes { e8 e e } e4
\bar "|."
}
\score {
<<
\new Staff { \clef "bass_8" \deadnotes }
\new TabStaff { \tabNumbersOnly
\sansSerifTabClef #bass-four-string-tuning
\deadnotes }
>>
}
\markup { The new sansSerifTab-Clef supports tablatures from 4 to 7 strings.}
% some stuff
bass = \relative c,, {
e4 g a b
b4 f g d'
\bar "|."
}
% four strings, calculated clef
\score {
<<
\new Staff { \mark \markup{4 strings}
\clef "bass_8" \bass }
\new TabStaff { \tabNumbersOnly
\sansSerifTabClef #bass-four-string-tuning
\bass }
>>
}
% five strings, calculated clef
\score {
<<
\new Staff { \mark \markup{5 strings}
\clef "bass_8" \bass }
\new TabStaff { \tabNumbersOnly
\sansSerifTabClef #bass-five-string-tuning
\bass }
>>
}
guitar = \relative c {
c4 d e f
g4 a b c
\bar "|."
}
% six strings, calculated clef
\score {
<<
\new Staff { \mark \markup{6 strings}
\clef "G_8" \guitar }
\new TabStaff { \tabNumbersOnly
\sansSerifTabClef #guitar-tuning
\guitar }
>>
}
% seven strings, calculated clef
\score {
<<
\new Staff { \mark \markup{7 strings}
\clef "G_8" \guitar }
\new TabStaff { \tabNumbersOnly
\sansSerifTabClef #guitar-seven-string-tuning
\guitar }
>>
}
Happy testing and report issues on the lilypond user mailinglist
Re: tablature with lilypond
New update
tablature-test.ly
happy testing, or wait for the next lilypond release
tablature.lyHello tablature users,
after sending my first version of a tablature.ly-file, I got a lot of positive resonse,
and a lot more of corrections/improvements. Thank you all!
Now, there is a (hopefully) better file which includes the following features/changes:
1) the palmmute/deadnote stuff is the same, only the code has been simplified, thanks to Neil's proposals
2) the \tabNumbersOnly settings are now the default, so when tablature.ly is included, the stems etc. are gone
3) the modern tab clef is now available as any other clef by typing \clef "moderntab"
To implement (3), there is another function necessary, which will be in future releases of lilypond, but
for now, you have to insert the following lines into scm/parser-clef.scm:
;; a function to add new clefs at runtime
(define-public (add-new-clef clef-name clef-glyph clef-position octavation c0-position)
"Append the entries for a clef symbol to supported-clefs and c0-pitch-alist"
(set! supported-clefs
(acons clef-name (list clef-glyph clef-position octavation) supported-clefs))
(set! c0-pitch-alist
(acons clef-glyph c0-position c0-pitch-alist)))
Otherwise the new clef definition won't work.
Thanks again to Carl and Neil for their help!
There is one problem now with the settings in tablature.ly: I simply made ties transparent, but
then, the fret number appears as it were a note to be played. Hopefully somewhere in the future,
I will find a possibility to let the fret number disappear, but as David Stocerk pointed out,
some cases had to be distinguished (the following is a quote from a former posting from David):
(quote...)
It should be noted that a publishing standard is when there is a Note Staff + Tab Staff, tied notes (that is, the notes that are 'held') in the Tab Staff are indicated by parenthesizing the tab number(s). There are several conventions that are related to tied notes in a Notes+Tab situation:
* Tab numbers that are 'tied to' are sometimes parenthesized,
sometimes hidden.
* In the case that 'tied to' notes are hidden, a parenthesized tab
number is usually forced if the 'tied to' note is at the beginning
of a line (i.e., the note is tied over a system break).
* Likewise, parenthesized tab numbers are forced when a 'tied to'
note begins a 2nd ending or Coda section.
* A parenthesized chord in the Tab Staff are indicated with a single
pair of parentheses surrounding all of the notes in the chord (as
opposed to as single pair of parentheses around each individual
note in the chord).
(...quote)
So this seems to be a difficult task, but somehow to manage.
Marc
Code: Select all
%%%% tablature.ly
%%%%
%%%% source file of the GNU LilyPond music typesetter
%%%%
%%%% (c) 2009 Marc Hohl <marc@hohlart.de>
% some publications use the triangled note head
% for palm mute, so here we go:
palmMuteOn = { \set shapeNoteStyles = #(make-vector 7 do) }
palmMuteOff = { \unset shapeNoteStyles }
% for single notes (or groups of notes within { ...} :
palmMute = #(define-music-function (parser location notes) (ly:music?)
#{
\palmMuteOn $notes \palmMuteOff
#})
% x-tab-format uses a "x" instead of the fret number:
#(define (x-tab-format str context event)
(make-whiteout-markup
(make-vcenter-markup
(markup #:musicglyph "noteheads.s2cross"))))
% dead notes are marked with a cross-shape note head,
% both in normal notation and in tablature:
deadNotesOn = {
\override NoteHead #'style = #'cross
\set tablatureFormat = #x-tab-format
}
deadNotesOff = {
\unset tablatureFormat
\revert NoteHead #'style
}
% for single notes or groups of notes within {...}:
deadNotes = #(define-music-function (parser location notes) (ly:music?)
#{
\deadNotesOn $notes \deadNotesOff
#})
% definitions for the "moderntab" clef:
% the "moderntab" clef will be added to the list of known clefs,
% so it can be used as any other clef:
%
% \clef "moderntab"
%
#(add-new-clef "moderntab" "markup.moderntab" 0 0 0)
% this function decides which clef to take
#(define (clef::print-modern-tab-if-set grob)
(let* ((glyph (ly:grob-property grob 'glyph)))
;; which clef is wanted?
(if (string=? glyph "markup.moderntab")
;; if it is "moderntab", we'll draw it
(let* ((staff-symbol (ly:grob-object grob 'staff-symbol))
(line-count (ly:grob-property staff-symbol 'line-count))
(staff-space (ly:grob-property staff-symbol 'staff-space 1)))
(grob-interpret-markup grob (make-customTabClef-markup line-count staff-space)))
;; otherwise, we simply use the default printing routine
(ly:clef::print grob))))
% define sans serif-style tab-Clefs as a markup:
#(define-markup-command (customTabClef layout props num-strings staff-space) (integer? number?)
(define (square x) (* x x))
(let* ((scale-factor (/ staff-space 1.5))
(font-size (- (* num-strings 1.5 scale-factor) 7))
(base-skip (* (square (+ (* num-strings 0.195) 0.4)) scale-factor)))
(interpret-markup layout props
(markup #:vcenter #:bold
#:override (cons 'font-family 'sans)
#:fontsize font-size
#:override (cons 'baseline-skip base-skip)
#:left-align
#:center-column ("T" "A" "B")))))
% commands for switching between tablature with numbers only...
tabNumbersOnly = {
% no time signature
\override TabStaff.TimeSignature #'stencil = ##f
% no stems, beams, dots, ties and slurs
\override TabVoice.Stem #'stencil = ##f
\override TabVoice.Beam #'stencil = ##f
\override TabVoice.Dots #'stencil = ##f
\override TabVoice.Tie #'stencil = ##f
\override TabVoice.Slur #'stencil = ##f
% no tuplet stuff
\override TabVoice.TupletBracket #'stencil = ##f
\override TabVoice.TupletNumber #'stencil = ##f
% no dynamic signs, text spanners etc.
\override DynamicText #'transparent = ##t
\override DynamicTextSpanner #'stencil = ##f
\override TextSpanner #'stencil = ##f
\override Hairpin #'transparent = ##t
% no rests
\override TabVoice.Rest #'stencil = ##f
\override TabVoice.MultiMeasureRest #'stencil = ##f
% no markups
\override TabVoice.Script #'stencil = ##f
\override TabVoice.TextScript #'stencil = ##f
}
% and the full notation
tabFullNotation = {
% time signature
\revert TabStaff.TimeSignature #'stencil
% stems, beams, dots
\revert TabVoice.Stem #'stencil
\revert TabVoice.Beam #'stencil
\revert TabVoice.Dots #'stencil
\revert TabVoice.Tie #'stencil
\revert TabVoice.Slur #'stencil
% tuplet stuff
\revert TabVoice.TupletBracket #'stencil
\revert TabVoice.TupletNumber #'stencil
% dynamic signs
\revert DynamicText #'transparent
\override DynamicTextSpanner #'stencil = ##f
\revert TabVoice.DynamicTextSpanner #'stencil
\revert TabVoice.Hairpin #'transparent
% rests
\revert TabVoice.Rest #'stencil
\revert TabVoice.MultiMeasureRest #'stencil
% markups
\revert TabVoice.Script #'stencil
\revert TabVoice.TextScript #'stencil
}
% the defaults for tablature:
% the clef handler will be included and the tablature
% is displayed \tabNumbersOnly-style:
\layout {
\context {
\TabStaff
% the clef handler
\override Clef #'stencil = #clef::print-modern-tab-if-set
\override TimeSignature #'stencil = ##f
}
\context {
\TabVoice
\override Stem #'stencil = ##f
\override Beam #'stencil = ##f
\override Dots #'stencil = ##f
\override Tie #'stencil = ##f
\override Slur #'stencil = ##f
\override TupletBracket #'stencil = ##f
\override TupletNumber #'stencil = ##f
\override DynamicText #'transparent = ##t
\override DynamicTextSpanner #'stencil = ##f
\override TextSpanner #'stencil = ##f
\override Hairpin #'transparent = ##t
\override Rest #'stencil = ##f
\override MultiMeasureRest #'stencil = ##f
\override Script #'stencil = ##f
\override TextScript #'stencil = ##f
}
}
Code: Select all
\version "2.12.2"
\include "tablature.ly"
% for testing purposes only; in newer versions of lilypond, they will be
% already defined:
#(define-public guitar-seven-string-tuning '(4 -1 -5 -10 -15 -20 -25))
#(define-public guitar-drop-d-tuning '(4 -1 -5 -10 -15 -22))
#(define-public bass-four-string-tuning '(-17 -22 -27 -32))
#(define-public bass-drop-d-tuning '(-17 -22 -27 -34))
#(define-public bass-five-string-tuning '(-17 -22 -27 -32 -37))
#(define-public bass-six-string-tuning '(-12 -17 -22 -27 -32 -37))
\markup{tablature.ly - second attempt.}
alotofstuff = {
\time 3/4
c4^"test" d( e)
f4\f g a^\fermata
c8\< c16 c ~ c2\!
c'2.
\mark \default
R2.
r4 d4 r8 r
\times 3/4 { b4 c d c }
c4. d-_( e\varcoda)
->f g~ a\prall g\thumb e-. f-. g-.
\times 3/4 { b4 c d c }
\bar "|."
}
\score {
<<
\new Staff { \clef "G_8" \alotofstuff }
\new TabStaff { \clef "tab" \alotofstuff }
>>
}
\markup{When we invoke tabNumbersOnly, it looks better.}
\score {
<<
\new Staff { \clef "G_8" \alotofstuff }
\new TabStaff { \tabNumbersOnly \alotofstuff }
>>
}
\markup{ tablature.ly supports an easy way to mark notes as played palm mute-style...}
palmmute = \relative c, {
\time 4/4
e8^\markup { \musicglyph #"noteheads.u2do" = palm mute } \palmMuteOn e e \palmMuteOff e e \palmMute e e e
e8 \palmMute { e e e } e e e e
\palmMuteOn
< e b' e>8 e e e <e b' e>2
\bar "|."
}
\score {
<<
\new Staff { \clef "G_8" \palmmute }
\new TabStaff { \clef "moderntab"
\palmmute }
>>
}
\markup {... or dead notes:}
deadnotes = \relative c,, {
e8. \deadNotesOn e16 \deadNotesOff g4 a b
e8. \deadNotes e16 g4 a b
e,4. \deadNotes { e8 e e } e4
\bar "|."
}
\score {
<<
\new Staff { \clef "bass_8" \deadnotes }
\new TabStaff { \set TabStaff.stringTunings = #bass-four-string-tuning
\clef "moderntab"
\deadnotes }
>>
}
\markup { The new sansSerifTab-Clef supports tablatures from 4 to 7 strings.}
% some stuff
bass = \relative c,, {
e4 g a b
b4 f g d'
\bar "|."
}
\score {
<<
\new Staff { \mark \markup{4 strings}
\clef "bass_8" \bass }
\new TabStaff { \set TabStaff.stringTunings = #bass-four-string-tuning
\bass }
>>
}
% five strings, calculated clef
\score {
<<
\new Staff { \mark \markup{5 strings}
\clef "bass_8" \bass }
\new TabStaff { \set TabStaff.stringTunings = #bass-five-string-tuning
\bass }
>>
}
guitar = \relative c {
c4 d e f
g4 a b c
\bar "|."
}
% six strings, calculated clef
\score {
<<
\new Staff { \mark \markup{6 strings}
\clef "G_8" \guitar }
\new TabStaff { \set TabStaff.stringTunings = #guitar-tuning
\guitar }
>>
}
% seven strings, calculated clef
\score {
<<
\new Staff { \mark \markup{7 strings}
\clef "G_8" \guitar }
\new TabStaff { \clef "moderntab"
\set TabStaff.stringTunings = #guitar-seven-string-tuning
\guitar }
>>
}
% seven strings, calculated clef
\score {
<<
\new Staff { \mark \markup{7 strings, staff space 1.2}
\clef "G_8" \guitar }
\new TabStaff { \clef "moderntab" \override TabStaff.StaffSymbol #'staff-space = #1.2
\set TabStaff.stringTunings = #guitar-seven-string-tuning
\guitar }
>>
}
Re: tablature with lilypond
Here is an example of the tablature test file:
http://rapidshare.com/files/236300960/t ... t.pdf.html
http://rapidshare.com/files/236300960/t ... t.pdf.html
Re: tablature with lilypond
I think those tablature things I posted above are in the dev version of Lilypond.
Another step forward is taken by D. Stocker, he has posted a proposal for bends.
See lilypond user mailinglist archive, message "take 1"
Another step forward is taken by D. Stocker, he has posted a proposal for bends.
See lilypond user mailinglist archive, message "take 1"