Hi all,

did anyone so far create a tool for an automatic harmonic reduction of
polyphonic music?

Attached you'll find one way how that could look like done manually.

The task would be to

 * read an arbitrary number of voices (music expressions)
 * determine the moments where "something" happens (note/rest)
 * calculate the chords for each of these steps
 * construct the corresponding music
    * a) at the absolute pitches
    * b) squashed into one of two ranges (all notes within one octave /
      "closest" setting but in order (this is not in the example)) 

I'm not fixated in *exactly* the output of the example but would like
to know if there's something existing in that direction.

Thanks
Urs
\version "2.20.0"

%\include "oll-core/package.ily"
%\loadPackage notation-fonts
%\useNotationFont \with {
%  extensions = ##t
%} arnold

\paper {
  indent = 3\cm
  system-count = 1
}

\layout {
  \context {
    \Score
    \accidentalStyle dodecaphonic
    \override InstrumentName.font-size = #-1
  }
}

voice = \relative {
  r4 r8 cis'4 d c8

  |

  c ( fis4. ~ fis8 ) es es f
}

pianoUp = \relative {
  \clef bass
  r8 b, ( a'4 -> ) r8 b, ( g'4 -> )

  |

  r8 g ( as,4 g'16-. ) r a,4 ( gis'8 )
}

pianoDown = \relative {
  \clef bass
  r8 g,4 ( gis,16-. ) r r8 a4 ( gis'16-. ) r

  |

  r8 a,-. [ a
  %-\arnoldStrongbeat
  ( b'16 )]  r r4 b
}

combOneUp = \relative {
  r4 r8 cis'16 ~ cis ~ cis8 d8 ~ d c16 ~ c

  |

  c8 fis ~ fis ~ fis16 ~ fis ~ fis ~ fis es8 ~ es f
}

combOneDown = \relative {
  \clef bass
  r8 <g, ~ b>8 <g a'~ > <gis, a''~ >16 a'' r8 <a,, b'>8 ~ <a g''> ~ <gis' g'>16 ~ g'

  |

  r8 <a,, g''>8 <a as'> ~ <as' b>16 ~ as g' r a,8 ~ <a b> ~ <b gis'>
}

combTwo = \relative {
  r8 <g' b>8 ~ <g a> ^~ <cis, gis' a>16 ~ <cis a'> ~ cis8
  <d a' b>8 ~ <d g a> ~ <c g'! gis>16 ~ <c g'!>

  |

  c8 <fis g a> ~ <fis as a!> <fis as b>16 ~ <fis as> ~
  <fis g> ~ fis <es a>8 ~ <es a b> ~ <f gis b>
}

rhythm = \relative {
  r8 d'' d d16 d d8 d d d16 d

  |

  d8 d d d16 d d d d8 d d
}

\score {
  <<
    \new Staff \with {
      instrumentName = "Voice, orig."
    } \voice
    \new PianoStaff \with {
      instrumentName = "Piano, orig."
    } <<
      \new Staff \pianoUp
      \new Staff \pianoDown
    >>
    \new PianoStaff \with {
      instrumentName = "Comb. 1"
      \omit Stem
      \omit Flag
      \omit Beam
      \omit Rest
      \omit Dots
    }
    <<
      \new Staff \combOneUp
      \new Staff \combOneDown
    >>

    \new Staff \with {
       \override StaffSymbol.line-count = 1
       \autoBeamOff
       \omit Clef
       \omit NoteHead
       \omit Accidental
    } \rhythm
    \new Staff \with {
      instrumentName = "Comb. squashed"
      \omit Stem
      \omit Flag
      \omit Beam
      \omit Rest
      \omit Dots
    } \combTwo
  >>
}



Attachment: excerpt.pdf
Description: Adobe PDF document

Reply via email to