lilypond-devel
[Top][All Lists]
Advanced

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

Re: A small step for guitar chord diagrams: syntax


From: Heikki Johannes Junes
Subject: Re: A small step for guitar chord diagrams: syntax
Date: Mon, 02 Feb 2004 03:37:54 +0200 (EET)
User-agent: HUT webmail, IMP 2.2.6

On Sun, 01 Feb 2004 23:37:30 +0100 José Luis Cruz
<address@hidden> wrote:

> I am one of those guitarist who would be happier if their favourite
> note typesetting program supported engraving of chord diagrams. :)

I am just a self-educate gitarist :)

> At first, i would recommend begin making the diagrams only manually..

Of course. The syntax should be the most general. I tried to specify how it
could be implemented.

> If you could just tell it which symbol you want on which position...
> and leave it open... I imagine that it would not cost anything opening
> the door for personalization on diagrams by something like:
>
> \property Score.TabDiagram \override #'number-frets = #5

This look analogous to Tablatures, in which fret number is customable.

> \property Score.TabDiagram \override #'no-string-symbol = #'"x"

Optionally, `x´ could be also omitted.
 
> This is my wishlist:
> 
> - Being able to change the size of the diagram.
> - Text of diagram is a markup.

Text and diagram should scale together, I guess.

> - Setting the glyph i want for dots. (numbers, little black dots, or
> big ones)

A good symbol could be, for example, black filled circle that has a white number
which tells the finger.

> - Under each string, you can write the text/character you want.
> (fingering, note, grade, etc)

I think the syntax is possible to implement...

> - Being able to select the character that marks the unused strings.
> ...

This was proposed already above

> 
> if the project it's getting real, i'll think more  :)
> 
> 
> So apart from normal chords, which are the ones that 80%? users will
> use ever, the rest of us will be able to create our dreamed diagrams
> like:
> 
> 
>  A arpeggio
> 
> x         o
> ----------- 
> |_|_|_|_|_|
> |_|_o_O_o_|
> |_|_|_|_|_|
> |_o_|_|_|_|
> O | | | | |
> 1 3 5 1 3 5

Seems like here `x´ does not mean here a mute string ... that means customable
string both below and above... and `O´ is different than `o´ ...

The sixth string needs string both below and above: 
  e,\6^\markup{"x"}_1
where "x" overrides the empty string above the string.

Also, the centered circle could be markup, something like
  e,\6^\markup{"x"}-\markup{\bigger \filledcircle}_1

>   A Dorian arpeggio on 1 pos.
> 
>   |---|---|---|---|---| 
>   |   |   5   |   |  13   IV
>   |---|---|---|---|---|
>   |  b3   |   |  11   |
>   |---|---|---|---|---|
>   |   |   |   9   |   |
>   |---|---|---|---|---|
>  (1)  |  b7   |   |   |
>   |---|---|---|---|---|

I agree that roman numbering is better to show the fret number.
Also, if `IV´ or similar is shown, the top line should be thin, not bold.
( 1BTW, this look much like Tablature turned 90 degree clockwise. )
You're right, there no reason to restrict the number of fret positions on a 
string.

The above chord diagram could typed as:

<
  b,\6-\markup{ "(1)" }
  d\5-\markup{ "b3" }
  fis\4-5 a\4-\markup{ "b7" }
  cis'\3-9
  e'\2-\markup{ 11 }
  gis\1-\markup{ 13 }
>

>   C-M7(b9) ->> C-M7(#9)
> 
>   X                   X
>   =====================
>   |---|---|---|---|---|
>   |   |   o   |   |   |
>   |---|---|---|---|---|
>   |   |   |   |  b9   |
>   |---|---|---|---|---|
>   |   O   |   |   |   |
>   |---|---|---|---|---|
>   |   |   |   o  (#9) |
>   |---|---|---|---|---|
> 
>       C  Eb   B  Db/D#
> 
> José Luis

For this, syntax could be:

<
  c\5_\markup{ "C" }
  es\4_\markup{ Eb }
  b\3_\markup{ B }
  cis\2-\markup{ b9 } dis\2-\markup{ (#9) }_\markup{Db/D#}
>:\markup{ C-M7(b9) ->> C-M7(#9) }

This is already rather complete set of features. 

I will summary all the features which could be present:
- a new context: \context TabDiagram { ... }
- customable numbers and tunings of strings (like Tablatures rotated -90 deg)
- default markups above each string (overridable): 
    `x´ - above unused string
    `o´ - above open string (open circle symbol)
- string positions are grouped into a chord:    < ... >
    - string position is given as note, e.g.    a,\5
    - there is centered markup below note, e.g. a,\6_1
                                                a,\6_\markup{ "A" }
    - the filled symbol can be overriden, e.g.  a,\6-\markup{ \bigger "o" }
    - overridable symbol above thestring, e.g.  a,\6^\markup{"x"}
    - there may be many string positions, e.g.  cis\2 dis\2
    - always the minimum fret position is found (except the free string `o´),
      and the fret number is printed right to the diagram if it is greater
      than one, as roman number
- after the chord there may be a duration,      < ... >4
- above the diagram there is a chord markup:    < e,\6 a,\5:/E ... >
- and that markup could also be overriden       < e,\6 a,\5:\markup{ ... } ... >

I am not capable to program this, but I hope that the specification of syntax
given above could give somebody a good kick start.

Greetings,

  Heikki Junes




reply via email to

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