Commit graph

399 commits

Author SHA1 Message Date
ws
3f1aa2ed1f misc. updates to layout 2016-04-13 12:05:46 +02:00
ws
2874c409ae specialize MasterScore() from Score() 2016-04-13 11:46:21 +02:00
ws
bbd802f8ae framework for partial relayout 2016-04-13 11:35:21 +02:00
ws
66455c0cb3 more layout regression fixes 2016-04-13 11:20:05 +02:00
ws
9ec1d02471 code cleanups & speed optimizations 2016-04-13 11:18:14 +02:00
ws
dfba52ba77 more regression fixes & cleaups 2016-04-13 11:10:18 +02:00
ws
492709f203 code cleanups 2016-04-13 11:10:17 +02:00
ws
3d8749ffe9 some regression fixes, code cleanups 2016-04-13 11:08:01 +02:00
ws
9f933d8503 Layout reorganization 2016-04-13 11:05:04 +02:00
lasconic
5d4dfd666d fix undo of linked staff addition when part is present 2016-03-24 11:29:17 +04:00
Nicolas Froment
bf99e72201 Merge pull request #2278 from MarcSabatella/85956-drum-arrow-tpc
fix #85956: drum note altered by arrow changes pitch on reload
2016-03-14 14:33:24 +04:00
lasconic
5c4ddcf6f2 fix #98756: Scaling of symbols in part set to scaling of full score 2016-02-19 13:24:56 +04:00
Nicolas Froment
50d6898a12 Merge pull request #2306 from MarcSabatella/5098-copy-note-transpose
fix #5098: tpc corruption on copy of note
2016-01-29 18:26:12 +04:00
lasconic
9f05f02636 fix #81731: Crash when repeatedly pressing Shift+A 2016-01-22 11:34:31 +04:00
Marc Sabatella
d28b36d0f9 fix #5098: tpc corruption on copy of note 2016-01-12 15:25:37 -07:00
Marc Sabatella
4699672531 fix copy/paste & palette add for figured bass & lyrics 2015-12-24 09:11:35 -05:00
ws
d8e4373435 make DPI=72 constant 2015-11-16 14:24:47 +01:00
Marc Sabatella
4450f7576b fix #85956: drum note altered by arrow changes pitch on reload 2015-11-04 08:22:24 -07:00
Werner Schweer
ad302568e4 Merge pull request #2155 from mgavioli/Fix#19155_change_glissando_anchors
Fixes #19155 Editable anchors for glissandi and other note-anchored spanners
2015-10-28 16:49:05 +01:00
lasconic
bf3ca4d273 Merge branch '2-3-line' of https://github.com/MarcSabatella/MuseScore into MarcSabatella-2-3-line
On branch MarcSabatella-2-3-line
2015-10-28 12:41:40 +01:00
lasconic
1cc0a09c1c fix merge conflict 2015-10-28 09:56:21 +01:00
ws
6f2cf4c2c1 fix build for gcc 5.2 2015-10-27 11:30:09 +01:00
lasconic
6931c7fd5d fix #82671: Copy pasting a single lyric syllable doesn't work 2015-10-07 21:21:38 +02:00
Maurizio M. Gavioli
49edb8d0c3 Fixes #19155, #22861 (duplicate of the former) and #23100.
__References__:
Issues:	https://musescore.org/en/node/19155 https://musescore.org/en/node/22861 https://musescore.org/en/node/23100

__Description__:
Allows to change the start and end note to which a glissando is anchored after it has been entered. Either anchor can be changed independently.

The user interface follows the current working of other 'snappable' lines. Once either the start or end grip is selected:
- `[Shift]+[Left]` snaps the anchor to the previous chord, defaulting to its top note.
- `[Shift]+[Right]` snaps to the next chord, defaulting to its top note.
- `[Shift]+[Up]` snaps to the note above (possibly in a chord, voice or staff above the current one).
- `[Shift]+[Down]` snaps to the note below (possibly in a chord, voice or staff below the current one).

This permits to set the anchor points of a glissando to any note in the score, allowing several glissandi between the notes of the same two chords and other complex configurations (glissandi skipping intermediate chords, start and end notes in different voices or staves, and so on).

It is possible to move the anchor to a different staff of the same instrument, but not to a different instrument; also, it is not possible to 'cross' a change of instrument in the same staff.

