Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

harmony module desiderata #13

Open
uliska opened this issue Nov 16, 2019 · 0 comments
Open

harmony module desiderata #13

uliska opened this issue Nov 16, 2019 · 0 comments

Comments

@uliska
Copy link
Contributor

uliska commented Nov 16, 2019

I have now for the first time tried to integrate @mmeyn's functional analysis code in a project. I am surprised and greatly pleased to see how natural the input language works. After the first two or three symbols I could essentially guess how the input syntax works for the other symbols :-)

So I strongly suggest to integrate this code as a new harmony module. However, there are a few things we have to take care of and a few wishes I'd want in addition:

Generality

The main issue I have is that this approach is not really generic. There is support for functions and grades, separately implemented. I think we should try as hard as possible to provide a common infrastructure where additional analysis styles can be plugged in.

Contexts

I would strongly prefer having a new context instead of abusing Lyrics. Even a clone with a dedicated name would be better. However, ideally we'd have a Functions context where functions can directly be entered. also \addlyrics should be replaced by something like \addfunctions and \addgrades. However, as this may note be real functions but related to the actual input language parser, it may be very hard to achieve.

Functionality

  • Arrows
    For intermediate functions I'd like to have the option to print an arrow, something like "(D)=>" "[S]" for an intermediate dominant leading to a (suppressed) subdominant.
  • Voice leading
    I'd like to have the possibility to express something like "D_9>" "D_8" (a dominant with a minor ninth resolved to the fundamental) in a way that prints something like a hyphen between the two numbers. Currently I can only use the input given above or "D_9" "_8", which works too but prints the 8 pretty lost in space
  • Frames
    We should make it possible to print frames around interchangeable chords that are used as modulation chords, i.e. two symbols at the same time in adjacent stanzas. For that we should probably modify the way frames are printed anyway. I would not implement them as spanners but as music functions that determine the first and last note within the music expression (explicitly including single notes (or lyrics)) and determining the total extents of the included paper columns to also take accidentals and scripts into account. This should also work for the analysis symbols.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant