MobileSheets Forums

Full Version: Transpose Bug?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
itsme, I'm a little confused by something you said above. If a key is detected in the chord pro file, that does overwrite anything else that would be detected. If not, are you saying the detection doesn't work? Or do you have a problem with that behavior? Set starting key lets you change whatever is detected or was set in the file. If you tap the button, you can just tap cancel to not make any changes, so I don't know how you would end up with a bad starting key from that. The original key is shown in the button, so hitting reset resets to that. What else would you expect it do? Being able to set the starting key is important if for some reason the key directive is not found and the detected key is incorrect. Otherwise you would have to exit the program, manually edit the chord pro file, reload MS Pro, swap the old file for the new, as the automatic file change detection does not re-read the key. That key is not the same as the key in the song editor, so if I don't provide that option, there is literally no other way to change it.

As far as the issue you are reporting, I'm confused. If you have C/Am, toggling between sharp or flat shouldn't matter, as neither of those chords is sharp or flat. If you had C#, and you selected flag, I would expect that to be Db, but I wouldn't expect C to change to C# just because you tapped the sharp button. If you are saying you selected C/Am and then tapped sharp or flat and it made no difference to the transposed songs chords, that may be true, as that toggle just flips what chords are allowed as you go left or right - not whether the transposed chords will be sharp or flat. C is neither sharp nor flat but I believe for the purposes of transposing, I treat it like a sharp chord when it comes to picking what other chords will be. That only matters if you are transposing from another key to C though, otherwise I wouldn't change what chords are displayed in a song.

Mike
I think itsme refers to the case where a song has sharp / flat chords even though it is in the key of C. For example when there's a Bb chord, pressing the sharp button in the transpose dialog does not change the Bb into A#. The sharp and flat buttons seem to only affect subsequent transpositions, they do not trigger an action themselves.
Yes, that's it. I was mislead by starting key erroneously set to C/Am whereas the ChordPro file in fact was in Bb.
The "#" and "b" buttons only change the sequence of destination keys. The usage of flats and sharps within the song depends on the selected destination key. That's correct.
To use sharps in case of C/Am as destination key is also OK.
An option to change the usage of flats and sharps in the song independent of the destination key would not make anything better, but would be an endless cause of confusion.
But "Detect Key By" should be used on import to set the starting key and the "Keys:" meta tag in case no {key: tag is found that overwrites it. I have no doubt that this is a bug (or a missing implementation).
My opinion about transposing is caused by the workflow that I use:
Setting the starting key is part of preparing a song. Create the file, transfer it to the tablet, edit the meta data, check that it displays OK. That's done at home, no problem to change tools, use a computer, think about what's happening. When this is finished, the starting key should be correct and will hopefully never need to be changed. So opening the file and adding {key: in case "Detect Key By" fails is not an issue, nothing different to changing a chord within the file or correcting a typo.
Transposing on the other hand is mainly a use case during a session. Someone asks for a different key or I notice that I'm in the wrong key for any reason. So this should be as quick and error-proof as possibly.
That's why I prefer to remove setting the starting key from the transpose dialog.
The key detection in the companion is not working correctly as of the latest version and the tablet may also not be working quite right. The "Detect Key By: Chord Progression" logic also has a number of issues. I've been working on the code tonight and I have everything fixed in the companion, so I'll tackle transferring the code over to the tablet side tomorrow. You are correct that if {key} is not present, no key will be set (and it will default to C). This is not due to the detection failing though - just an oversight that caused me not to pass that detected key properly around the code as needed.

Thanks,
Mike
Much better in 1.3.5 but still some bugs left:
1.) First / last chord is a minor chord, e.g. Gm
- import ChordPro file
- the key shown in the library is Bbm, not Gm
- open the newly created song for the first time, open the transpose window. It shows Bb / Gm which is correct. On the "SET STARTING KEY" button it shows DBM (if Bbm were correct, Db would match, but it is Dbm). Note that I do not change anything here!
- Cancel, close the song, open the song again, open the transpose window again. Now it shows Db / Bbm, "SET STARTING KEY" shows DBM as before.
This is the case both for "DETECT KEY BY" = "First Chord" and = "Last Chord". If the first / last chord is a major chord it works correctly. I have not tested "DETECT KEY BY" = "Chord Progression".
2.) If "DETECT KEY BY" is set to "First Chord" and the first pair of square brackets does not contain a valid transposable chord (in my library I often find [|] or [|:] at the beginning) the key defaults to C / Am instead of using the first valid chord. With "DETECT KEY BY" set to "Last Chord" it works as expected and the last valid chord is used even if it is followed by another [|] or [:|]
3.) Readability would be much better if the key on the "SET STARTING KEY" button would be displayed with correct lower case letters: Dbm instead of DBM, Db instead of DB
While at it...
Quote:On the "SET STARTING KEY" button it shows DBM
I will never get used to DBM meaning Dbm. "b" at least looks like "♭", but "B" does not. And in many music notation systems, M is used to indicate a Major chord.
I know it's a limitation of the UI, but nevertheless...
I found the bugs in the code related to minor chords. If the key that is detected for the file is a minor key, I switch to the major equivalent, but I wasn't resetting the minor attribute in my code, so it was switching to the major equivalent but still making it minor (i.e. Bbm instead of Bb in your example above). So thanks for helping me locate that.

