[Top][All Lists]

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

Re: transpose, transposition, and relative

From: lilypond
Subject: Re: transpose, transposition, and relative
Date: Thu, 03 Feb 2005 12:42:16 +0000
User-agent: Demon-WebMail/2.0

address@hidden wrote:
> address@hidden writes:
> > So - can I respectfully suggest we have a big bug here - either in
> > the manual or in the implementation of transposition. And imho the
> > bug should be in the implementation - by changing the implementation
> Can I respectfully mention that I still don't understand what you're
> trying to achieve?  What do you want to see in the notation, what do
> you want to hear in MIDI, and what do you want to enter in .ly ?
Okay. I'll try and explain. But I think I've worked out what's going on, and 
why (not saying I agree with it, though).

Transposition works the way it does because certain instruments (the Horn in 
particular) sometimes change pitch while playing. (Horns swap a crook, trumpets 
and clarinets swap instruments.) This, obviously, is a nightmare for lilypond 
if you're trying to output both a score and a soundtrack.

I'm coming at it from a very different angle. I don't give a damn about MIDI, 
and I'm using lilypond as a music-typesetting program (which, indeed, I thought 
it was). And I play an instrument which, in a different way, is as unusual as 
the horn changing pitch half-way through a piece. Depending on the whim of the 
composer (well, not quite), music for me can be written in C or in Bb. When I'm 
looking at my .ly files, I can't say "that's the trombone, therefore those 
notes are concert pitch". When I saw the \transpose directive, I missed the bit 
about "midi only", and thought "great - I can enter the notes in Bb, and that 
will tell lilypond how to convert it to C".

I *really* *don't* *want* to have half my music with a "\transpose bf c" 
directive in it, and the other half with "\transpose c bf" in it. The current 
option is to transpose all the Bb parts in my head as I enter them (or work out 
how to get that editor to do it for me). It'd be nice if lily could do it for 

So I'm coming at it from the point of view that "lily is a typesetter", I have 
multiple parts in multiple transpositions, and I really do not want the hassle 
of having to remember which parts are in which transpositions - I want 
everything internal to lily to be in C.

Now bear in mind I'm a programmer by trade, and I missed the warning about 
"midi only" :-) It really seems inconsistent to me for \transposition to 
convert one form of output (sound) to concert pitch, while not converting the 
other (paper).

Basically, the fly in the ointment is those damn instruments that change 
transposition mid-piece :-) Either we enter the notes transposed, and have 
hacks to cope with outputting midi at concert pitch, or we enter the notes at 
concert pitch, and have hacks to cope with outputting music as a playable part.

Coupled with the fact that a concert-pitch score makes finding accidental 
misprints much easier (intentional double-entendre), I would much rather think 
in concert pitch, and transpose transposing instruments on output. I also think 
the current implementation of \transposition is inconsistent (yes I know - now 
I understand, I think the reasons are very sensible...)

So. I understand the "why". I don't really think it's right, but the 
alternative is just as bad. Can we add a property that says "apply 
transposition to printed output" or "transpose notes according to transposition 
on input" (either implementation would work)? And where do I start looking if I 
want to encode this myself? Not having got to grips with lily internals 
properly yet, I'd be inclined to adjust notes by instrumentTransposition as the 
parser reads them, but I don't know how viable an approach that is.


reply via email to

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