__Known limitations__:
- The `[Shift]+[Up]` and `[Shift]+[Down]` use the same note-finding functions as the `[Alt]+[Up]` and `[Alt]+[Down]`actions which move the selection cursor to the above and below note, even across voices or staves. Occasionally, in particular if the note immediately above or below is not time-aligned, the algorithm has little expected results; however, the behaviour is already known to the user. Improving the algorithm would benefit both uses.

__Notes__:
- Most of the added infrastructure is not specific to glissando but to any spanner anchored to notes, then it should also add after-the-fact "snap to" note support to note-anchored text line.
- When moving an anchor, the algorithm usually prefers a note in the same voice/staff of the old note if it exists; if there is none, it tries other voices of the same staff.
- The change of anchor is undoable.
- The fix corrects the management of the `Chord::_endsGlissando` flag, taking into account that a chord can be the ending point of several glissandi and removing one of them not necessarily means the chord no longer ends a glissando (another glissando may still exists).
- The fix also improved the rendering of the glissando wavy line, with better alignment with anchor notes and, with glissando text, better text-line spacing.
2015-09-30 09:16:47 +02:00
Marc Sabatella
f144d7c978 fix #9352: instrument change transposition 2015-09-25 08:35:55 -06:00
Marc Sabatella
975cfcd2bf fix articulations on non-scaled staves 2015-09-01 13:42:17 -06:00
Marc Sabatella
2e7e27b715 support scaled or non-scaled line distances 2015-09-01 13:42:17 -06:00
Maurizio M. Gavioli
fae2191fc3 Fix #71931 - TAB: Option to show or hide back-tied notes
__References__:
- issue https://musescore.org/en/node/71931#comment-341166
- forum thread https://musescore.org/en/node/71886

Adds an option to the TAB staff type config. dlg box controlling whether back-tied notes are shown or not.

Should maintain backward compatibility, as the value of this new staff type parameter is by default set to `~_slashStyle`, which was the original rule for this detail.

Should also support forward compatibility, as the new staff type tag in score files would be simply ignored by older versions.
2015-08-25 08:11:01 +02:00
Maurizio M. Gavioli
8e0aeaa579 TAB: Support for input and display of bass string notations
Supports 'standard' configuration for bass string notations in historic tablatures (lutes and other plucked instruments, as well as viols), both of the French and of the Italian style. This should fill the last 'big hole' in historic TAB support.

Bass strings (or bourdons) are extra strings in addition to the 6 'standard' strings, which are not represented by tab lines and were indicated by other typograhic devices in historic sources. Among the innumerable variations shown in sources, this implementation supports the following styles, chosen to be general enough to suit the majority of cases, without requiring new parameters in the TAB style dialogue box:

