Commit graph

69 commits

Author SHA1 Message Date
Marc Sabatella 05baddc9c1 auto-flip for lyrics 2019-05-14 22:21:57 -06:00
Dmitri Ovodok 3cfde39f10 Add plugins documentation 2019-03-22 17:55:48 +02:00
ws ec3be9a99a Replacd integer midi tick values by fractions.
- tick names a position on the time axis
- tick is always a Fraction()
- only Measure() and Segment() (and Tuplet?) have a tick value
- tick() for an generic element return only a sensible value if isMeasure() or isSegment() or isSegment(parent())

- "ticks" names a duration stored in a Fraction()
- the tick value for an Segment is relative to its measure

- rename "duration" to "ticks"
- rename afrac() to tick()
- rename rfrac() to rtick()
- rename some variables, changing "fraction" into "tick"
  (example: actualFraction() into actualTicks())

- Lyrics ticks are written as Fraction, on read if xmlreader sees a "/" it reads a fraction
  else midi ticks for backwards compatibility
2019-02-18 11:46:05 +01:00
Dmitri Ovodok 77bcd39537 Expose enumerations to QML
All enumerations defined directly in Ms namespace had to be moved
to types.h due as Q_NAMESPACE cannot be used multiple times in one
namespace, see https://bugreports.qt.io/browse/QTBUG-68611
2019-01-24 17:42:46 +03:00
ws a5381618fb fix #278916 Numbers only option has no effect on ottava display 2018-12-05 15:17:48 +01:00
ws 74eda99423 update layout of LyricsLine 2018-09-25 10:36:01 +02:00
Dmitri Ovodok c354eb24c3 Remove read300 functions 2018-09-19 01:57:37 +03:00
Dmitri Ovodok 8fa920b7df Backup old MSC read functions, add a test for fileformats compatibility
Use old read functions for reading 1.x and 2.x fileformats

Assign version number 3.01 to the new MSCX format flavor
2018-08-16 19:08:45 +03:00
ws 8366ff1e43 add more style values for lyrics 2018-08-02 13:27:20 +02:00
ws 10ebbb9080 update text style implementation 2018-08-01 11:46:35 +02:00
ws 1fb2fc2d9b fix #264594 lyrics update 2018-07-19 13:03:38 +02:00
ws cb43b90e5a more updates for lyrics 2018-07-02 10:24:58 +02:00
ws 04de06e2e1 update for lyrics layout 2018-06-29 13:33:59 +02:00
ws 01b96ac8ed fix #272362 New character starts in the middle of the underline in lyrics 2018-06-19 13:39:20 +02:00
ws 33d1cd7fb4 rename StyleIdx -> Sid and P_ID -> Pid 2018-03-27 15:36:00 +02:00
ws 6969419cfc update subStyle implementation 2018-03-21 14:05:43 +01:00
ws 87eadbb9f4 fix #262405 alignment of lyrics line segments 2018-02-15 12:10:15 +01:00
Werner Schweer e6175c5dda rearrange class hierarchy 2017-12-27 11:51:09 +01:00
Werner Schweer b46b55fa1e fix ties from/to grace notes; add 'final' to classes were appropriate 2017-12-21 14:08:44 +01:00
Werner Schweer d92ef8b9d4 update properties/styles, update glissando 2017-12-13 15:50:04 +01:00
Werner Schweer 0e4211e2d0 update let ring, palm mute 2017-11-27 16:55:52 +01:00
Werner Schweer 4944400c4d more style values for lyrics 2017-07-10 11:45:50 +02:00
Werner Schweer f80caadfe8 misc. layout fixes 2017-06-02 10:28:29 +02:00
wschweer 51372d8018 update undo/redo infrastructure for text editing 2017-04-11 11:34:47 +02:00
Werner Schweer ac41fa396e update edit infrastructure 2017-03-31 13:03:30 +02:00
Werner Schweer 90b1991912 replace Q_OBJECT with Q_GADGET for all Element based classes 2017-02-17 15:48:28 +01:00
Werner Schweer 1d4c6b2f21 move Element::type() to ScoreElement 2017-01-18 14:16:33 +01:00
Werner Schweer 5433d719d9 replace TextStyle by SubStyle 2017-01-16 20:59:21 +01:00
Werner Schweer c5f46bb208 rename Xml() -> XmlWriter() 2016-11-19 11:51:21 +01:00
lasconic b149f9caff add more style to be compatible with SMuFL engravingDefaults 2016-10-10 23:05:51 +02:00
werner 9f572b57f7 fix #123501 LYrics hyphen gets positioned too low 2016-09-08 10:54:44 +02:00
werner 49ceda6bfb update lyrics properties 2016-08-26 12:43:43 +02:00
Nicolas Froment 4965fd2054 Merge pull request #2785 from Jojo-Schmitz/lyrics-dash-distance
fix #88171: Lyrics dash max distance as a parameter
2016-08-17 14:43:21 +02:00
werner 9faf3f79e7 autoplace for lyrics 2016-08-17 12:52:35 +02:00
Joachim Schmitz ab9ffd633c fix #88171: Lyrics dash max distance as a parameter
Turns the previously hard-coded max. distance between multiple dashes
into a user configurable score style.

__References__:
- Issue: https://musescore.org/en/node/88171
- Original request with discussion and screen-shots:
https://musescore.org/en/node/87841

