lilypond-user
[Top][All Lists]
Advanced

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

Another sponsorship, hopefully can be done cheaply?


From: Rick Hansen (aka RickH)
Subject: Another sponsorship, hopefully can be done cheaply?
Date: Tue, 17 Oct 2006 13:50:09 -0700 (PDT)

How much would this cost to sponsor?  I've tried to describe it as best I
could below, and provided a sample of what the proposed source code might
look like and a description of what the output would be, please let me know
if there is any confusion about what I'm describing:

Begin:


% PROPOSED SAMPLE SOURCE CODE BEGIN

twoWays = \transpose c c' {
% C7b5
<gf\6 e' bf' c>1
% FMaj7
<f'\4 c' e a>1
}

<<
\new FretBoards \twoWays
\new Voice \twoWays
>>

% PROPOSED SAMPLE SOURCE CODE END

The above source code example would generate a PDF with normal staff of
whole note chords
and the following fretboards painted above it in the newly proposed
"FretBoards" context:

\markup \fret-diagram-terse #"2;x;2;3;1;x;"
\markup \fret-diagram-terse #"x;x;3;5;5;5;"


Note that the new "FretBoards" context ascertained the fret markup by
mapping the octivised notes in the chords specified, to an array of the
fretboard
with a certain tuning and number of strings.  Additionally it "windowed"
into that array based on a "maximum-stretch"
of 5 frets, meaning that it will only search for frets that give the desired
note within that stretch range.
(most guitar chords do not exceed a 5 fret stretch so that is a good
default).  It would move up the strings and
"drop a dot" onto whatever frets produce the desired notes (after
transpose).

Other Method and Specification notes:

0)  A new context will be developed called FretBoards, it will generate
fretboards based upon the provided chords.

1)  The user would code the notes as chords for their fretted instrument
using standard lilypond chord syntax of <note note note>duration (including
octaves, octive jump behaviour follows lowest note of previous chord just
like today)

2)  At a minimum the lowest note in each chord will have a string number
specified in standard string number notation of: \n where n is the string
number.   This will indicate to the algorithm where to start looking on the
fretboard for the notes of the chord to generate the fret dots.   (Note it
is important that no more than one string number be required, so that people
can re-use their notes without having string numbers printing all over the
place)

3)  The new fretboards context will generate the fretboard diagrams of the
specified chords

4)  It will ascertain the fret dots based on a maximum-stretch parameter and
tunings parameter.    Maximum stretch shall default to 5 frets, this is the
"window" in which the algorithm shall look for the desired notes on the
strings within the fret range determined by the on mandatory string number
named to generate the dots.

5)  Additionally FretBoards will have properties to set tuning, number of
strings, number of frets, if unspecified standard guitar tuning (e a d g b
e) and 6 strings will take effect.

6)  The generated fretboards will only contain dot markers, (most guitarists
can figure out intuitively what needs to be barred).   Internally the terse
fretboards can be used, however neck position should indicate the lowest
fret number (in arabic numerals please).    So barre indication and finger
number indication is BEYOND THE SCOPE OF THIS ENHANCEMENT, (just the dots
are good enough).    More than one dot on a string should not occur or be
allowed.

7)  The FretBoards chords will participate in transposition and the
generated fret boards will reflect that transpose.

8)  NO CHORD NAMES will be generated above the fretboards because any
musical chord can theoretically have many different names.    Generating
chord names above the fretboards is BEYOND THE SCOPE OF THIS ENHANCEMENT,
people can use \markup for that.    Additionally root names, bass names, or
anything theoretical is not being requested, this enhancement is meant to be
a simple  mapping of lilypond notated chord stacks to a fretboard, so that
fretboards can now participate in transpose and be entered "by note" which
is more natural for most musicians.

9)  The FretBoards staff will accept \markup attached to the chords
specified, this markup will be generated relative/glued to the generated
fret diagram

10) A boolean shall be included to suppress adjacent duplicate fretboards,
just like duplicate ChordNames can be suppressed today

11) The FretBoards staff additionally will inherit many of the same
properties as Lyrics and ChordNames do for positioning, fonts, etc.



Thanks
Rick




-- 
View this message in context: 
http://www.nabble.com/Another-sponsorship%2C-hopefully-can-be-done-cheaply--tf2462195.html#a6863919
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.





reply via email to

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