lilypond-user
[Top][All Lists]
Advanced

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

Re: Harmonic reduction


From: Kevin Barry
Subject: Re: Harmonic reduction
Date: Sun, 21 Jun 2020 09:46:40 +0100

Hi Urs,

I'm not aware of any such tools for LilyPond, but there is a format,
"**kern", that is used in music analysis and research. I don't know if
it can do what you want, but it is designed to be friendly to any tools
that can process plain text. You can find out more about it here:
https://www.humdrum.org/index.html
There is a whole toolkit for analysing files in that format.

Kevin

On Tue, Jun 16, 2020 at 11:42:01AM +0200, Urs Liska wrote:
> 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
>   >>
> }
> 
> 
> 





reply via email to

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