Menu

#1575 Inconsistent Collapse Equal pitch notes in matrix editor

None
feedback
matrix (65)
5
2022-04-02
2020-04-14
Lorenzo
No

While this was somewhat addressed in [bugs:#1495] , unfortunately this behaviour still seems problematic in the matrix editor with notes to be 'collapsed'

What I mean is, try this:

  • In the Matrix editor
  • create two notes that 'touch each other (e.q. 1/4 notes), one on the last quarter of a bar, one on the first one of the next
  • Select both notes
  • Do Adjust > Collapse equal pitch notes

As a result the notes (because they are in different bars), actually get tied which is fine in the notation editor but IMHO not fine in the matrix editor. Especially 'tied' notes in the matrix editor have two bad side effects:
1. if you try to increase or decreas the duration of the 'tied' note the notes are split and individually resized. This is conceptually and musically wrong in the matrix editor because tied notes are just a graphical convention, while in the matrix view we are looking at them as events.
2. The behaviour of the Collapse equal pitch notes is not consistent because if the notes are in the same bars collapsing will create a unique bigger note as expected; if they are across bars the Collapse equal pitch notes function will actually do what Phrase > Tie does (also a function in the matrix editor).

So I think there are 3. options:
1. In the matrix editor Collapse Equal-pitch notes does what it says which in matrix editor context means join the notes and make a new big note from them as long as they are adjacent and regardless of being in different bars or not. the typical use case is editing a string part in the matrix editor and wanting to join notes which span bars for voicing. In this case the former functionality is still retained with the 'Tie' command which more intuitively ties notes if they span bars
2. Create a new 'join equal pitch' functionality which taken selected equal pitch notes joins them into one note. An added possibility of this could be that it would work also for non-adjacent notes. But I'm not sure if this would really be useful (might be confusing)
3. Retain the current behaviour but allow the user to change the duration of 'tied' notes globally.

personally I'd prefer 1 or 2 (without the non adjacent notes behaviour)

1 Attachments

Related

Bugs: #1495

Discussion

1 2 > >> (Page 1 of 2)
  • D. Michael McIntyre

    I don't have time to look through this at the moment, but I'll stick my head in here and take a look at where we are now. My mental map of how all this is presently supposed to work tells me that we already dealth with all these use cases, and the tools are there. I may be completely wrong. I'm intrigued either way.

     
  • D. Michael McIntyre

    • assigned_to: D. Michael McIntyre
     
  • D. Michael McIntyre

    I'm going to have a go at this one.

    Investigation phase one, when starting with a quarter note at the end of bar 1 and a quarter note at the start of bar 2, selected together, I was not able to find any combination of configuration options or tools that would avoid tying the notes at a barline.

    I agree that "collapse equal pitch notes" should be allowed to create giant bar-spanning single events in the matrix editor, when that's what you want to do. If there are any edge cases here, it seems like that might not always be what the user wants to do.

    I say we go forward just assuming that always will be what the user intends when performing an operation like this from the matrix. If other use cases exist, they will show themselves, and at that time we can come up with the necessary options or dialog inputs to control the behavior.

    As such, my plan of attack is to make CollapseNotesCommand aware of its caller, and alter its behavior appropriately. I think that plan will bear fruit, but I'll know more after I get into code, which I don't have time to do today.

     
  • Lorenzo

    Lorenzo - 2020-04-17

    @dmmcintyr great to know you're taking care of this :-)

    IMHO what you propose totally makes sense, because as I wrote the 'tie' behaviout is still covered by Phrase > Tie

    Maybe, if the behaviout will be differnetiated between matrix and notation it could make sense to rename the funcionality in the notation editor? Something like 'Collape and Tie equal pitch'? Or would that just be more confusing?

     
    • D. Michael McIntyre

      I pondered on it, and I think it will probably be fine to leave the naming as it is. It seems like there's such a thing as being overly precise.

       
      • D. Michael McIntyre

        On second thought, what happens if I have the same segment open in a notation editor and in a matrix editor at the same time? I perform this action on these notes in this window, and one thing happens. I do the same steps in the other window, and another thing happens. I think there may be use cases where somebody wants to defeat notation conventions and make one giant event anyway. Maybe while manipulating arpeggiated chords or something. I'm just speculating. Anyway, I think a new "Consolidate Events" or something with a more inspired name is the order of the day here. An entirely new command that does the same thing in both editors.

        While I'm just thinking back of the envelope here, and am not committed to any course of action, do you have any thoughts on keyboard shortcuts here? If you're used to using Ctrl+= it may be off-putting to have to perform the desired action using another combo, or a menu item. Is it worh making what Ctrl+= does configurable and switchable? In that case, some configuration option "When collapsing equal pitch notes [ combo box of options ]"

        Discuss. I probably won't get to the code for a few days yet anyway.

         

        Last edit: D. Michael McIntyre 2020-04-17
  • Lorenzo

    Lorenzo - 2020-04-19

    Ah right. "Consolidate Events" seems a good name (and then even if maybe unusual as a use case could be also in the notation editor) (also 'Join Events' or 'Merge events' sound good IMHO)

    As for keyboard shortcuts I always go with ~ as effectively it's doing the same thing.. Do consider that keyboard shortcuts are always very personal take into account that, for instance, I use an Italian layout and CTRL + = means CTRL + SHIFT + 0 (i.e. the '=' is over the 0 on an Italian keyboard)... So not sure here about a good combo... Is CTRL + J taken in the matrix view? As CTRL + J joins segments in the track view so maybe as a similie... not sure though.

    We could do a quick poll on the mailing list? Not sure if any other user is bothered with the use case and funcionality :)

     
  • D. Michael McIntyre

    I hope nobody is in a hurry here. Getting into this is high on my list, but not at the top of my list, and I didn't make it that far during my last block of free time. There's a weird translation glitch I'm going to iron out first, and I didn't get that one solved either. Hopefully one day this week I will get a bit of time.

     
  • Ted Felix

    Ted Felix - 2021-05-31
    • labels: --> matrix
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,20 +1,19 @@
    -While this was somewhat addressed  in [bugs:#1495] ,  unfortunately this behaviout still seems problematic in the **matrix editor** with notes to be 'collapsed'
    +While this was somewhat addressed  in [bugs:#1495] ,  unfortunately this behaviour still seems problematic in the **matrix editor** with notes to be 'collapsed'
    
     What I mean is, try this:
    
    -- In the Matrix edior
    -- create two notes that 'touch each other (e.q. 1/4 notest), one on the last quarter of a bar, one on the first one of the next
    +- In the Matrix editor
    +- create two notes that 'touch each other (e.q. 1/4 notes), one on the last quarter of a bar, one on the first one of the next
     - Select both notes
     - Do Adjust > Collapse equal pitch notes
    
    -As a result the notes (because they are in different bars), actually get *tied* whic is fine in the notation editor but IMHO not fine in the matrix editor. Especially 'tied' notes in the matrix editor have two bad side effects:
    +As a result the notes (because they are in different bars), actually get *tied* which is fine in the notation editor but IMHO not fine in the matrix editor. Especially 'tied' notes in the matrix editor have two bad side effects:
     1. if you try to increase or decreas the duration of the 'tied' note the notes are split and individually resized. This is conceptually and musically wrong in the matrix editor because tied notes are just a graphical convention, while in the matrix view we are looking at them as events.
    -2. The behaviour of the Collapse equal pitch notes is not consistent because **if** the notes are in the same bars collapsing will create a unique bigger note as expected; if they are acrosss bars the Collaps equal pitch notes funciton will acutally do what Phrase > Tie does (also a function in the matrix editor).
    +2. The behaviour of the Collapse equal pitch notes is not consistent because **if** the notes are in the same bars collapsing will create a unique bigger note as expected; if they are across bars the Collapse equal pitch notes function will actually do what Phrase > Tie does (also a function in the matrix editor).
    
     So I think there are 3. options:
    -1. In the **matrix editor** Collapse Equal-pitch notes does what it says which in matrix editor context means join the notes and make a new big note from them as long as they are adjacent and regardeless of being in differnt bars or not. the typical use case is editing a string part in the matrix editor and wanting to join notes which span bars for voicing. In this case the forme funcionality is still retained with the 'Tie' command which more intuitively ties notes if they span bars
    +1. In the **matrix editor** Collapse Equal-pitch notes does what it says which in matrix editor context means join the notes and make a new big note from them as long as they are adjacent and regardless of being in different bars or not. the typical use case is editing a string part in the matrix editor and wanting to join notes which span bars for voicing. In this case the former functionality is still retained with the 'Tie' command which more intuitively ties notes if they span bars
     2.  Create a new 'join equal pitch' functionality which taken selected equal pitch notes joins them into one note. An added possibility of this could be that it would work also for non-adjacent notes. But I'm not sure if this would really be useful (might be confusing)
    -3.  Retain the current behaviour *but* allow the user to change the duration of 'tied' notes gobally. 
    +3.  Retain the current behaviour *but* allow the user to change the duration of 'tied' notes globally. 
    
     personally I'd prefer 1 or 2 (without the non adjacent notes behaviour)
    -
    
    • assigned_to: D. Michael McIntyre --> nobody
     

    Related

    Bugs: #1495

  • Philip Leishman

    Philip Leishman - 2021-06-05
    • assigned_to: Philip Leishman
     
  • Philip Leishman

    Philip Leishman - 2021-06-05

    OK - made a fix for this. At first I didn't think this was a sensible change - now I have changed my mind. So the command collapse_notes now has slightly different behaviour in matrix and notation editors !

    See merge request.

     
  • Ted Felix

    Ted Felix - 2021-06-06

    Thanks. Works fine for me. Pushed as [07845e].

    @lorenzosu ... Please test latest git and let us know if this meets your needs. Thanks.

     

    Related

    Commit: [07845e]


    Last edit: Ted Felix 2021-06-06
  • Ted Felix

    Ted Felix - 2021-06-06
    • status: open --> feedback
     
  • Lorenzo

    Lorenzo - 2021-06-10

    Hi. took a while to be able to compile etc.
    Seems to work fine, and I think in this way it is actually much more useful in the matrix editor :-)

    The behaviour seems still to be slightly different for matrix and notation editor with notes that span two bars, but I guess that makes sense given the context and the concept of tied notes (as in the notation editor).

     
  • Ted Felix

    Ted Felix - 2021-12-17
    • status: feedback --> closed
     
  • Lorenzo

    Lorenzo - 2022-02-03

    Unfortunately this still seems problematic. I understand this might be a corner case but... Try this:
    - Create a segment
    - Open in matrix editor
    - Create a single unique note with duration 1/4 + 1/16 (i.e. create a 1/4 note and then pull it a 1/16 longer)
    - Open the segment in notation editor
    - The notation editor shows the duration approximated at 1/4 (but you can see that's not the real length from the rests following the note)
    - Now, in the notation editor, add another 1/4 note above / below the initial not but at the exact same time. The original note is now expanded to its real value as a 1/4 note tied to a 1/16
    - (re)open the segment in the matrix editor. Now the initial note is shown as two tied notes (with the dotted pattern)
    - Select these and do Adjust > Collapse Equal-pitch notes, there is no effect (i.e. the two tied notes remain the same)
    - To check this try untying them, now they are two separate (independent) notes and re-doing the collapse, this transforms then back as two tied notes.

    It is as in this cases these two notes are either untied or tied, no way to actually collapsing them.

    I'm attaching a quick video grab of the above which should hopefully explain better the above steps and what's going on.

    Tested on the latest git, just build for that screengrab and before posting this

     
  • Philip Leishman

    Philip Leishman - 2022-02-05

    Hmm... Interesting behaviour !
    With 1/4 + 1/8 and 1/4 + 3/16 The notation is correct - dotted crotchet and double dotted crotchet.
    But for 1/4 + 1/16 there is no (as far as I know) correct notation. So difficult to know what the correct behaviour should be.
    In the notation editor the 1/4 + 1/16 note is also converted to a tied pair if Collapse Equal-pitch notes is called. This is the same behaviour as you saw in the matrix editor.
    So what is the correct behaviour ????
    If someone has suggestions for an improvement here I will look into it.

     
    • Lorenzo

      Lorenzo - 2022-02-05

      On 05/02/2022 13:17, Philip Leishman wrote:

      Hmm... Interesting behaviour !
      With 1/4 + 1/8 and 1/4 + 3/16 The notation is correct - dotted crotchet
      and double dotted crotchet.
      But for 1/4 + 1/16 there is no (as far as I know) correct notation. So
      difficult to know what the correct behaviour should be.
      In the notation editor the 1/4 + 1/16 note is also converted to a tied
      pair if Collapse Equal-pitch notes is called. This is the same behaviour
      as you saw in the matrix editor.
      So what is the correct behaviour ????
      If someone has suggestions for an improvement here I will look into it.

      I think in the matrix editor if two tied notes are collapsed they
      should become a unique note with the length of note_1 and note_2

      There will always be discrepancy between notation and matrix.

      Ideally (IMHO) the matrix editor shouldn't even have the concept of
      'tied' notes. A matrix editor (which is inspired by Piano rolls), just
      has start time and duration. (western) music notation is bound to the
      rules of notation so that you have dots and tied notes etc.

      Anyway IMHO it should work like this:

      In the notation editor:
      - collapse should tie notes (it is most useful for multiple notes)

      In the matrix editor:
      - tie should tie notes (with the familiar dotted pattern)
      - collapse should 'merge' adjacent equal pitch notes resulting for each
      tuple of these notes in a big longer note

      That's my two cents also thinking of how notation and matrix in a
      sequencer are of course related but in many ways complementary

       

      Last edit: Ted Felix 2022-02-21
  • Philip Leishman

    Philip Leishman - 2022-02-05

    Hmm...
    The behaviour in the matrix editor comes from the SegmentNotationHelper makeNotesViable call.
    So if the collapse from the matrix editor doesn't make this call .....
    Of course things will look strange in the notation editor.
    I have made a version which doesn't make that call from the matrix editor.
    Thoughts ???
    See merge request

     
    • Lorenzo

      Lorenzo - 2022-02-07

      Hi Philip,

      Thank you so much for looking into this!

      On 05/02/22 16:58, Philip Leishman wrote:

      Hmm...
      The behaviour in the matrix editor comes from the SegmentNotationHelper
      makeNotesViable call.
      So if the collapse from the matrix editor doesn't make this call .....
      Of course things will look strange in the notation editor.
      I have made a version which doesn't make that call from the matrix editor.
      Thoughts ???

      I'm honestly not sure. From a UX point of view (personal opinion), as
      said I think the matrix and notation editors are different environments
      with different use cases potentially within an overall workflow of
      working with a piece.

      The notation editor is great for, well, inputting notation be it because
      a user feels more comfortable with it, but I think also depending on the
      type of piece etc. It is also a great starting point for actually
      preparing a score, a pretty unique feature of Rosegarden as a sequencer
      (especially in linux-land). There tied notes absolutely make sense.

      The matrix editor is somewhat 'lower-level' and more related to the
      actual workings of MIDI. Older people like me are also familiar with
      trackers and the concept of a note as a start,duration,end event in a
      timeline (be it vertical or horizontal). The 'notation' of matrix
      editors is pretty intuitive and I've always found having 'tied' notes in
      it rather confusing. Matrix editor is really the fastest way of
      sequencing, especially certain types of music, if you know what you're
      doing.

      I understand that there seems to be a lower-level code 'connection'
      between the two with tied notes, but I'm not sure why one would even
      want the concept of tied notes in the matrix. A tied note is just a
      notation convention for representing a longer note with shorter values,
      be it for performers' readability (e.g. it can make sense to have a 1/2
      starting on the 2/2 of a 4/4 measure represented as two 1/4 tied notes),
      or for longer notes spanning multiple measures, etc.

      Again, from a purely user perspective I just never grasped why tied
      notes in the matrix. Maybe I'm missing something. The only use case for
      it would be entering notes in the matrix with the final aim of producing
      a score and therefore wanting to make explicit certain notation elements
      from the matrix... But then one could argue that you should be able to
      represent dotted notes (which you can consider 'syntactic sugar' for
      tied notes borrowing from coding...) etc. etc.

      CCing the list so maybe we can have other opinions :-)

       

      Last edit: Ted Felix 2022-02-21
  • Philip Leishman

    Philip Leishman - 2022-02-07

    I believe with my latest change you will never get tied notes in the matrix editor unless you do some editing with the notation editor.
    If you work in the matrix editor and then switch to notation there can be some strange effects. These can be fixed with collapse-equal-notes (ctrl+A ctrl+=)
    Similarly if you work with notation and then switch to matrix you will have tied notes. Again these can be removed with collapse-equal-notes (ctrl+A ctrl+=)
    Yes a new opinion here would be welcome.

     
  • Ted Felix

    Ted Felix - 2022-02-07
    • status: closed --> feedback
    • Priority: 1 --> 5
     
  • Ted Felix

    Ted Felix - 2022-02-07

    I suspect that part of what you are seeing is due to Rosegarden being geared more toward notation in its underlying data structures. That makes it difficult for the matrix editor to look like a pure matrix editor.

     
  • Ted Felix

    Ted Felix - 2022-03-24

    Latest works well for me. Collapsing across the bar in notation gives a tie. Collapsing across the bar in matrix gives a solid note. This results in strangeness in Notation that can be cleared up by selecting the odd note and collapsing it. Then it becomes a tie. I guess it's a little counterintuitive, but I think once you get the hang of it, it's ok.

    Pushed as [52ef63]. Please test latest git.

     

    Related

    Commit: [52ef63]

    • Lorenzo

      Lorenzo - 2022-04-02

      Indeed this now works, and the fact that collapsing in the notation
      editor at least does what it's supposed to do now in the matrix :-)

      I still believe that from a musical, MIDI and UX point of view all of
      this i very confusing.
      There is also an inconsistency where this behaviour only applies to
      notes which are spanning 2 or more different measures (collapsing notes
      in the same measure yields a new 'big' note also in the notation editor.

      I'm not sure what the right solution is at this point... I still think
      that the concept of a 'tied' note should be a graphical convention for
      notation (in a similar way that a dot is a graphical convention for a
      duration of a note which has a duration of x + 1/2x, or staccato is a
      graphical convention for 1/2 of the note duration); in the matrix most
      of these notation conventions don't makes sense. Anyhow at least the
      notion of 'tied' notes in Rosegarden (even in the Matrix editor) should
      be documented somewhere...
      What I'm saying is that in MIDI and matrix terms the one below is
      effectively a 4/4 note and the problem when it spans multiple measures
      is just a graphical one:

      Essentially with this fix, users should / could know what they are up
      for if they have 'tied' notes :-)

      Lorenzo

       

      Last edit: Ted Felix 2022-04-02
1 2 > >> (Page 1 of 2)

Log in to post a comment.