lilypond-user
[Top][All Lists]
Advanced

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

Re: Lilypond extension to Carnatic Music


From: Flaming Hakama by Elaine
Subject: Re: Lilypond extension to Carnatic Music
Date: Tue, 17 Oct 2017 20:54:04 -0700



> From: Arulmani MaIdhayan <address@hidden>
>  To: address@hidden
>  Date: Tue, 17 Oct 2017 12:54:13 +0530
>  Subject: Lilypond extension to Carnatic Music

>  Dear sir,

>  I am interested in knowing whether Lilypond could output from Text to
>  Text. Let me explain, what I mean.

>  Lilypond, as it is, outputs Western Staff Notation from input of Text.

>  If Lilypond is capable of doing such a difficult task, I presume that
>  it will be a very simple task for it to output a text in the place of
>  the Western Notation. In other words, what I want is that Lilypond
>  should output a text equivalent to the present text input.

>  Carnatic Music Notation is a text just like the .ly file. Please see
>  the attachments. If you guide me through I will be able to work to the
>  above effect, though I am not a programmer as such. If you are able to
>  do the job by assigning some people, it will be a great service,
>  However, if it is not possible for you, if you set me on the right
>  track, I will be able to use people here to take it to that level.

>  Thanking you,

>  Hopefully,
>  Arulmani M.

>  P.S. Please find some attachments that gives you an idea of what is to
>  be achieved.





I have a few preliminary comments. 
Some of your requests are beyond my experience level.
Here's what I can convey at this point:



Regarding your interests:

1) I would prefer the above chord in its various designs to be represented as follows:
    i) C = C+E+G+C
    ii) C = C+G+C+E
    iii) C = C+C+E+G
    iv) C = C+E+G+G
        » 135C1
        » 151C3
        » 113C5
        » 135C5
        » 153C5


In general, it is possible to create arbitrary chord markup.
The ones you suggest are certainly possible.

However, you will have to construct each such chord that you want to see. 

In general, in Lilypond, to get your specific chord names,
we will have to come up with some workarounds to distinguish among them,
sicne many of them are currently considered the "same" chord by Lilypond,

In particlar, Lilypond's chord syntax doesn't recognize doubled notes. 
So, we'll have to come up with alternate ways of representing, for example 1 1 3 7


Just to be clear, if you want your chord to look like (for example):
    C^7
    1137

Then you will need to define "chord exceptions",
and add an entry for this particular voicing.

Note that in this example, I have not attempted to do the proper formatting. 
The default lilypond chord style is to print the root, then some markup to the right.
I can get it the numbers to go down, but not to the left.
We'll have to figure that out.

Note that the chord definition syntax uses the pattern, <>-\markup {}
where the - would normally indicate a default location. 

Often, you could use the pattern <>_\markup {} to get things below,
as well as <>^\markup {} to put things above,
but this doesn't seem to work in chord names.

Not only does the markup always go to the right, the translate command doesn't
move it to the left, even with large numbers.


In any case, here is a brief example of how to do one of your chords.



\version "2.18.2"

musicSequence = {
    %  To show the actual pitches, we can use regular chords, like this 1137:
    <c' c' e' b'>1
}
chordSequence = \chordmode {

    %  Chosing Lilypond chord input for "1 3 7", to represent 1137,
    %  since Lilypond removes duplicate notes from chord notation.

    %  Note that 7 means minor 7, so the 7.7+ is actually just the way
    %  to specify yes, a 7th, but change it from minor to major 7.
    c1:1.3.7.7+
}

carnaticChordNames = {
    <c e b>1_\markup { \translate #(cons -4 -2 ) \tiny "1137" }
}
chExceptions = #(append (sequential-music-to-chord-exceptions
carnaticChordNames #t) ignatzekExceptions)


<<
    \new ChordNames {    
        \set chordNameExceptions = #chExceptions
        \chordSequence
    }
    { \musicSequence }
>>




Regarding note entry, I'm sure that carnatic names could be created,
if they do not already exist, as we already have support for many
languages, and sargam and solfege seem to have a 1-1 mapping.


Regarding displaying notes as text,
with the capitalization and dots and semicolons and lines and brackets,
that it a bit above my experience level. 

However, just like we have more than one way to process music input (layout, and midi),
I'm sure that a carnatic processor would be possible, in theory. 
Also above my experience level.


Regarding keys, it does not appear that there is any visual output based on the key signature.
Since note entry in lilypond is absolute names, if you want Me instead of Ma,
you'd just enter me instead of ma. 
You would not say ma but expect the key signature to "correct" the note.
So, I'm not sure there is any work to be done for key signatures.
If there is, we'd need a description of what is supposed to be done with it.

(Inclidentally, the Nauntanki musicians I've worked with from India
use a different numbering system for identifying keys,
based counting the black keys starting with Db
    Db: 1
    Eb: 2
    Gb: 3
    Ab: 4
    Bb: 5
and the white keys are referred to by 1/2 steps above or below those numbers.
I'm curious if you are familiar with this approach, and how it contrasts with the one you cite.)


Regarding time signatures, again it doesn't appear that there is any
unique visual input associated with the time signatures. 
The example you provide uses western signatures. 
Could you clarify what you'd like, or if western notation for the time signature is fine.


I hope this is helpful.


Thanks,

David Elaine Alt
415 . 341 .4954                                           "Confusion is highly underrated"
address@hidden
self-immolation.info
skype: flaming_hakama
Producer ~ Composer ~ Instrumentalist
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


reply via email to

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