lilypond-devel
[Top][All Lists]
Advanced

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

Re: Avoiding typing with Scheme - request


From: Mergh
Subject: Re: Avoiding typing with Scheme - request
Date: Tue, 20 May 2008 02:28:24 -0700 (PDT)

I found a useful solving on the http://lsr.dsi.unimi.it/LSR/Snippet?id=346
(Bach-Praeludium), by a basic simplification anybody can make patterns in
polyphony at any places, too. But something has come up. 

Here's the point by explaining  the noting of Rachmaninoff's Prelude in G
minor
I want to simplify the input of the motifs and what I tinkered this day:

A.) Method LSR 390:
polyphony achieved by the simple '\partcombine':

myRhythmOne = #(define-music-function (parser location music) (ly:music?)
#{ 
        \partcombine
        { \makeRhythm $music "16 16 16 16"   
         
        { \makeRhythm $music "4 4 4 4"  }
#})

works well, but expressions have to write into the \new Staff section:

\myRhythmTwo  {c d e d e f e f \clef bass g f <e g>-- <f a> }

In my case most of the parts have the same expressions, although e.g.
changing clef seemed to be very comfortable. I wasn't able to change the
code to mix the melodies and get a right polyphonic pattern.

B.) LSR 346 (Bach - Praeludium)
It was fine till I've met some variations in the melody. This is my original
scoring:

\new Staff { \time 4/4 \clef bass \key g \minor 

        % 'A' SECTION I. Alternative scoring without chordmode: s8 \repeat 
unfold 2
<bes d>16 [ <bes d>8 ] s4 <bes d>8 s8 <bes d>8  }
         <<
       {  \chordmode  { s8 \repeat unfold 2 bes,16:3 [bes,8:3] s4 bes,8:3 s
bes,:3}  } \\
       {  g8-_ s4 bes,8-_ d-_ s bes'-_   }
     >>  <<
       {  \chordmode  { s8 \repeat unfold 2 bes,16:3 [bes,8:3] s4 bes,8:3 s
bes,:3}  } \\
       {  g8-_ s4 a,16  \( [bes d8_>] \)  s8 \clef treble bes'__ }
     >>  <<
       {  \chordmode  { s8 \repeat unfold 2 bes,16:3 [bes,8:3] } s8 r8
\repeat unfold 2 <g'bes>16 [<g bes>8]} \\
       {  g,8-_ s4 d'16 f g4. bes,16 d }
     >>\break  <<
       {  s8 \repeat unfold 2 <bes' d>16 [ <bes d>8 ] s8 r8 \repeat unfold 2
<g c g'>16 [ <g c g'>8 ] } \\
       {  f4.  bes,16  \( [d <es>4._>] \) g,16 a }
     >>  <<
       {  s8 \repeat unfold 2 <fis' d' fis>16 [ <fis' d fis,>8 ] s4 <g,, d'
e>8 s8 <bes d e>8  } \\
       {  d4. fis,8 bes s g}
     >> 

The chordmode has worked well while I found the corresponding codes in the
manual. I guess I have to figure out the logics of the chord mode but I
haven't grasp it yet (I would use 1st or 2nd inversion). So I decided
looking after an other method. And these are the simplified version of the
score using the transformation method:
   
\defineTransform #'baseA  << {s8 \repeat unfold 2 <d'e'>16 [<d'e'>8]} \\
{c'8-_} >>   
\defineTransform #'baseAv  << {s8 r8 \repeat unfold 2 <f'g'>16 [<f'g'>8]} \\
{c'16 d'16 e'4.} >>
\defineTransform #'baseB  << {s4 <f'g'>8 s8 <f'g'>8} \\ {c'8-_ d'8-_ s8
e'8-_} >>
\defineTransform #'baseB  << {s4 <f'g'>8 s8 <f'g'>8} \\ {c'8-_ d'8-_ s8
e'8-_} >>   
   
 
\new Staff { \time 4/4 \clef bass \key g \minor 
         <<     \baseA { g b d' } >>
         <<   \baseB { b, d b d' b } >>
         <<   \baseAv { f, a, b, b, d } >>
         <<   \baseA { g b d' } >>

5-6 pattern seemed to be enough for the first page and the other sections
need only 3-4 more. I'm using expressions, although I can not change clef in
the middle of a pattern which caused some problems. On the other hand it was
cool till the triads. I was thinking about producing new patterns, but those
would be alike.. I need only triads instead of the intervals of fifth and
this was the point where Lilypond sabotaged my plan. I was curious what's
after replacing notes by chords:
e.g
 <<   \baseA { <g b'> b d' } >>  

 ->> no output. Let's try the chordmode... ->> no output. Well, it is a
great pattern-maker, but it has a great disadvantage: needless to say
composers prefer variety I can not use it with chords nor with a
'cutting-out' feature in case of chords. 

Although other scoring systems have graphical interface, I guess Lilypond
would have to gain some advantages being more flexible because the odds are
in its favor. As far as I'm getting familiar with these codes I think
realizing this function costs a lot of time, therefore having an universal
pattern-funcion is just a proposal from me. Only two features are missing
(in LSR 346): changing clef and making inserting of chords into the pattern
also in the \new Staff section possible. Waiting for Ur reply.. Mergh
-- 
View this message in context: 
http://www.nabble.com/Avoiding-typing-with-Scheme---request-tp17301403p17316744.html
Sent from the Gnu - Lilypond - Dev mailing list archive at Nabble.com.





reply via email to

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