> > Chords can be uniquely identified/represented in three ways:
> > * using names such as "Cmin7" "Ebmaj9"
>
> There are chords and fingerings.
>
Ok, i guess we'll go for the chords first. I didn't
think of fingerings, but they can be typeset using the
same input, no?
> > * identify the lowest note, and list all other notes
> > relative to this one; "C: mi-flat, sol, ti"
> > "Es: mi, sol, re"
> > * use a list of pitches "<c es g b>" "<es g bes f>"
>
> Basically, these are the same.
> Rules exist to calculate the individual notes from a chord name, e.g.
> Cmin7 => <c e g bes>.
> Problem area: incomplete chords, e.g. <c e bes>, that would lead to
> verbose names, e.g. Cmin7no5.
>
That's ok, use wierd chords, type long names.
Btw, why the "no", 3 and 5 can't be added?
> > We'll probably need to devise a "language" that allows one
> > to enter the chords in a way that closely resemles their names.
> > How to do
> > * major/minor
> > * augmented/diminished?
>
> See Attachment B for an example.
>
Thanks, that looks like a good starting point.
I made some annotations, the lines not starting with '?' are
the proposed rules for Lily. Note that strings and numbers
can't be concatenated as in cmin or c69 (use c min, c6 9).
Notes: current notenames; defaul: c cis b bes etc.
Chords: note + optional modifiers.
Chord modifiers Meaning [examples]
--------------------------------------------------------------
nothing or maj major triad [c, c maj]
min minor triad [c min]
aug augmented triad [c aug]
dim diminished triad [c dim]
--------------------------------------------------------------
? maj7 major 7th chord [Cmaj7]
Why the explicit 'maj7' here, is this some kind of shorthand?
I hope that C7 the same as Cmaj7, and no exception from C9, e.g.
? % half-diminished 7 chord [C%]
Is this some kind of shorthand, or do we need this (what's the
pitchlist?)
? 6,7,9,11,13 chord additions [C69]
What about 2,4,8,12?
2,4,6,7,8... chord additions [c7, c2 44]
3,5 chord substractions [c5, c3 5]
[where 'c min 3' would be an error, there's no 'e' in 'c min', but an
'es']
--------------------------------------------------------------
? # raise the pitch of the note to a sharp [C 11# 9]
? b lower the pitch of the note to a flat [C 11b 9]
This is the most tricky part. Does this really raise/lower *to* a
sharp/flat, or rather raise/lower *a* sharp/flat, e.g.:
'A6#' == a cis e fis# => a cis e fisis or
'A6#' == a cis e fis
I guess it's a lot handier/standard to do something like this:
# raise the note a half-pitch [c 11# 9]
@ lower the note a half-pitch [c 11@ 9]
instead of 'is'/'es' suffixes: a6is == a cis e fisis.
But if we accept #/@, we have to add "@#" to notename characters,
and allow c## b@ as regular notenames for Mudela too.
We'd 'loose' two special characters if we do this! (Han-Wen?)
--------------------------------------------------------------
? no substract a note from a chord [C9no11]
How can one substract other notes than 3, 5, are there chords that
implictely include more pitches, e.g., does C9 include 11?
--------------------------------------------------------------
What about "suspended2/4", would that simply be 'c 3 4' and
'c 2 3'?
> > Which all means that we need to be able to translate chord
> > names into pitches and vise versa (Johan, you already had some
> > ancient code for this?).
>
> Yes, I have some perl programs that do this. Basically one routine
> parses a chord name in a vector of notes, and two other routines turn
> a vector into an ASCII name, or PostScript code to typeset the chord
> symbol (see attachment A for an example).
>
Ah, i thought you had (example-) code that would produce the
non-asciified chord name, as in things like "C\delta$^7$".
We'll see, the fret-diagrams would be cool to have,
but i'll leave that to a guitar player :-)
Jan.
Jan Nieuwenhuizen <[EMAIL PROTECTED]> | GNU LilyPond - The music
typesetter
http://www.xs4all.nl/~jantien |
http://www.xs4all.nl/~jantien/lilypond