powertab / powertabeditor

View and edit guitar tablature.
https://powertab.github.io
GNU General Public License v3.0
519 stars 68 forks source link

Multi-Bar Rest cannot extend over Barlines (not working properly with multiple staffs) #402

Open NalihznehC opened 1 year ago

NalihznehC commented 1 year ago

Description Multi-Bar Rest not working properly when multiple staffs appear image

To Reproduce

  1. Open Power Tab Editor;

  2. Press "ctrl" + "N" to create a new file;

  3. Click "Multi-Bar Rest" image shown in the left Toolbox, Press "Enter" to add a 2-bar rest, Now it should look like this: image

  4. Click "Section" on the top ribbon, Click "Insert Staff After"; Click "Player" on the top ribbon, Click "Add Player", Now it should look like this: image

  5. Double Click "(No Players)" image on the TAB of the second staff, Change the "Staff" of "Player 2" to "2", image Click "OK", Click on the TAB of Staff 2, image

  6. Press "Shift" + "↑" three times and then press "0" to add a whole note, Press "→" to locate the barline, Press "B" to Insert the bar line: image We can see the "Multi-Bar Rest" can only occupy one bar, which is not what it is called.

Additional Info None

Version Windows 10 21H2 Power Tab Editor va547c01

cameronwhite commented 1 year ago

PTE 1.7 also seems to have the same behaviour in this scenario.

In this case where new bars are being added in, would you expect it to be replaced by a whole rest? E.g. if the multi-bar rest originally was 4 bars, and then a new bar is inserted, should it become a whole rest followed by a 3-bar multiyear rest?

NalihznehC commented 1 year ago

PTE 1.7 also seems to have the same behaviour in this scenario.

In this case where new bars are being added in, would you expect it to be replaced by a whole rest? E.g. if the multi-bar rest originally was 4 bars, and then a new bar is inserted, should it become a whole rest followed by a 3-bar multiyear rest?

I would consider keeping the multi-bar rest extended through barlines to the next bar when they are yet to be stopped, and make the penetrated barline invisible inside the five-line scores.

NalihznehC commented 1 year ago

PTE 1.7 also seems to have the same behaviour in this scenario. In this case where new bars are being added in, would you expect it to be replaced by a whole rest? E.g. if the multi-bar rest originally was 4 bars, and then a new bar is inserted, should it become a whole rest followed by a 3-bar multiyear rest?

I would consider keeping the multi-bar rest extended through barlines to the next bar when they are yet to be stopped, and make the penetrated barline invisible inside the five-line scores.

Well, this will cause problems when the multi-bar rest is extended out of the system. I mean, Line feeds (in this case, System feeds).

cameronwhite commented 1 year ago

That makes sense, although of course stretching across multiple systems is something that would need to be handled as you mentioned. I'm not sure how easy it actually is to implement :) There would probably be some challenges from the number of rendered bar lines not matching up with the actual internal data structures

NalihznehC commented 1 year ago

How about rendering an additional barline image on the forward layer of the original barline to subtract its alpha value? This will probably make it invisible in the result (from artist's view instead of programmer's view)