lilypond-devel
[Top][All Lists]
Advanced

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

Re: major feature request (tablature)


From: Carl D. Sorensen
Subject: Re: major feature request (tablature)
Date: Tue, 9 Dec 2008 17:11:42 -0700



On 12/9/08 4:37 PM, "address@hidden" <address@hidden>
wrote:

>> But LilyPond already has an extensive code and data structures base.  To use
>> data structures or code that are not compatible with the LilyPond paradigm
>> is not wise.
> 
> What is wise is to bow to the users expectations, not twist their mind.

You're confusing users with developers.  Code and data structures are
developer-only items.

Input is the user item.

Input can be defined to be practically anything.

Code and data structures should be compatible with existing LilyPond code
and data structures.

> 
> User of tablature is thinking of where to put the fingers, which is
> a stream of
> 
>     { [flag], {fretlist} }
> 
> for italian and french notations, with the fretlist ordered by course
> and a stream of
> 
>     { [flag], {fretCoursePolyphony-row1, -row2, -row3, ... }
> 
> for german, with course implied by the fretglyph encoding.

Why isn't "where to put the fingers" a string, fret pair?  That's what it
seems to me.  Then a duration would be added as well.

> 
> Once I get the docs unrolled from their tar balls... (chicken n egg
> problem, libraries dont have untar utillities n frown on installs on their
> virus-free machines...).

You don't need to pull a tar ball!  Each of the docs is available as a PDF
or a single page HTML.  You can download them directly to your USB drive.

> 
>> (which is what the most common popular music
> 
> say it, Mel Bay editions :-).  I have a couple for banjo.
> 

Actually, the largest collection of tabs I find nowadays for popular music
are created in ASCII format on the internet.

>> You might consider that if you run into difficulty, if you're using the
>> standard parser
> 
> yes, i see that, and it could work well for 6-course lute tab and cittern
> tab (4-6 course instrument); but there will be aspects of the notation
> which simply wont have equivalent data, so maybe in stages.

Won't every note you want to put on a tab have a pitch, a duration, a string
(or course), and a fret number?

Right now, LilyPond has the built-in functionality to, given a pitch, a set
of string tunings, and a desired string, automatically calculate a fret.

LilyPond has the built in functionality to have the input file contain a
pitch, a duration, and a string indication.

This means that with current LilyPond input and computation functionality,
you can obtain a string, fret, and duration to be used to place on a
tablature staff.  No programming is needed at all to obtain the critical
data necessary for your output algorithm.  This simplifies your work; you
simply need to focus on how your algorithm will take the fundamental data
(string, fret, duration, and optional finger) and place it on the tablature
staff.

It doesn't matter if the Klingon astroZither has 37 strings of various
pitches, with 15 of them being used only open.  LilyPond can create an entry
for each note played on any of the strings.  No special input needed
(although it may be desirable, and perhaps should be done later for
convenience).  You can be in complete control of the output without adding
any new input features.

> 
>> If you leave the parser alone and write Scheme code
> 
> a clue to where 'scheme' code is described would be welcome, unique to Ly?
> elsewhere?; in the doc package I have?, somewhere online?
> 

The first thing you will do is add the Scheme code to the LilyPond input
file.  Eventually, once it's debugged, it can be added to the LilyPond
distribution.

Since you put 'scheme' in single quotes, I suspect you don't know about
Scheme programming.  Scheme is a Lisp-like programming language.  A
particular dialect of Scheme, Guile, serves as the LilyPond application
extension language.  If you don't know how to program in Scheme, you'll need
to get up to speed on this in order to work with LilyPond.  The book I
learned Scheme from (back in 1985) was Structure and Interpretation of
Computer Programs, which is available on line at
<http://mitpress.mit.edu/sicp/full-text/book/book.html>.  You can also check
out the Guile Reference Manual at
<http://www.gnu.org/software/guile/manual/guile.html>.
 

>> I'll look forward to seeing how you choose to move forward on this.   I
>> think it will increase LilyPond's appeal as the premier music engraving
>> software.
> 
> priced right I think is the major claim to fame you can honestly make, its
> got a ways to go before the other is clear to all.

I guess I don't need to make it clear to all.

The input format is text based (which I consider to be a great plus).
The untweaked output is superior to any other notation program I've used.
The source is open, so I can add any feature I want.

For me, it's the best available.  YMMV.

Carl





reply via email to

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