Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
534 commits
Select commit Hold shift + click to select a range
48f5958
rever to main branch of musx
rpatters1 Nov 28, 2025
5b95a19
remove unused beamedEntries map
rpatters1 Nov 28, 2025
35f5358
bring up to latest musx
rpatters1 Nov 28, 2025
3235662
Fix repeat dot barline distance
XiaoMigros Dec 3, 2025
28a3e62
Detect straight flags from actual flag char and not just the document…
rpatters1 Nov 30, 2025
c0a596a
Add comment
rpatters1 Nov 30, 2025
7a0d2da
detect beamed rest workaround and handle appropriately
rpatters1 Nov 30, 2025
a3a3bb8
use latest musxdom APIs to simplfy workaround detection
rpatters1 Dec 1, 2025
31c915d
build with latest musx. beam workaround not great with v1v2.
rpatters1 Dec 1, 2025
74c0cdb
more adjustments
rpatters1 Dec 1, 2025
f6d8702
Used `currentEntry` where possible, to avoid locking the pointer again.
rpatters1 Dec 2, 2025
68278d1
eliminate client-side beamover detection code. (still not working cor…
rpatters1 Dec 3, 2025
b7cb1fc
working
rpatters1 Dec 3, 2025
cc34cf9
add detailed comment about the need for the alternative mode of Inter…
rpatters1 Dec 3, 2025
46c1516
add comment
rpatters1 Dec 3, 2025
9ccd6ce
final updates this round (we hope)
rpatters1 Dec 3, 2025
f174c6d
Fix page text bad positions
XiaoMigros Dec 5, 2025
9782091
A first attempt at system scaling
XiaoMigros Dec 7, 2025
8f6619d
Fix system left margins
XiaoMigros Dec 7, 2025
70f5a58
Attempt to fix coda systems
XiaoMigros Dec 7, 2025
9a7a8bc
Import system start/end space
XiaoMigros Dec 7, 2025
fb344ed
style imported. still need to work on position
rpatters1 Dec 5, 2025
2fdf78d
cleanup bugs and minor issues
rpatters1 Dec 6, 2025
7573530
a little more cleanup
rpatters1 Dec 6, 2025
3d37cc9
kind of working, but the metrics -> spatium computation is pure guess…
rpatters1 Dec 6, 2025
53a949b
this works decently well.
rpatters1 Dec 7, 2025
68a92d8
more comments
rpatters1 Dec 7, 2025
a7456e2
simplify page layout
XiaoMigros Dec 7, 2025
668e4b8
Fix coda systems?
XiaoMigros Dec 7, 2025
a51116e
Fix crash
XiaoMigros Dec 7, 2025
07b9211
import first system left margin correctly
XiaoMigros Dec 8, 2025
0fa6203
Add fallback values for vertical text pos
XiaoMigros Dec 8, 2025
e7cf588
use more toFontMetrics
XiaoMigros Dec 8, 2025
e21977a
Finally fix text positioning?
XiaoMigros Dec 8, 2025
bdc672e
frames are working. font sizes are wrong still
rpatters1 Dec 9, 2025
0efc38b
fix font size and positioning (when frame is present)
rpatters1 Dec 9, 2025
ee06a6d
test MeasureTextAssign
rpatters1 Dec 9, 2025
3a2c7d5
correctly align measure-attached text
rpatters1 Dec 9, 2025
fa4ca3c
Fix system scaling?
XiaoMigros Dec 10, 2025
c1db80d
Avoid crash on invalid percussion grace note
XiaoMigros Dec 10, 2025
f275708
attempt 3 at text pos
XiaoMigros Dec 10, 2025
aa0aa49
Fretboard fix attempt
XiaoMigros Dec 10, 2025
92f3aa1
scaling attempt
XiaoMigros Dec 10, 2025
7e3eb26
Fix assert
XiaoMigros Dec 10, 2025
ab20583
Improved XML text parsing
XiaoMigros Dec 10, 2025
3199021
Correct transposition
XiaoMigros Dec 10, 2025
699a36e
this version of the measure number positioning below at least has the…
rpatters1 Dec 9, 2025
366dd1f
add more accurate below-staff measure number positioning based on staff.
rpatters1 Dec 9, 2025
7fbc827
fonts are guaranteed non-null by musxdom
rpatters1 Dec 9, 2025
f11413d
move default argument to correct spot
rpatters1 Dec 10, 2025
78c1bdc
Import articulation pedal markings
XiaoMigros Dec 10, 2025
f7527e4
Fix end hook types?
XiaoMigros Dec 10, 2025
0527c4b
simplify hook heights
XiaoMigros Dec 10, 2025
a292985
inst change now includes transposition changes
rpatters1 Dec 11, 2025
d4ffb46
handle instrument name changes correctly
rpatters1 Dec 11, 2025
81640ae
fix string parsing
rpatters1 Dec 11, 2025
ca8b23a
don't show inst names if Finale doesn't.
rpatters1 Dec 11, 2025
bef5049
fix typos
rpatters1 Dec 11, 2025
6328ac3
use spatium literals
XiaoMigros Dec 12, 2025
576607f
fix text placement?
XiaoMigros Dec 12, 2025
b44afef
Fix some compiler warnings
XiaoMigros Dec 12, 2025
38f0e86
Allow ties between layers
XiaoMigros Dec 13, 2025
9a978c5
preserve visibility for always visible staves/parts
rpatters1 Dec 12, 2025
5c7d8f1
Fix clef and key issues with transposing instruments that also use di…
rpatters1 Dec 12, 2025
5e20971
more surgical fix for transposed clef creation.
rpatters1 Dec 13, 2025
b3734af
Attempt to fix smartshape detection
XiaoMigros Dec 15, 2025
9f14e33
A first attempt at lyrics
XiaoMigros Dec 14, 2025
a00d716
Import jumps/markers placement
XiaoMigros Dec 15, 2025
7419465
Repeat text uses frame setter
XiaoMigros Dec 15, 2025
2417184
linked jumps placement
XiaoMigros Dec 16, 2025
db0ef84
Custom lines: no 0 font size
XiaoMigros Dec 16, 2025
aee9121
Fix a few warnings
rpatters1 Dec 17, 2025
7f717d7
push different musx branch for CI build test
rpatters1 Dec 18, 2025
42e2880
rename NoteInfo to DurationInfo (to match change in musx)
rpatters1 Dec 19, 2025
ef5bb67
back out test change
rpatters1 Dec 19, 2025
829713d
Don't create backwards spanners
XiaoMigros Dec 20, 2025
1eeee65
Clefs: Guess forInstrumentChange
XiaoMigros Dec 20, 2025
fc53b84
Marginally improve scaling
XiaoMigros Dec 21, 2025
f450950
Remove unused font mapping files
XiaoMigros Dec 21, 2025
af50138
Some more inst defs
XiaoMigros Dec 21, 2025
a9dae40
Use more namespaces
XiaoMigros Dec 22, 2025
9ef11a7
Remove unused method
XiaoMigros Dec 22, 2025
adb9794
namespace improvements
XiaoMigros Dec 22, 2025
c178cd1
Improve text expr vertical pos
XiaoMigros Dec 22, 2025
ca74103
Fix 2-seg smartshape pos on 2nd system
XiaoMigros Dec 22, 2025
89e8162
Read more style settings
XiaoMigros Dec 22, 2025
6b24537
Fix repeat marking positions
XiaoMigros Dec 22, 2025
f5ac998
Support expression scaling option
XiaoMigros Dec 22, 2025
d3051af
Collect more of tuplet style
XiaoMigros Dec 22, 2025
9686d20
Attempt at dot fix
XiaoMigros Dec 22, 2025
0a4ca3a
use musx consolidatated AlignJustify enum.
rpatters1 Dec 22, 2025
88fe5eb
further attempt at dot fix
XiaoMigros Dec 22, 2025
b5d6e7b
Fix spacers not being detected by page text
XiaoMigros Dec 23, 2025
eb459f9
More AlignH simplifications
XiaoMigros Dec 23, 2025
535c43e
Fix warnings
XiaoMigros Dec 23, 2025
1f712ca
Fix grace slur direction?
XiaoMigros Dec 23, 2025
05b123c
Fix smartshape type detection
XiaoMigros Dec 16, 2025
6c0b75a
Fix assert ?
XiaoMigros Dec 23, 2025
b663bdc
Fix codestyle
XiaoMigros Dec 23, 2025
6060fcd
Dot fix attempt
XiaoMigros Dec 23, 2025
6514cc8
Fix assert ?
XiaoMigros Dec 23, 2025
72c3a1c
refactor slur thickness import
rpatters1 Dec 23, 2025
ae85dda
refactor calculation of slur/tie thickness.
rpatters1 Dec 23, 2025
338c52e
uncrustify
rpatters1 Dec 23, 2025
6727a82
remove IF_ASSERT_FAILED
rpatters1 Dec 23, 2025
700d8d5
ottava fix?
XiaoMigros Dec 24, 2025
dff37c7
Move things to typesconv
XiaoMigros Dec 25, 2025
4657611
More codestyle
XiaoMigros Dec 25, 2025
464e8d2
Don't rebase system left margins
XiaoMigros Oct 30, 2025
f545487
Don't import invalid tuplets
XiaoMigros Dec 25, 2025
b8aa98d
Resolve various todos
XiaoMigros Dec 25, 2025
0d5a547
More style settings
XiaoMigros Dec 26, 2025
4ca98ac
Bizarre style setting test
XiaoMigros Dec 26, 2025
d0f9c77
Correctly determine placement for expressions
XiaoMigros Dec 26, 2025
0c9cddf
Read ornament intervals from symbols
XiaoMigros Dec 26, 2025
6f841dd
Store articulations
XiaoMigros Dec 26, 2025
3b4f9ce
Import text-based articulation
XiaoMigros Dec 26, 2025
154e382
Fix artic placement on rests?
XiaoMigros Dec 26, 2025
c36cc63
Allow individual offset for chord symbols
XiaoMigros Dec 26, 2025
08fc083
Preferences setup
XiaoMigros Dec 27, 2025
b7db13a
Less iteration
XiaoMigros Dec 27, 2025
cef8f4d
Preferences implementation
XiaoMigros Dec 27, 2025
9111b12
Chord symbols tests
XiaoMigros Dec 27, 2025
ce91d90
Harp pedals test
XiaoMigros Dec 27, 2025
69e361c
More improvements
XiaoMigros Dec 27, 2025
aa2eeaa
Fix rogue beams
XiaoMigros Dec 27, 2025
a48eb1f
Fix arpeggios
XiaoMigros Dec 27, 2025
5c0906b
Tests use preferences
XiaoMigros Dec 27, 2025
665967d
arpeggios test
XiaoMigros Dec 27, 2025
05c235b
New build method
XiaoMigros Dec 27, 2025
dac730c
Fix a warning
XiaoMigros Dec 27, 2025
1549220
Use const more widely
XiaoMigros Dec 27, 2025
31353dd
Fix rogue tie warning
XiaoMigros Dec 27, 2025
eb125ea
Adjustments only reads custom beam / tie direction
XiaoMigros Dec 27, 2025
c452d5c
Import rest articulations as symbols
XiaoMigros Dec 27, 2025
2a0d85c
Clean up include statements
XiaoMigros Dec 27, 2025
8c69eb2
Fix a warning
XiaoMigros Dec 27, 2025
36df277
Fix build
XiaoMigros Dec 27, 2025
1e6300c
Update smufl_mapping to pull release 1.1.0.
rpatters1 Dec 27, 2025
844efd1
use 3.0.0 release of musx.
rpatters1 Dec 27, 2025
fe8932e
Reactivate unit tests
XiaoMigros Dec 27, 2025
b5d3f8a
Fix assert
XiaoMigros Dec 27, 2025
786d93a
Tidy unit tests
rpatters1 Nov 21, 2025
dfbbcbf
Beam simplifications
XiaoMigros Dec 28, 2025
b653620
Refactor styles
XiaoMigros Dec 28, 2025
c6b6b38
Set symbols size style
XiaoMigros Dec 28, 2025
2ad0ff0
Refactor text properties
XiaoMigros Dec 28, 2025
d86547f
First attempt at correct font scaling
XiaoMigros Dec 28, 2025
2b4d9b0
Header/Footer can inherit
XiaoMigros Dec 28, 2025
e0bdf14
Add default spatium
XiaoMigros Dec 28, 2025
7e42efa
Improved styles writing
XiaoMigros Dec 28, 2025
2def841
Rename FontTracker property
XiaoMigros Dec 28, 2025
2061f24
Fix attempt
XiaoMigros Dec 28, 2025
fa6111b
More text fixes
XiaoMigros Dec 29, 2025
14418df
Improve ottava positioning
XiaoMigros Dec 29, 2025
6ffca3b
Scaling improvements
XiaoMigros Dec 29, 2025
1ad3874
Read ottava baseline attempt
XiaoMigros Dec 29, 2025
3645c99
Import ottava symbols
XiaoMigros Dec 29, 2025
4f7ec05
Chords: always replace SMuFL symbols
XiaoMigros Dec 29, 2025
afc3e89
static function for staff reference offset
XiaoMigros Dec 29, 2025
15c9a1f
New swing calculation
XiaoMigros Dec 29, 2025
f9933e9
Refactor and correct page layout scaling
XiaoMigros Dec 29, 2025
0cf5115
Fix multiple font settings
XiaoMigros Dec 29, 2025
b0f6a64
Test for mixed font styles
XiaoMigros Dec 29, 2025
8bb6805
SmartShape optimisations
XiaoMigros Dec 29, 2025
86f6eac
Entry optimisations
XiaoMigros Dec 29, 2025
a66a21d
conv methods for barline height
XiaoMigros Dec 30, 2025
5634a39
optimise importStaffItems
XiaoMigros Dec 30, 2025
7fea1c8
Barlines optimisations
XiaoMigros Dec 30, 2025
5f81baf
Text optimisations
XiaoMigros Dec 30, 2025
9b5a67b
Allow diagonal smart shapes
XiaoMigros Dec 30, 2025
0047505
Tidy unit conversion
XiaoMigros Dec 30, 2025
1bb8a18
Element scaling improvements
XiaoMigros Dec 30, 2025
a9f6de9
Simplify ottava text offset
XiaoMigros Dec 31, 2025
71c65e1
Import more guitar bends
XiaoMigros Dec 31, 2025
e4c35ca
Detect more spanner element types
XiaoMigros Dec 31, 2025
c7b6f5f
Fix stem direction for middle beams
XiaoMigros Dec 31, 2025
6474b4f
Fix page text top margin
XiaoMigros Dec 31, 2025
0d03048
More style improvements
XiaoMigros Dec 31, 2025
3b07857
Test another ottava fix
XiaoMigros Dec 31, 2025
ec10ada
Expressions end barline position
XiaoMigros Dec 31, 2025
7f65212
Never create segments outside of measures
XiaoMigros Jan 1, 2026
5a920ff
Detect composite dynamics
XiaoMigros Jan 1, 2026
baf01da
Dynamics detection tests
XiaoMigros Jan 1, 2026
491323e
Fix two-chord tremolos for short CRs
XiaoMigros Jan 1, 2026
d8ee46c
Two-chord tremolo test
XiaoMigros Jan 1, 2026
5c9b537
Fix incorrect grace note conversion
XiaoMigros Jan 2, 2026
11b17f9
Set arpeggio distance style settings
XiaoMigros Jan 2, 2026
e7d7749
constexpr for symbols size
XiaoMigros Jan 2, 2026
7ac1a0d
More articulation styles
XiaoMigros Jan 2, 2026
12f370f
Import grace artics as notes
XiaoMigros Jan 2, 2026
af5cc12
Fix pickup measures
XiaoMigros Jan 2, 2026
0748d93
Special articulations test
XiaoMigros Jan 2, 2026
5b6396a
Articulation fixes
XiaoMigros Jan 2, 2026
dfb485c
Detect chordlines
XiaoMigros Jan 2, 2026
7ac58cc
simplify arpeggio calculation
XiaoMigros Jan 2, 2026
93e28a5
Fix assert
XiaoMigros Jan 2, 2026
b9808ff
Symbols conversion preference
XiaoMigros Jan 2, 2026
a5357d6
Text conversion implementation
XiaoMigros Jan 2, 2026
aab37f2
Fix artic grace note type
XiaoMigros Jan 2, 2026
bf3d2de
pull smulf_mapping from main
rpatters1 Jan 2, 2026
d8050bb
uncrustify
rpatters1 Jan 2, 2026
ee266a4
Add code to enharmonically respell a pitch when it is enharmonically …
rpatters1 Jan 3, 2026
58de6e6
code formatting bot fixes
rpatters1 Jan 3, 2026
3e76380
refactor to use new musx helper function.
rpatters1 Jan 3, 2026
54ccbf6
missing includes needed to compile in VS Code.
rpatters1 Jan 3, 2026
c4d5485
Import non-recognised articulations as symbols
XiaoMigros Jan 4, 2026
18b752d
Don't double-scale instrument names
XiaoMigros Jan 4, 2026
c1dc1f3
Correctly append blank pages
XiaoMigros Jan 4, 2026
20c1331
Use page margins for layout calculations
XiaoMigros Jan 4, 2026
51b2ebf
Fix diagonal hairpins
XiaoMigros Jan 4, 2026
3b0ac71
Read page padding styles
XiaoMigros Jan 4, 2026
7b4e025
Improve SpannerSegment break positions
XiaoMigros Jan 4, 2026
cc4a78b
Show single instrument name when needed
XiaoMigros Jan 4, 2026
03a7465
Fix faulty symbols size?
XiaoMigros Jan 4, 2026
30f5681
Fix marker position
XiaoMigros Jan 4, 2026
8580bef
Import offset headers/footers
XiaoMigros Jan 5, 2026
1a8e119
Import some handbell symbols
XiaoMigros Jan 5, 2026
214c6c3
Simplify cleftype search for shapes
XiaoMigros Jan 5, 2026
302404b
Detect gradual tempo change types
XiaoMigros Jan 5, 2026
086cad6
Articulation pos fixes
XiaoMigros Jan 6, 2026
f730734
Fix repeat text corruption
XiaoMigros Jan 6, 2026
79dd4b7
Better expr pos
XiaoMigros Jan 6, 2026
7063658
Rudimentary dive support
XiaoMigros Jan 7, 2026
cd6e291
Create EntryProcessContext
XiaoMigros Jan 7, 2026
4172474
Always fill measures
XiaoMigros Jan 7, 2026
ae2a396
Better ottava offset
XiaoMigros Jan 7, 2026
5606182
Import more staff style options
XiaoMigros Jan 7, 2026
6ea0ef4
Fix text processing
XiaoMigros Jan 7, 2026
d0c09df
More accurate segment start pos
XiaoMigros Jan 8, 2026
5aed714
fixes to avoid crashes.
rpatters1 Jan 10, 2026
04cf825
fix code style
rpatters1 Jan 10, 2026
2337f27
bring in line with latest musx
rpatters1 Jan 10, 2026
c0b0675
Import chord brackets
XiaoMigros Jan 13, 2026
2c933ef
Support for arrows
XiaoMigros Jan 16, 2026
8b023c1
Fix text metatags
XiaoMigros Jan 16, 2026
786ccc0
Fix musical symbols scale
XiaoMigros Jan 16, 2026
9a2d1da
Fix lyrics scaling
XiaoMigros Jan 16, 2026
315f13e
Use Fraction positive
XiaoMigros Jan 16, 2026
7cda8e5
Fix failing tie test
XiaoMigros Jan 17, 2026
f295b07
Fix noteline width style
XiaoMigros Jan 18, 2026
216354a
New shape recognition
XiaoMigros Jan 20, 2026
401bc8c
More symbols fixes
XiaoMigros Jan 20, 2026
085bf16
Build fix attempt
XiaoMigros Jan 20, 2026
707c252
Snap clef location to entry when appropriate
rpatters1 Jan 25, 2026
27f5b1e
utilize new musx APIs for slur contour and dashed-line detection
rpatters1 Jan 26, 2026
0f7fcd1
New header and footer layout
XiaoMigros Jan 26, 2026
863d255
Changes to chord brackets
XiaoMigros Jan 27, 2026
04772d2
Text fixes
XiaoMigros Jan 27, 2026
a011c3a
Fix double scaling
XiaoMigros Jan 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ option(MUE_BUILD_IMPEXP_CAPELLA_MODULE "Build importexport capella module" ON)
option(MUE_BUILD_IMPEXP_MIDI_MODULE "Build importexport midi module" ON)
option(MUE_BUILD_IMPEXP_MUSEDATA_MODULE "Build importexport musedata module" ON)
option(MUE_BUILD_IMPEXP_MUSICXML_MODULE "Build importexport musicxml module" ON)
option(MUE_BUILD_IMPEXP_FINALE_MODULE "Build importexport finale module" ON)
option(MUE_BUILD_IMPEXP_OVE_MODULE "Build importexport ove module" ON)
option(MUE_BUILD_IMPEXP_AUDIOEXPORT_MODULE "Build importexport audioexport module" ON)
option(MUE_BUILD_IMPEXP_IMAGESEXPORT_MODULE "Build importexport imagesexport module" ON)
Expand Down
2 changes: 2 additions & 0 deletions SetupConfigure.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ if(BUILD_CONFIGURATION STREQUAL "APP-WEB")
set(MUE_BUILD_IMPEXP_MIDI_MODULE OFF)
set(MUE_BUILD_IMPEXP_MUSEDATA_MODULE OFF)
set(MUE_BUILD_IMPEXP_MUSICXML_MODULE OFF)
set(MUE_BUILD_IMPEXP_FINALE_MODULE OFF)
set(MUE_BUILD_IMPEXP_OVE_MODULE OFF)
set(MUE_BUILD_IMPEXP_AUDIOEXPORT_MODULE OFF)
set(MUE_BUILD_IMPEXP_IMAGESEXPORT_MODULE OFF)
Expand Down Expand Up @@ -245,6 +246,7 @@ if(BUILD_CONFIGURATION STREQUAL "VTEST")
set(MUE_BUILD_IMPEXP_MIDI_MODULE OFF)
set(MUE_BUILD_IMPEXP_MUSEDATA_MODULE OFF)
set(MUE_BUILD_IMPEXP_MUSICXML_MODULE OFF)
set(MUE_BUILD_IMPEXP_FINALE_MODULE OFF)
set(MUE_BUILD_IMPEXP_OVE_MODULE OFF)
set(MUE_BUILD_IMPEXP_AUDIOEXPORT_MODULE OFF)
set(MUE_BUILD_IMPEXP_IMAGESEXPORT_MODULE ON)
Expand Down
4 changes: 2 additions & 2 deletions src/app/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ add_to_link_if_exists(iex_audioexport)
add_to_link_if_exists(iex_bb)
add_to_link_if_exists(iex_bww)
add_to_link_if_exists(iex_capella)
add_to_link_if_exists(iex_finale)
add_to_link_if_exists(iex_guitarpro)
add_to_link_if_exists(iex_imagesexport)
add_to_link_if_exists(iex_lyricsexport)
Expand All @@ -175,8 +176,7 @@ add_to_link_if_exists(palette)
add_to_link_if_exists(playback)
add_to_link_if_exists(preferences)
add_to_link_if_exists(print)
add_to_link_if_exists(project)

add_to_link_if_exists(project)

set(MSCORE_APPEND_SRC)

Expand Down
1 change: 1 addition & 0 deletions src/app/app_config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
#cmakedefine MUE_BUILD_IMPEXP_MIDI_MODULE ${MUE_BUILD_IMPEXP_MIDI_MODULE})
#cmakedefine MUE_BUILD_IMPEXP_MUSEDATA_MODULE ${MUE_BUILD_IMPEXP_MUSEDATA_MODULE})
#cmakedefine MUE_BUILD_IMPEXP_MUSICXML_MODULE ${MUE_BUILD_IMPEXP_MUSICXML_MODULE})
#cmakedefine MUE_BUILD_IMPEXP_FINALE_MODULE ${MUE_BUILD_IMPEXP_FINALE_MODULE})
#cmakedefine MUE_BUILD_IMPEXP_OVE_MODULE ${MUE_BUILD_IMPEXP_OVE_MODULE})
#cmakedefine MUE_BUILD_IMPEXP_AUDIOEXPORT_MODULE ${MUE_BUILD_IMPEXP_AUDIOEXPORT_MODULE})
#cmakedefine MUE_BUILD_IMPEXP_IMAGESEXPORT_MODULE ${MUE_BUILD_IMPEXP_IMAGESEXPORT_MODULE})
Expand Down
9 changes: 9 additions & 0 deletions src/app/appfactory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,9 @@
#else
#include "stubs/importexport/musicxml/musicxmlmodule.h"
#endif
#ifdef MUE_BUILD_IMPEXP_FINALE_MODULE
#include "importexport/finale/finalemodule.h"
#endif
#ifdef MUE_BUILD_IMPEXP_OVE_MODULE
#include "importexport/ove/ovemodule.h"
#else
Expand Down Expand Up @@ -352,6 +355,9 @@ std::shared_ptr<muse::IApplication> AppFactory::newGuiApp(const CmdOptions& opti
#endif
app->addModule(new mu::iex::musicxml::MusicXmlModule());
app->addModule(new mu::iex::ove::OveModule());
#ifdef MUE_BUILD_IMPEXP_FINALE_MODULE
app->addModule(new mu::iex::finale::FinaleModule());
#endif
#ifdef MUE_BUILD_IMPEXP_AUDIOEXPORT_MODULE
app->addModule(new mu::iex::audioexport::AudioExportModule());
#endif
Expand Down Expand Up @@ -474,6 +480,9 @@ static void addConsoleModules(std::shared_ptr<ConsoleApp> app)
#endif
app->addModule(new mu::iex::musicxml::MusicXmlModule());
app->addModule(new mu::iex::ove::OveModule());
#ifdef MUE_BUILD_IMPEXP_FINALE_MODULE
app->addModule(new mu::iex::finale::FinaleModule());
#endif
#ifdef MUE_BUILD_IMPEXP_AUDIOEXPORT_MODULE
app->addModule(new mu::iex::audioexport::AudioExportModule());
#endif
Expand Down
4 changes: 2 additions & 2 deletions src/engraving/rendering/score/beamtremololayout.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@

#include <vector>

#include "dom/beambase.h"
#include "types/types.h"
#include "../../dom/beambase.h"
#include "../../types/types.h"

#include "layoutcontext.h"

Expand Down
3 changes: 3 additions & 0 deletions src/importexport/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ if (MUE_BUILD_IMPEXP_MUSICXML_MODULE)
else()
add_subdirectory(../stubs/importexport/musicxml stubs/musicxml)
endif()
if (MUE_BUILD_IMPEXP_FINALE_MODULE)
add_subdirectory(finale)
endif()
if (MUE_BUILD_IMPEXP_OVE_MODULE)
add_subdirectory(ove)
else()
Expand Down
77 changes: 77 additions & 0 deletions src/importexport/finale/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# SPDX-License-Identifier: GPL-3.0-only
# MuseScore-Studio-CLA-applies
#
# MuseScore Studio
# .musx Import Module (Experimental)

muse_create_module(iex_finale)

include(FetchContent)
include(GetCompilerInfo)

# turn on for reference and debugging as needed
set(MUSX_DISPLAY_NODE_NAMES OFF CACHE BOOL "Log node names to trace as they are processed" FORCE)

set(musx_BUILD_TESTING OFF CACHE BOOL "Do not build tests for musx")
FetchContent_Declare(
musx
GIT_REPOSITORY https://github.com/rpatters1/musxdom.git
GIT_TAG main
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
)

FetchContent_MakeAvailable(musx)

set(smufl_mapping_BUILD_TESTING OFF CACHE BOOL "Do not build tests for musx")
FetchContent_Declare(
smufl_mapping
GIT_REPOSITORY https://github.com/rpatters1/smufl-mapping.git
GIT_TAG main
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
)

FetchContent_MakeAvailable(smufl_mapping)

if (CC_IS_MSVC)
include(FindZlibStatic)
target_link_libraries(iex_finale PRIVATE zlibstat)
target_include_directories(iex_finale PRIVATE ${DEPENDENCIES_INC}/zlib)
endif ()

target_sources(iex_finale PRIVATE
third_party/score_encoder.h
internal/notationfinalereader.cpp
internal/notationfinalereader.h
internal/finaleconfiguration.cpp
internal/finaleconfiguration.h
internal/finaletypesconv.cpp
internal/finaletypesconv.h
internal/musxxmldom.h
internal/importfinale.cpp
internal/importfinale.h
internal/importfinaleentries.cpp
internal/importfinalelogger.cpp
internal/importfinalelogger.h
internal/importfinalescoremap.cpp
internal/importfinaleparser.cpp
internal/importfinaleparser.h
internal/importfinalestyles.cpp
internal/importfinalesmartshapes.cpp
internal/importfinaletext.cpp
internal/importfinalearticulations.cpp
internal/text/finaletextconv.cpp
internal/text/finaletextconv.h
ifinaleconfiguration.h
finalemodule.cpp
finalemodule.h
)

target_link_libraries(iex_finale PRIVATE
musx # Link musxdom library
smufl_mapping # Link smufl_mapping library
engraving # MuseScore expects importers to link to "engraving" usually
)

if (MUE_BUILD_IMPORTEXPORT_TESTS)
add_subdirectory(tests)
endif()
57 changes: 57 additions & 0 deletions src/importexport/finale/finalemodule.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* SPDX-License-Identifier: GPL-3.0-only
* MuseScore-Studio-CLA-applies
*
* MuseScore Studio
* Music Composition & Notation
*
* Copyright (C) 2021 MuseScore Limited
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "finalemodule.h"

#include "modularity/ioc.h"

#include "project/inotationreadersregister.h"
#include "internal/finaleconfiguration.h"
#include "internal/notationfinalereader.h"

using namespace muse::modularity;
using namespace mu::iex::finale;
using namespace mu::project;

std::string FinaleModule::moduleName() const
{
return "iex_finale";
}

void FinaleModule::registerExports()
{
m_configuration = std::make_shared<FinaleConfiguration>();

ioc()->registerExport<IFinaleConfiguration>(moduleName(), m_configuration);
}

void FinaleModule::resolveImports()
{
auto readers = ioc()->resolve<INotationReadersRegister>(moduleName());
if (readers) {
readers->reg({ "musx", "enigmaxml" }, std::make_shared<NotationFinaleReader>(iocContext()));
}
}

void FinaleModule::onInit(const muse::IApplication::RunMode&)
{
m_configuration->init();
}
41 changes: 41 additions & 0 deletions src/importexport/finale/finalemodule.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* SPDX-License-Identifier: GPL-3.0-only
* MuseScore-Studio-CLA-applies
*
* MuseScore Studio
* Music Composition & Notation
*
* Copyright (C) 2025 MuseScore Limited
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once

#include "modularity/imodulesetup.h"
#include "global/iapplication.h"

namespace mu::iex::finale {
class FinaleConfiguration;
class FinaleModule : public muse::modularity::IModuleSetup
{
public:

std::string moduleName() const override;
void registerExports() override;
void resolveImports() override;
void onInit(const muse::IApplication::RunMode&) override;

private:
std::shared_ptr<FinaleConfiguration> m_configuration;
};
} // namespace mu::iex::finale
48 changes: 48 additions & 0 deletions src/importexport/finale/ifinaleconfiguration.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
* SPDX-License-Identifier: GPL-3.0-only
* MuseScore-Studio-CLA-applies
*
* MuseScore Studio
* Music Composition & Notation
*
* Copyright (C) 2025 MuseScore Limited
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once

#include "modularity/imoduleinterface.h"
#include "async/channel.h"

namespace mu::iex::finale {
class IFinaleConfiguration : MODULE_GLOBAL_EXPORT_INTERFACE
{
INTERFACE_ID(IFinaleConfiguration)

public:
virtual ~IFinaleConfiguration() = default;

enum class ImportPositionsType {
None, AdjustmentsOnly, All
};

virtual ImportPositionsType importPositionsType() const = 0;
virtual bool convertTextSymbols() const = 0;

virtual void setImportPositionsType(ImportPositionsType importPositionsType) = 0;
virtual void setConvertTextSymbols(bool convert) = 0;

virtual muse::async::Channel<ImportPositionsType> importPositionsTypeChanged() const = 0;
virtual muse::async::Channel<bool> convertTextSymbolsChanged() const = 0;
};
}
Loading
Loading