Shamelessly stolen from PR #2294, which needed a non-trivial rebase
2016-08-15 14:32:33 +02:00
Maurizio M. Gavioli 8c017d8536 Lyrics: Better dash control
This patch gives better control on lyrics dash management and it is intended to supersede https://github.com/musescore/MuseScore/pull/2213 which did not suit the taste of several forum users; for a discussion, see https://musescore.org/en/node/76021 .

Adds 3 new score style parameters:
- `lyricsDashMinLength` to control the minimum dash length (default: 0.4sp)
- `lyricsDashMaxLength` to control the maximum dash length (default: 0.8sp)
- `lyricsDashForce`: if set to __true__, a dash is always generated between two syllables of a word and, if there is not enough space for the min dash length, more space is added between the syllables to accommodate it; if set to __false__, no extra space is added and the two syllables are joined together (default: true)

The effect of the last parameter is exemplified by the following screen-shots:

Current situation (before this patch); if there is no room for the min dash length, the dash is skipped and some blank is left between syllables:

Patch with `lyricsDashForce = true`; chords are further spaced and a min-length dash is inserted:

Patch with `lyricsDashForce = false`: the second syllable is moved (slightly) to the left to reclaim the blank:
2015-10-03 23:55:33 +02:00
Maurizio M. Gavioli 2f7b5bfe76 Updates the documentation for classes named from E to L to proposal A) in http://dev-list.musescore.org/Plugin-documentation-generated-manual-td7579164.html
Properties are also sorted in alphabetical order for easier identification.

No attempt made to evaluate what to include and what to exclude from documentation: anything which is currently documented is retained. Case by case decisions can always be made.

Also completed update for `Accidental`.
2015-04-24 00:55:46 +02:00
Maurizio M. Gavioli 59ba1b5f10 Fix #48436 - Lyrics melisma and deleting measures / Fix #48491 - Lyrics melisma and time change
**Deleting measures** When measures are deleted, spans of lyrics melismas and dashes involved (`LyricsLine`s) were not correctly adjusted.

Also fixes the general case of removing or adding some time span intersecting `LyricsLine` spans.

**Rewriting measures** while rewriting measures (as for time changes), existing `LyricsLine`s were left over and then re-added. Now they are deleted while removing measures (`InsertRemoveMeasures::removeMeasures()`).
2015-03-10 11:38:27 +01:00
Maurizio M. Gavioli 1786f110d9 Fix typos and improve comments 2015-01-23 23:50:49 +01:00
Maurizio M. Gavioli 1153a1deca Make constants for lyrics syllabics accessible to other classes
Move constants for the syllabic metrics of lyrics to `lyrics.h` so they are accessible to other classes.
2015-01-23 20:58:01 +01:00
Maurizio M. Gavioli dd41b196fe Show melisma line after first underscore
While entering a melisma, the first underscore has no specific visual effect.

This patch displays a short melisma after the first underscore, by setting a conventional non-0 lyrics `_ticks` value.

Note: If no second underscore is entered (edit mode is exited or a new syllable is entered in the following chord), the short melisma is left behind as a left-over. It may be the case to reset to 0 the melisma ticks (= no melisma at all) for instance when the score is saved, or read back.
2015-01-19 17:50:05 +01:00
ws 16764d4614 fix #44466: Crash extending volta over mmrest starting a new system + other cleanups 2015-01-19 12:41:16 +01:00
Maurizio M. Gavioli c69d2a9262 Lyrics multi-system melisma and dashes
Implements melisma and dash lines for lyrics spanning several systems.

The melisma and dash line is based on the `SLine` class and its segments on the `LineSegment` class. Both the whole line and its segments are not selectable, marked as generated and not saved in the score file, which is not changed in any way.

For very wide dash segments, several dashes are drawn; the distance between the dashes is not configurable.

Lyrics layout code in `Measure` class and in `layout.cpp` file has been commented out as the lyrics line layout is all contained in the lyrics.cpp file

The line is registered with the `Score` (to have its layout delayed until all elements are positioned) with a mechanism similar to other `Spanner`'s, but in a different container (`_unmanagedSpanner`), as the owning `Lyrics` should decide when create, register, unregister and delete its line.

The line segments are registered with the `System` they belong to (to have them drawn), in the same way as other `Spanner`'s.

There is code for using the dash metrics of the lyrics font, but it is turned off via a conditional directive, as there does not seem to be a reliable way to determine the dash metrics; conventional values (determined by trials and errors and based on my taste!) are used when the conditional directive is off.
2015-01-11 10:16:19 +01:00
lasconic 93e1d5b737 shortcuts for select similar should work 2014-11-07 18:44:08 +00:00
Marc Sabatella 9a35941cf0 add subtype selection (verse number) for lyrics 2014-11-05 09:18:13 -07:00
ws e797d3b5f0 remove verse number from Lyric 2014-10-22 12:08:39 +02:00
Marc Sabatella ab15653628 avoid overlaps of melisma syllables, extenders, and hyphens 2014-09-22 11:56:32 -06:00
ws 6d46589c56 fix #29431 2014-08-13 21:01:21 +02:00
Joachim Schmitz 38a16b115b some cosmetic changes to plugin documentation 2014-06-26 11:57:52 +02:00
Joachim Schmitz 75623c53dc move ElementType to Element::Type
needed to make it available to the Plugin framework
2014-06-26 11:57:35 +02:00