From: Niek v. d. B. <nie...@gm...> - 2013-10-11 15:59:55
|
Dear all, The branch NewChord contains the first version of a new chord notation system. A new EventType ChordLabel represents a chord by a chord id and a pitch.The chords are defined in XML files in data/chordnotations. A ChordNotation defines both the names of notes and chords, It also defines the chords in intervals. At the moment there are two notations, Standard and RomanNumbers. Standard is the default notation and implements an absolute notation system. This means that a pitch=4 is always a E. RomanNumbers defines chord relative to the key. A pitch 4 is a E in C major/minor but a F# in D. ChordLabels can be entered in the Notation Editor (Tools -> Chord Label, of the Eb icon in the toolbar next to the Guitar Chord). The implementation is not finished yet, no export to Lilypond or MusicXML is supported yet (but will be). And there many rough edges but it shows a first working example. Any remarks are welcome. Best regards, Niek |
From: D. M. M. <ros...@gm...> - 2013-10-11 21:11:23
|
On 10/11/2013 11:59 AM, Niek van den Berg wrote: > The implementation is not finished yet, no export to Lilypond or MusicXML is > supported yet (but will be). And there many rough edges but it shows a first > working example. It sounds very interesting, and I look forward to trying it out. > Any remarks are welcome. src/gui/editors/notation/ChordLabelInserter.cpp:26:50: fatal error: gui/dialogs/ChordLabelSelectorDialog.h: No such file or directory #include "gui/dialogs/ChordLabelSelectorDialog.h" ^ compilation terminated. -- D. Michael McIntyre |
From: Niek v. d. B. <nie...@gm...> - 2013-10-12 07:34:58
|
On Friday 11 October 2013 17:11:14 D. Michael McIntyre wrote: > It sounds very interesting, and I look forward to trying it out. > > > Any remarks are welcome. Thanks. > src/gui/editors/notation/ChordLabelInserter.cpp:26:50: fatal error: > gui/dialogs/ChordLabelSelectorDialog.h: No such file or directory > #include "gui/dialogs/ChordLabelSelectorDialog.h" > ^ > compilation terminated. Hm, svn is still a difficult tool for me, I missed some more files. All missing file are checked in now. Best regards, Niek |
From: D. M. M. <ros...@gm...> - 2013-10-12 10:30:57
|
On 10/12/2013 03:34 AM, Niek van den Berg wrote: >>> Any remarks are welcome. Open new dialog. Root defaults to beginner. Change to common. C and B are in here twice for no reason that's immediately obvious. With the two B chords, it looks like one version goes to chords with sharp accidentals (B/D#) and the other to chords with flat accidentals (B/Eb). The reason for the two C entries is probably the same, but I see no difference between them. As a user looking at this, I don't know what to pick why. Roots are listed F Gb F# G. This makes a certain kind of sense in that flat is a "down" direction, and sharp is an "up" direction, but I got confused for a long moment trying to decipher this ordering. I was looking for A, I scanned to Ab, and... G#? Wait. Huh? Back and forth, back and forth, then finally, oh, there it is. Transpose isn't logical when using Segment -> Convert notation for... to change a part for a transposing instrument. I set up C Em F G Am and converted the part for trumpet in Bb to yield E G#m A B C#m. I expected D Fm G A Bm, which is what you'd actually play on a Bb instrument to sound concert pitches as indicated by the original notes. "Convert notation for" is supposed to adjust the notation so it sounds the same on the indicated instrument, not change the sounding pitch of the part. What you did here was raise the sounding pitch one whole step. Interesting glitch. I double clicked on the key signature to open it in the key signature editor, and the chords changed to D Fm G A Bm! This wasn't done by a command, as there is nothing to undo. It's some refresh/update problem maybe. I can't figure out exactly how I trigger this effect. I have a little trouble getting it to happen consistently, but I can make it happen consistently enough. Select the D chord, Ctrl+C, Ctrl+V to paste, and it pastes as an E. Multi-click to select whole staff, and the chord changes to a D. This is glitchy. It seems to be aware of segment transpose and confused by segment transpose at the same time. They're generally working for cut/copy/paste, selection, undoability, redoability. Transposing by interval where I physically want to change the sounding pitch seems glitchy too though. Oh well, it needs more work, but it's pretty damn cool! Have this thing export to LilyPond lead sheet chords and it can probably replace the "Export chord names as lead sheet chords" or whatever the obscure and complicated to use option is. Might even write a little import filter to look for this in existing data during file load, and convert those legacy elements over to the new chords. That way we could dump the export option without losing anybody's legacy work. The dialog could use memory of what you had chosen previously. When you use the dialog, you're about to change at least one of the parameters, but you might not need to change all of them from the ones you just used. Pretty good chunk of work. It's definitely going somewhere! -- D. Michael McIntyre |
From: D. M. M. <ros...@gm...> - 2013-10-12 10:35:46
|
On 10/12/2013 03:34 AM, Niek van den Berg wrote: >>> Any remarks are welcome. Oh yeah, I kept wanting to transpose individual chords by selecting them and transposing them with Adjust -> Transpose, but that's not possible. I can't really see what use it would be if I could do that, but having them as selectable entities that can transpose does imply that method of transposing ought to work. It feels a little strange that it doesn't. This quibble is of minor consequence. It was pretty cool seeing this go from some discussion I half forgot about to a solid start on the new feature. -- D. Michael McIntyre |
From: Niek v. d. B. <nie...@gm...> - 2013-10-14 15:37:32
|
On Saturday 12 October 2013 06:35:38 D. Michael McIntyre wrote: > Oh yeah, I kept wanting to transpose individual chords by selecting them > and transposing them with Adjust -> Transpose, but that's not possible. Solved. Best regards, Niek |
From: Niek v. d. B. <nie...@gm...> - 2013-10-12 11:54:21
|
On Saturday 12 October 2013 06:30:48 D. Michael McIntyre wrote: > Open new dialog. Root defaults to beginner. Change to common. > > C and B are in here twice for no reason that's immediately obvious. > With the two B chords, it looks like one version goes to chords with > sharp accidentals (B/D#) and the other to chords with flat accidentals > (B/Eb). The reason for the two C entries is probably the same, but I > see no difference between them. As a user looking at this, I don't know > what to pick why. The PitchModelList is responsible for this. It's one of the issues I have to look at. > Roots are listed F Gb F# G. This makes a certain kind of sense in that > flat is a "down" direction, and sharp is an "up" direction, but I got > confused for a long moment trying to decipher this ordering. I was > looking for A, I scanned to Ab, and... G#? Wait. Huh? Back and > forth, back and forth, then finally, oh, there it is. The PitchModelList is at the moment very simple, one could say too simple :-) > Transpose isn't logical when using Segment -> Convert notation for... to > change a part for a transposing instrument. I set up C Em F G Am and > converted the part for trumpet in Bb to yield E G#m A B C#m. I expected > D Fm G A Bm, Me too, but I haven't check this yet. This could be an interesting topic! > which is what you'd actually play on a Bb instrument to > sound concert pitches as indicated by the original notes. "Convert > notation for" is supposed to adjust the notation so it sounds the same > on the indicated instrument, not change the sounding pitch of the part. As a woodwind player (clarinet Bb/A and altsax Eb) I know the concept of transposing instruments :-) One of the reason I liked to see transposable chords. > Interesting glitch. I double clicked on the key signature to open it in > the key signature editor, and the chords changed to D Fm G A Bm! This > wasn't done by a command, as there is nothing to undo. It's some > refresh/update problem maybe. I can't figure out exactly how I trigger > this effect. I have a little trouble getting it to happen consistently, > but I can make it happen consistently enough. I noticed this too and have a closer look at it. I'm using currentKey in NotationStaff::renderSingleElement but for some reason it is sometimes "undefined" instead of the current key. > Select the D chord, Ctrl+C, Ctrl+V to paste, and it pastes as an E. > Multi-click to select whole staff, and the chord changes to a D. This > is glitchy. It seems to be aware of segment transpose and confused by > segment transpose at the same time. This might be the same problem as mentioned before, > Oh well, it needs more work, I agree :-) > but it's pretty damn cool! Thanks. > Have this thing > export to LilyPond lead sheet chords and it can probably replace the > "Export chord names as lead sheet chords" or whatever the obscure and > complicated to use option is. Exporting this chord to LilyPond and MusicXML is what I'm current working on. > Might even write a little import filter > to look for this in existing data during file load, and convert those > legacy elements over to the new chords. I had already something similar on my wishlist, but I didn't think of a filter during file load. This might make things even better. > That way we could dump the > export option without losing anybody's legacy work. > The dialog could use memory of what you had chosen previously. When you > use the dialog, you're about to change at least one of the parameters, > but you might not need to change all of them from the ones you just used. > > Pretty good chunk of work. It's definitely going somewhere! Thanks! And thanks for the comments. Best regards, Niek |
From: D. M. M. <ros...@gm...> - 2013-10-12 12:53:25
|
On 10/12/2013 07:54 AM, Niek van den Berg wrote: > As a woodwind player (clarinet Bb/A and altsax Eb) I know the concept of > transposing instruments :-) One of the reason I liked to see transposable > chords. Very good. I'll shut up about what you already know. > I noticed this too and have a closer look at it. I'm using currentKey in > NotationStaff::renderSingleElement but for some reason it is sometimes > "undefined" instead of the current key. I bet that's the heart of it. You're displaying correctly when you have the proper key. I have no special insight into why it is undefined sometimes. > Exporting this chord to LilyPond and MusicXML is what I'm current working on. You probably know just what I mean, but I want to make sure you understand how the lead sheet chord names feature works. I imagine users would love having an easier way to do that, although I haven't used that myself. > I had already something similar on my wishlist, but I didn't think of a filter > during file load. This might make things even better. A filter during file load seems like an ideal solution to me. If we preserve the information from the old legacy file, we can drop support for the legacy LilyPond export option, and have one less piece of clutter, and one less situation where there are multiple ways of doing exactly the same thing. -- D. Michael McIntyre |
From: Niek v. d. B. <nie...@gm...> - 2013-10-12 11:58:50
|
On Saturday 12 October 2013 06:35:38 D. Michael McIntyre wrote: > Oh yeah, I kept wanting to transpose individual chords by selecting them > and transposing them with Adjust -> Transpose, but that's not possible. I know, but I don't know why. It works when you also select a note. I have to dig some deeper into the ways Rosegarden creates it menus and other elements of the user interface. Best regards, Niek |
From: D. M. M. <ros...@gm...> - 2013-10-12 12:26:06
|
On 10/12/2013 07:58 AM, Niek van den Berg wrote: > I know, but I don't know why. It works when you also select a note. I have to > dig some deeper into the ways Rosegarden creates it menus and other elements > of the user interface. I'd need to refresh my memory a bit, but if you're trying to make that work, I can probably knock it together in an hour or so. It's all about action states. As different things are selected or unselected, we enter and leave different action states, like have_rests_in_selection and have_notes_in_selection and so forth. You probably want a special new action state just for these chord labels, and entering it enables a few options that seem relevant. If you want to learn, you're more than welcome to do all the work yourself Otherwise, I'd be happy to knock that together for you in a day or two. -- D. Michael McIntyre |
From: Niek v. d. B. <nie...@gm...> - 2013-10-12 13:26:11
|
On Saturday 12 October 2013 08:25:56 D. Michael McIntyre wrote: > If you want to learn, you're more than welcome to do all the work > yourself Since I have a lot of idea's for Rosegarden and am glad I can help you all I'm willing to find out what's happening here. I'm very curious how this part works! > Otherwise, I'd be happy to knock that together for you in a > day or two. Thanks for the offer. I will give it a try. When I get stuck I will drop in a call and will appreciate the help by then. And in the meantime you can spend your time on the current activities. Best regards, Niek |
From: D. M. M. <ros...@gm...> - 2013-10-12 21:21:57
|
On 10/12/2013 09:26 AM, Niek van den Berg wrote: > Since I have a lot of idea's for Rosegarden and am glad I can help you all I'm > willing to find out what's happening here. I'm very curious how this part > works! Start in data/rc/notation.rc and have a look at have_notes_in_selection, then follow the trail. You'll only want to enable a subset of those actions for your new action state. -- D. Michael McIntyre |
From: Niek v. d. B. <nie...@gm...> - 2013-10-13 19:17:20
|
On Saturday 12 October 2013 17:21:48 D. Michael McIntyre wrote: > > Since I have a lot of idea's for Rosegarden and am glad I can help you all > > I'm willing to find out what's happening here. I'm very curious how this > > part works! > > Start in data/rc/notation.rc and have a look at have_notes_in_selection, > then follow the trail. You'll only want to enable a subset of those > actions for your new action state. Thanks for the hint! I had a quick look at it and I grasps the idea. Again a good starting point (like the guitarchord bread crumbs). Now the task to get a good solution but at least I know where to look. Thanks again! Best regards, Niek |
From: D. M. M. <ros...@gm...> - 2013-10-13 21:40:30
|
On 10/13/2013 03:17 PM, Niek van den Berg wrote: > Thanks for the hint! I had a quick look at it and I grasps the idea. Again a > good starting point (like the guitarchord bread crumbs). Now the task to get a > good solution but at least I know where to look. Thanks again! You'll do fine, I'm sure. This is all off to a great start so far. -- D. Michael McIntyre |