From: SourceForge.net <no...@so...> - 2008-09-27 13:43:52
|
Bugs item #2131331, was opened at 2008-09-26 20:33 Message generated for change (Comment added) made by dmmcintyr You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104932&aid=2131331&group_id=4932 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: unknown/multiple Group: None Status: Open Resolution: None Priority: 9 Private: No Submitted By: D. Michael McIntyre (dmmcintyr) Assigned to: Nobody/Anonymous (nobody) Summary: Transposed recording broken by recent track fixes Initial Comment: I'm looking at all of this with fresh eyes, and I'm not comparing the current behavior to anything else. The old tentative fix must not have worked correctly anyway, and I must have tested it poorly. So anyway, the official bar as I see it: 1. load up four tracks with presets from the database that require different transpositions (Bb, high Eb, low Eb, F) 2. set each of these tracks to record 3. play a C major scale on the keyboard Goal: All tracks should play a concert C major scale, and the recorded segments should display notation in different transpositions Current result: The segments come out taking the correct transposition, but the notation in every segment writes out the same scale, transposed for whatever the transpose in the first track was, apparently. I did some pretty comprehensive testing here, and that seems to be just what's going on. First track is in Bb, so the notation in all the tracks gets offset +2, and then -2, 3, -9, 5, respectively, so it sounds different relative to every track's transpose. (Adjust up down or all around to suit whatever the first recording-activated track was in the test. It always takes it from the first track's parameters.) 1.7.2 also failed this test. This is an interesting problem, isn't it? In for a penny, in for a pound. We already have too much to move across to the Qt4 branch, so I think I'll try to solve this one. I'm hot on the trail. ---------------------------------------------------------------------- >Comment By: D. Michael McIntyre (dmmcintyr) Date: 2008-09-27 09:43 Message: Oh, and before someone points it out, yes, I realize I've been going in circles because the segments I'm trying to diddle are empty at this point of processing, and there's nothing to transpose. It's the right idea. Wrong place to put it. The original place to put it was wrong too. I need Plan C. After the multiple inserted segments are differentiated, and contain events. It's here somewhere, and hopefully I'll find it without hand holding. ---------------------------------------------------------------------- Comment By: D. Michael McIntyre (dmmcintyr) Date: 2008-09-27 09:22 Message: Not as easy as I thought. Five hours later... Ten... Bah. No joy. I'll figure it out though, I hope. I might as well keep trying at least one more day, I guess. ---------------------------------------------------------------------- Comment By: D. Michael McIntyre (dmmcintyr) Date: 2008-09-26 21:24 Message: Yeah, I think this is it. When I implemented the track parameters transpose and friends, I had to go put the new properties into use in two different places. One for the pencil, one for recorded segments. I'm working on going into the bit that processes this for recorded segments, and instead of using the track transpose property directly to simply pass it along to the segment, I'm running Arnout's SegmentTransposeCommand() on it. That seems like it ought to work, and be decidedly more elegant too, by using some ready made code that already knows how to do a good job at solving this kind of problem, and running it on a per-segment basis each time a new segment gets created from the "master" recorded segment. (I like how we've been able to use his new command inside the preset handler, and then recycle the preset handler itself to run it off the notation editor's "Convert notation for" feature, so we get a lot of bang for the buck all around, plus his transpose code is better, musically, than anything you or I ever wrote individually or together.) The idea is untested, but I think it should work. Without studying how all of this is actually strung together, it's obvious that the code I'm replacing was run once for every segment inserted onto every active track, so I think this will get run once per segment too, each time using the same untransposed master concert pitch segment. But programming as a linguist instead of a computer scientist sure is the hard way to get there sometimes. Must practice trumpet. Followup at 11. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104932&aid=2131331&group_id=4932 |