- French: the first 4 bass courses are indicated by a fret mark in the 'seventh' TAB position (below bottom string) with 0, 1, 2 or 3 slashes prefixed; other bass courses are indicated, also in the 'seventh' TAB position, by the string number (from 4 on) and cannot contain a fret mark (as they didn't in historic sources).
- Italian: the first 2 bass courses are indicated by a fret mark in the 'seventh' TAB position (abover top string) with 1 or 2 'ledger lines' underneath; other bass courses are indicated, also in the 'seventh' TAB position, by the string number (from 9 on) and cannot contain a fret mark (as they didn't in historic sources). Rhythm marks above these indication are raised to leave room for them.

Both styles do not blindly assume that French style is top-to-bottom and Italian is 'upside-down' -- as historic sources are -- but adapt to the actual string order of the TAB. The choice between the two styles depends on the TAB using numbers or letters for the fret marks.

The implementation does not try to detect if the TAB is really of a historic style and applies either bass string notation whenever more strings are used than there are TAB lines. If this proves unsuitable to modern usage, some better heuristics can probably be found.

For a discussion and some screen shots, see: https://musescore.org/en/node/67261

**Note entry**

During TAB note entry, if the instruments has more strings than the TAB has lines, the string cursor can be moved outside of the TAB body, one position below for 'top-to-bottom' TAB's and one position above for 'upside-down' TAB's.

Further up or down movements add, to the 'blue cursor rectangle', markers indicating which is the actual target string (the cursor does not actually move), equal to the marks a note in that string will receive (slashes, ledger lines or string ordinal, according to the style and the string); during input the user will then receive the same info as when reading entered notes.

Other Notes:

- the `InputStatus::_string` variable, holding the current target TAB string in TAB note entry, changed meaning from the __visual__ string index to the __physical__ string index: this allows a better containment of the peculiarities of the individual TAB styles within the `StaffStyle` class, leaving other classes somehow freer of concern about TAB visual order and other peculiarities. As this variable is only used with TAB's, this change should not affect other functions.

- Some calculation for rhythm symbols have been moved from `TabDurationSymbol::draw()` to `TabDurationSymbol::layout()`, hopefully speeding up the drawing process.

- In fonts for historic styles, '10' has been replaced by 'X' both in fret numbers and in string ordinals, as this is more common in historic sources. Currently, this is not configurable; an additional style parameter could be added in future, if there will be enough request for it.
2015-08-17 10:52:05 +02:00
Marc Sabatella
7ffbb5c4ec also allow double click to add keysig or timesig on chordrest 2015-07-03 14:18:40 -06:00
Marc Sabatella
adaaf10789 fix #66241: note offset not preserved for tab 2015-06-22 12:52:42 -06:00
lasconic
92aa545254 fix #64861: Linked tablature fret with dot doesn't display bracket 2015-06-11 21:49:55 +02:00
lasconic
805c54ef06 fix #59766: Stems do not align with DO and TI note head 2015-06-03 10:23:01 +02:00
lasconic
157332c338 fix #60651: Fret conflict shouldn't be exported to PDF or printed 2015-05-15 00:06:18 +02:00
Marc Sabatella
4b7bb58171 fix #56786: bend & tremolo bar on standard staff 2015-04-18 10:35:58 -06:00
Leon Vinken
41155d3cfa fix #55436 2015-04-12 10:17:00 +02:00
Nicolas Froment
8237182f42 Merge pull request #1914 from MarcSabatella/51886
fix #51866: enharmonic changes made with J lost on save
2015-04-08 14:45:45 +02:00
ws
01952574e3 add tests for scripting interface 2015-04-03 18:24:12 +02:00
ws
e9222d1b45 move enums Accidental::Role and ::Type 2015-04-03 18:24:12 +02:00
Marc Sabatella
afcf806ec3 fix #51866: enharmonic changes made with J lost on save 2015-03-26 19:10:24 -06:00
ws
8282094dd6 code cleanups; rename instr() to instrument() 2015-03-26 13:11:46 +01:00
lasconic
17249ba1ee expose note dots to plugin, read only 2015-03-19 10:39:18 +01:00
Maurizio M. Gavioli
bb8026f25a Fix #49856 - Partial fix for pasted glissando not cloned
If selection containing a glissando is copied into a staff which has another staff linked to it, the glissando is copied into the first staff but not cloned into the linked staff.

Original issue: http://musescore.org/en/node/49856

Partial, cheap fix: if pasting a note-anchored spanner into a staff which has other linked staves, the spanner is ignored.

This at least ensures that the linked staves are consistent among themselves after the pasting; also, as correct cloning of manually added spanners across all the linked staves is properly supported, the un-copied spanner can be added later by the user without structural issues.
2015-03-16 12:04:28 +01:00
ws
3a7106e3ef write tpc2 only for notes of transposing instruments 2015-03-12 15:30:19 +01:00
ws
39164cecf8 fix #49916 Crash when adding, changing and removing staves with slurred grace notes 2015-03-10 16:21:27 +01:00
lasconic
3911aaaa7b fix #49751: Crash when removing stave with glissando 2015-03-05 18:57:48 +01:00
Maurizio M. Gavioli
0f688a47ff Added a test. 2015-03-01 12:19:56 +01:00
Maurizio M. Gavioli
9d9c8624f2 Fix reading back note-anchored cross-staff spanners from a lower to a higher staff
If a cross-staff spanner goes from a lower to a higher staff, the start point is saved **after** the end point.

When reading it back, the end point is ignored because a matching start point has not been met yet.

This applies for instance to glissandi from the bass to the treble staff of a grand staff.

Fixed by adding to the XML reader spanner map a temporary place-holder spanner with the end point data, to be looked for when meeting the start point.

This fix only deals with note-anchored spanners.
2015-02-28 19:53:31 +01:00
lasconic
a59103f903 fix #48996: Crash when undoing tie. On paste, remove pending ties at the end of the selection 2015-02-26 19:53:59 +01:00
ws
c47ec85d4a fix #48811 Redo Paste does not restore ties 2015-02-26 11:02:33 +01:00
lasconic
6f4416a0b3 fix typo 2015-02-25 19:53:10 +01:00
Maurizio M. Gavioli
e75affae0d Merge pull request #1809 from mgavioli/Fix_29426_TAB_tied_note_drag
Fix #29426 - TAB: dragging a note to another string does not affect notes tied to it
2015-02-25 16:57:01 +01:00
Maurizio M. Gavioli
f38b42b744 Fix #29426 - TAB: dragging a note to another string does not affect notes tied to it
See issue http://musescore.org/en/node/29426
2015-02-25 13:30:22 +01:00
Nicolas Froment
7295f90d68 Merge pull request #1808 from mgavioli/Fix_29761_34391_TAB_note_and_stem_dot_alignment
Fix #29761 & Fix #34391 TAB note and stem dot alignment
2015-02-25 12:27:14 +01:00
ws
bc7e2fc5cc Glissando type isn't properly replaced 2015-02-25 11:43:55 +01:00
Maurizio M. Gavioli
e4fcb0193f Fix #29761 - TABs: note dots do not align if different fret marks width 2015-02-25 00:01:28 +01:00
Nicolas Froment
2393477e54 Merge pull request #1785 from mgavioli/Fix_48096_crash_on_glissando_editing
Fix 48096 - Crash on glissando editing
2015-02-19 11:36:06 +01:00
ws
329124c789 some layout optimizations/claenups 2015-02-19 10:33:46 +01:00
Maurizio M. Gavioli
eef2d4ad68 Fix 48096 - Crash on glissando editing
Entering edit mode on a glissando and trying to move the grips results in crash.

Fixed by disabling glissando editing altogether, as it does not make sense until proper support for grip nudging and anchor note selecting is added.
2015-02-19 00:32:22 +01:00
Nicolas Froment
802fa8aede Merge pull request #1754 from mgavioli/TAB_transposition
Fix #47526 - TAB: Make tabs aware of staff transpositions.
2015-02-18 15:26:41 +01:00
Maurizio M. Gavioli
f5d831a023 Glissando as a multi-segment line.
- Implemented as a sub-class of `SLine`.
- Anchor type changed from CHORD to NOTE: allows to attach glissando start and end points to individual notes, rather than generically to chords (with note within the chord chosen by the program).
- The Glissando element is now stored in the `Note::_spannerFor` list.
- `Chord::_glissando` has been removed and replaced by a `bool _endsGlissando`, recording whether the chord is at the end of glissando (as gliss.-end chords require more space if mid-measure or system-initial).
- Debugger UI for `Chord` updated accordingly.
- Glissando in now save into score file as a spanner, within the initial note, and with appropriate `<endSpanner>` tag in the Glissando ending note.
- Existing scores with the old Glissando file format are correctly read back.

Notes:

- MusicXML import/export of the new Glissando implementation NOT IMPLEMENTED.
- This version can read scores from older versions, but older versions **cannot read** scored from this version (they do not expect a <Glissando> tag within a Note). Does this require a NEW FILE VERSION NUMBER?
- This implementation would allow rather easily to move the start and end anchors around (as for slurs) to override the note/chord chosen by the program when the glissando is initially created; but the UI for this is not implemented yet.
2015-02-18 12:21:56 +01:00
Maurizio M. Gavioli
23f3348405 TAB: Make tabs aware of staff transpositions.
Feature has been requested and discussed at length in the forum thread: http://musescore.org/en/node/31016

To implement this, the fret-to-pitch relation has been made dependent of the staff, as each staff may have an individual transposition value in addition to the string data. And -- in addition -- on tick, in preparation of dealing with ottavas and capos.
2015-02-18 10:11:58 +01:00
ws
94a9b0b322 fix layout regression: wrong stem direction 2015-02-17 22:17:22 +01:00
ws
ec8913a19b fix #45601 changing note value can lead to missing accidentals; simplify layout() 2015-02-17 20:22:38 +01:00
Nicolas Froment
91a2d0111b Merge pull request #1605 from MarcSabatella/42941-text-property-drop
fix #42941: text properties not copied on copy/paste or palette add
2015-02-16 10:46:06 +01:00
Maurizio M. Gavioli
9ba3305764 TAB: Do not show notes on strings without a tab line.
Also, improve physical-to-visual string conversion for physical strings without a visual tab line and vice versa, to return the nearest existing string or line.
2015-02-15 00:28:30 +01:00
ws
8dacb7f27b fix #47141 Wrong results ion lined staves (Tab and standard) when dragging notes with mouse 2015-02-12 11:41:39 +01:00
ws
673bc39bfc when dragging notes with mouse, update links 2015-02-09 16:28:57 +01:00
Andrei Tuicu
87a45e7e2c Use Selection filter to filter screenreader extra info. 2015-02-03 03:06:16 +02:00
ws
822aa31be3 cleanup for score dirty status 2015-02-02 10:54:48 +01:00
Werner Schweer
ac8c99ba2d Merge pull request #1692 from MarcSabatella/check-multi-voice
fix #9355: only offset rests / flip stems if multivoice visible
2015-02-02 10:10:46 +01:00
ws
74d9829f02 fix #26531: Hang on up/down of note tied to itself 2015-01-28 15:20:33 +01:00
Marc Sabatella
4b4ac70a78 fix #9355: only offset rests / flip stems if multivoice visible 2015-01-27 23:33:26 -07:00
Marc Sabatella
fdd5715700 fix mtest 2015-01-17 15:32:14 -07:00
Marc Sabatella
a749f2d541 fix #44626: fix shortcuts for grace notes 2015-01-17 14:40:28 -07:00
Marc Sabatella
53bf8d3786 fix #44526: wrong spelling of grace note for transposing instrument 2015-01-17 09:38:51 -07:00
Marc Sabatella
a668ef06b5 fix #44186: tpc calculated in wrong key with transposing instruments 2015-01-12 15:40:22 -07:00
ws
411a8d98f1 fix for mtest 2015-01-05 15:15:48 +01:00
ws
8ca1cf300e fix #43276: dragging notes with mouse in score or linked parts isn't correctly reflected in part or score respectively 2015-01-05 14:19:14 +01:00
Marc Sabatella
4f7c1f33ae fix #42941: text properties not copied on copy/paste or palette add 2015-01-01 22:54:12 -07:00
Marc Sabatella
036a6f9975 fix #42541: drum grace notes laid out incorrectly on load 2014-12-28 08:27:41 -07:00
Marc Sabatella
223cd20af9 fix #41766: use double sharp/flat where appropriate when transposing 2014-12-19 16:27:06 -07:00
lasconic
0ae917e00b do no send link of dots to plugins, just number 2014-12-18 18:02:44 +01:00
Marc Sabatella
a52827e501 add ability to turn off automatic capitalization of chord symbols 2014-12-17 12:37:06 -07:00
lasconic
df99f30cfe fix #41546: Hairpins are inversed by double clicking on palette 2014-12-17 11:02:37 +01:00
lasconic
abbf2c830b enable double click on palette to add hairpins 2014-12-16 18:07:51 +01:00
Marc Sabatella
3534be5a0b fix #41511: bad tpc1 for notes entered in keys other than C 2014-12-15 15:08:33 -07:00
Marc Sabatella
663dbac362 fix #30011: crash on delete of staff with cross staff note 2014-11-26 21:28:17 -07:00
lasconic
fc7188b329 fix note parenthesis SMuFL way, use proper accidental parenthesis from SMuFL font 2014-11-25 18:01:41 +01:00
Marc Sabatella
98eafe2700 fix #39621: accessible info for drum and slash notation 2014-11-20 17:15:36 -07:00
Marc Sabatella
58e5a74588 fix #8924: native support for slash notation 2014-11-17 22:02:12 -07:00
Nicolas Froment
71546afe81 Merge pull request #1435 from andreituicu/fix_38211
fix #38211
2014-11-07 17:06:49 +00:00
lasconic
864ea8812f fix possible crash in undo redo accidentals 2014-11-06 15:03:16 +00:00
Andrei Tuicu
151e8a2ab4 fix #38211
modified:   libmscore/note.cpp
	modified:   libmscore/rest.cpp
	modified:   libmscore/rest.h
2014-11-05 19:18:51 +02:00
Joachim Schmitz
8511cbf747 fix some more QComboBox items' capitalization
in UI files and
for note head names, where they get set programatically.
Also change Xcircle to XCircle.
2014-10-15 20:02:29 +02:00
Marc Sabatella
7fe99b6647 fix #36621: display middle C as C4 2014-10-13 15:32:53 -06:00
lasconic
04f93ae4f6 fix Fa notehead stem up, see #34881 2014-10-01 10:45:36 +02:00
ws
58763e6cc5 fix #33366 2014-09-22 14:31:48 +02:00
ws
e72678a075 fix #30836 2014-08-26 15:07:40 +02:00
Nicolas Froment
1c07b891d3 Merge pull request #1210 from MarcSabatella/30571-drum-crash
fix #30571: crash on drum note entry
2014-08-23 18:30:04 +02:00