I've also adjusted the button so that the first part is still in all caps (to stay consistent with other buttons) but the chord part is not capitalized.

Thanks,
Mike
Partly fixed in 1.3.6 but still some bugs left:
1.) First / last chord is a minor chord, e.g. Gm
=> Fixed for the transpose window, it shows Bb / Gm which is correct.
The Song Editor and the list windows show Bb. It should display Gm.

This is the case both for "DETECT KEY BY" = "First Chord" and = "Last Chord".
=> This is not correct
2.) If "DETECT KEY BY" is set to "First Chord" and the first pair of square brackets does not contain a valid transposable chord (in my library I often find [|] or [|:] at the beginning) the key defaults to C / Am instead of using the first valid chord. With "DETECT KEY BY" set to "Last Chord" it works as expected and the last valid chord is used even if it is followed by another [|] or [:|]
=> This bug is still there.
3.) The key on the "SET STARTING KEY" button is displayed with correct lower case letters: Dbm instead of DBM, Db instead of DB
=> Fixed
4.) Not sure if this is new or if it already existed before:
The "Set Starting Key" window has buttons for "#" and "b" similar to the transpose window, but doesn't use what is set. It uses "#" all the time. (My opinion about the "Set Starting Key" window is unchanged: I think it is not required at all, "DETECT KEY BY" and the {key: tag are fully sufficient)
I switch minor chords to their major equivalent to simplify transposing. If Bb is equivalent to Gm, does it matter if Bb shows up in the Song Editor? If so, I'll have to do some work in order to set the song's key to something different than the key saved for the original key when transposing.

I'll fix the other things.

Thanks,
Mike
It's fine for transposing as the transpose dialog always shows both, but in the song editor it matters if it is major or minor
Here's the file that I used for testing. (The Gm in the last measure is just for testing, it doesn't fit in the song)
(02-11-2016, 02:45 AM)Zuberman Wrote: [ -> ]I switch minor chords to their major equivalent to simplify transposing. If Bb is equivalent to Gm, does it matter if Bb shows up in the Song Editor?  

It certainly does.  Gm is the relevant minor to Bb major - there is no equivalency here.  If the music calls for a Gm, then you would not want to play a Bb major, that would be totally wrong.
I'm not talking about those two being the same in terms of a chord or note, I'm talking about the key signature. The Bb key signature is the exact same as the Gm key signature (same number of flats). That is what key means to me when you say what key a song is in. That may be wrong or oversimplified, so feel free to correct me if I'm wrong.
Yes, it is a bit oversimplified. Both a song in Bb (major) and a song in Gm are usually written with two flats at the beginning of each score line. But typical chord sequences are different: a simple song in Bb major uses Bb / F / C7 (I / IV / V7) wheras (I / IV / V7) for a simple song in Gm would be Gm / Cm / D7 or Gm / C / D7. So there's definitely a significant difference.
Pages: 1 2