On Sunday 10 June 2007, Arnout Engelen wrote:
> One approach could be to simply choose a mapping from transposition
> (-2,-9) to instrument tuning (Bb, Eb): e.g. if a segment is in -2, it's
> probably a Bb instrument, as A# instruments are rare. I used the
> quint-circle to come up with the following list:

The list looks reasonable, but I'm not sure how you'll handle Eb instruments 
that sound up to several octaves below what's written.  Just knowing you want 
to go to Eb isn't quite sufficient, I don't think.

I wonder if this could incorporate the instrument preset database somehow.  
That would tell you if you're moving from a tenor saxophone to a contrabrass 
saxophone what your source and destination transpose factors are supposed to 
be.  The database isn't user extensible, so it could be a problem if we 
limited this to the instruments that are in there, but the database is so 
ridiculously comprehensive that it's hard to imagine anyone finding it 
lacking.  Those cases would be rare enough to address with a quick patch and 
commit to add the E# Oogleblarger per some user's request.

> I added a 'Transpose Toolbar' to the notationview, which fills a
> combobox with those values and chooses the current selection based on
> the current transposition. If the current transposition of your segment
> is -2 and you choose '3 Eb' from that list, it'll assume you're
> transposing from Bb to Eb and fire off a SegmentTransposeCommand fixing
> the notes, keys and segment transposition accordingly.

> This isn't quite commit-worthy yet I think though, as I'm still getting
> to know KDE/QT to get this right and add some more buttons (e.g.
> transpose octave up/down).

This sounds very interesting, but it seems somewhat counterintuitive to have 
to do this from "inside" a segment.

> Actually, you only have to know that you want to go from Bb to F:

Right, but that's more than I want to need to know.  I found out I was trying 
to go to F when I finally got everything playing in tune again.  I got there 
through a convoluted process.  I think what I actually did was set the 
segment transpose to -9, double clicked the Bb key signature; inserted an Ab 
key signature with Rosegarden instructed to move the key relative to segment 
transpose, and transpose the notation; then, finally, I had to transpose 
everything up an octave (triple click and ctrl+up arrow or whatever) so that 
it played in the same register as before.

That's my thought process solving the problem of converting a trumpet part 
into an alto horn part, and it got me there, but it seemed unnecessarily 
complicated.  Hence I asked if there was an easier way now.  Sounds like if 
there isn't already, there might be shortly.

> the 
> SegmentTransposeCommand will take care of going from -2 to -9 (if you
> enable 'maintain audible pitch') and as a user you don't the information
> that Bb in -2 is really Ab.

Maintaining audible pitch is useful.  I missed that nugget.  But I still need 
to know I'm going from Bb to F.  (Which I guess I can cope with.  The recipe 
seems to be to take away one flat from the trumpet key signature, although 
this kind of thinking has gotten me in real trouble before.  Trumpet key is 
always concert key plus two sharps, but that relationship only works for Bb.  
That same kind of up two sharps or down three flats thinking got me twisted 
into serious pretzels when I was playing around with the code that lets you 
insert a key change in concert pitch, and have it adjust itself appropriately 
for all segments.  I forget how I finally solved that, but it took me five 
different implementations from scratch before I finally got it to work 
correctly.  What I lack in knowledge of theory, which is plenty, I make up 
for through copious amounts of brutal sledge hammering.)

> I certainly agree - that's the main reason I've recently been adding
> unit/regression testing to the build process. Every time I run into a
> bug, I intend to isolate the problem in such a test, so that I know when
> it's fixed and (more importantly) when it gets broken again :).

That definitely sounds like a good idea.  We've needed to do something like 
this for years.

I'm glad you're around!

I may not entirely make sense in this post.  I started writing before I read 
the whole of your message, and I realized I had misunderstood something.  I 
tried to backtrack and take a different view, but I'm not entirely sure I 
have my head around the whole picture here.

-- 
D. Michael McIntyre 

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to