On Thursday, 7 October 1999, Han-Wen Nienhuys writes:
> > I don't understand your objection.
>
> Your code repeats htis over and over
>
> if (chord_type_i == X)
> {
> pitch_arr_.push(Musical_pitch(X ))
> pitch_arr_.push(Musical_pitch(X ))
> pitch_arr_.push(Musical_pitch(X ))
> }
>
> where the only real information is on the X-es. If you use struct
> initializers, you can use a loop to code the above more efficiently
In addition: you and others found that there were two or three small
bugs in the present code. That code used a smart, but apparently
not smart enough, algorithm to *calculate* all possible chords. You
said that you could 'fix' it. Instead of fixing it, you're trying
to list all possible chords, even the simple ones, which is a real
stupid approach, imo. Also, you need a list of modifiers that people
would have to learn. That's silly too.
In my view:
- the -dim entry should be fixed
- the /Base should be fixed to accept non-chord notes. it should
set a Base_request (see Tonic_request)
- the whole pitch-order mangling and looking for tonic should be
junked: just look at tonic and base requests.
- we could do with another chord naming style, besides Banter.
It's just that I don't know much about chords, don't use them, and
don't care for them. Also, I have not enough doco on the various
american/european naming conventions.
Jan.
--
Jan Nieuwenhuizen <[EMAIL PROTECTED]> | GNU LilyPond - The music typesetter
http://www.xs4all.nl/~jantien/ | http://www.lilypond.org/