Skip to content
Igor edited this page Aug 15, 2024 · 2 revisions

Extensions API

In progress

Application modules provide APIs for interacting with objects (such as an open score) and services.
Basically, the API is structured like this: api.module.method()

api.engraving

api.engraving.division → int

api.engraving.mscoreVersion → int

api.engraving.mscoreMajorVersion → int

api.engraving.mscoreMinorVersion → int

api.engraving.mscoreUpdateVersion → int

api.engraving.mscoreDPI → double

api.engraving.curScore → Score

api.engraving.Element → Enum

api.engraving.Accidental → Enum

api.engraving.Beam → Enum

api.engraving.Placement → Enum

api.engraving.Glissando → Enum

api.engraving.LayoutBreak → Enum

api.engraving.Lyrics → Enum

api.engraving.Direction → Enum

api.engraving.DirectionH → Enum

api.engraving.OrnamentStyle → Enum

api.engraving.GlissandoStyle → Enum

api.engraving.Tid → Enum

api.engraving.Align → Enum

api.engraving.NoteType → Enum

api.engraving.PlayEventType → Enum

api.engraving.NoteHeadType → Enum

api.engraving.NoteHeadScheme → Enum

api.engraving.NoteHeadGroup → Enum

api.engraving.NoteValueType → Enum

api.engraving.Segment → Enum

api.engraving.Spanner → Enum

api.engraving.SymId → Enum

api.engraving.HarmonyType → Enum

api.engraving.newScore(String name, String part, int measures) → Score

api.engraving.newElement(int type) → EngravingItem

api.engraving.removeElement(EngravingItem wrapped)

api.engraving.cmd(String code)

api.engraving.writeScore(Score s, String name, String ext) → bool

api.engraving.readScore(String name, bool noninteractive) → Score

api.engraving.readScore(String name) → Score

api.engraving.closeScore(Score s)

api.engraving.log(String m)

api.engraving.logn(String m)

api.engraving.log2(String t, String m)

api.engraving.openLog(String f)

api.engraving.closeLog()

api.engraving.fraction(int numerator, int denominator) → Fraction

api.engraving.quit()

api.interactive

api.interactive.info(String title, String text)
Show information dialog

api.interactive.openUrl(String url)
Open URL in external browser

api.log

api.log.error(String message)
Write error to console and log

api.log.error(String tag, String message)
Write error to console and log

api.log.warn(String message)
Write warning to console and log

api.log.warn(String tag, String message)
Write warning to console and log

api.log.info(String message)
Write info to console and log

api.log.info(String tag, String message)
Write info to console and log

api.log.debug(String message)
Write debug to console and log

api.log.debug(String tag, String message)
Write debug to console and log

api.theme

api.theme.isDark → bool

api.theme.backgroundPrimaryColor → Color

api.theme.backgroundSecondaryColor → Color

api.theme.backgroundTertiaryColor → Color

api.theme.backgroundQuarternaryColor → Color

api.theme.popupBackgroundColor → Color

api.theme.textFieldColor → Color

api.theme.strokeColor → Color

api.theme.accentColor → Color

api.theme.buttonColor → Color

api.theme.fontPrimaryColor → Color

api.theme.fontSecondaryColor → Color

api.theme.linkColor → Color

api.theme.focusColor → Color

api.theme.borderWidth → double

api.theme.navCtrlBorderWidth → double

api.theme.accentOpacityNormal → double

api.theme.accentOpacityHit → double

api.theme.accentOpacityHover → double

api.theme.buttonOpacityNormal → double

api.theme.buttonOpacityHover → double

api.theme.buttonOpacityHit → double

api.theme.itemOpacityDisabled → double

api.theme.bodyFont → Font

api.theme.bodyBoldFont → Font

api.theme.largeBodyFont → Font

api.theme.largeBodyBoldFont → Font

api.theme.tabFont → Font

api.theme.tabBoldFont → Font

api.theme.headerFont → Font

api.theme.headerBoldFont → Font

api.theme.titleBoldFont → Font

api.theme.iconsFont → Font

api.theme.toolbarIconsFont → Font

api.theme.musicalFont → Font

api.theme.defaultFont → Font

api.theme.defaultButtonSize → double

api.theme.flickableMaxVelocity → int

api.theme.tooltipDelay → int

api.theme.themeChanged()

Testing

Translation

Compilation

  1. Set up developer environment
  2. Install Qt and Qt Creator
  3. Get MuseScore's source code
  4. Install dependencies
  5. Compile on the command line
  6. Compile in Qt Creator

Beyond compiling

  1. Find your way around the code
  2. Submit a Pull Request
  3. Fix the CI checks

Misc. development

Architecture general

Audio

Engraving

Extensions

Google Summer of Code

References

Clone this wiki locally