Hi All,

I have recently completed writing a piece of music using Rosegarden and I
would like to contribute some bug-fixes/work-arounds for some issues I have
encountered. I have plenty of time available for the next couple of months.

The attached patch adds the ability to tie and untie notes in the matrix
editor. For the moment I have just put this in a new menu called 'Phrase'
as that's where I got the commands from in the notation editor. I have also
assigned the backtick to 'untie' in both the matrix view and the notation
view.

I did this because there are some issues with working with tied notes that
can be easily bypassed if you have the ability to manually tie and untie
notes in the matrix editor. For example, it is useful to be able to untie
notes if the automatic ties at bar-lines etc. doesn't do what you want.
I've found that when the automatic tieing gets it wrong you usually have to
untie the notes then change their durations and tie them back up as
appropriate. The backtick makes this easier in both views, whereas being
able to manipulate the ties in the matrix view saves having to switch to a
notation view to, for example, clean up some recorded midi. This new
feature is also useful when changing the lengths of tied notes in the
matrix editor.

I have implemented this using the command register approach used for the
notation editor. It looks to me like the menus are described in the
configuration files at /data/rc, but commands won't be added to the menu
unless they are registered first. It took me a while to find out how to add
the tie and untie commands. There is a comment in NotatoinView.cpp that
reads "Where are "tie_notes", "untie_notes", created?". The answer to this
is that the actions are registered using the NotationCommandRegistry. To
make things easier for myself I created a MatrixCommandRegistry and
registered the tie and untie commands there. I'm not sure if there's too
much to be gained by this additional level of abstraction but it seemed
like an elegant solution. (And it works.)

I'm using git-svn and made this patch with git diff --no-prefix. Please let
me know if you would prefer a different format.

There's a few other issues I have noticed that I am having a look at.
First, I thought there was a problem with the Lilypond export because I
couldn't get it to print short staff names. When I looked at the code I saw
that this was because this feature required Lilypond version 2.10. I have
not attached a patch for dealing with this, but I have written some working
code. I created a Lilypond version aware check box that enables and
disables itself based on the selection from the Lilypond version combo box.
I think I'll check to see it any other options are version dependent and
change those as well. This was basically an exercise to teach myself about
Qt signals and slots, but it does add some polish to the program.

I've also noticed that something weird is happening when trying to enter
triplets in notation view, but I think this will be more complex to fix
because it works intermittently.

Cheers,
Chris
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to