Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
691eaf4
enc-doc: document the Encore binary file format
manolo May 23, 2026
62842ff
enc-feat: open Encore (.enc) scores in MuseScore
manolo May 23, 2026
2022b14
enc-test: add the Encore importer test infrastructure
manolo May 23, 2026
5c02ace
enc-feat: model the Encore tick and duration system
manolo May 24, 2026
e726d28
enc-feat: model Encore score contents
manolo May 24, 2026
77072be
enc-feat: parse the Encore header and block structure
manolo May 24, 2026
b47ec73
enc-feat: parse measures, notes and rests
manolo May 30, 2026
1ee0086
enc-feat: parse ornaments, text, chords and metadata
manolo May 30, 2026
2ddadd7
enc-feat: import instruments and staves
manolo May 30, 2026
50dacb5
enc-feat: import notes, rests and durations
manolo May 31, 2026
32d2ae5
enc-feat: import per-instrument staff size
manolo May 31, 2026
9425b73
enc-feat: import tempo marks
manolo May 31, 2026
1e3abf8
enc-test: add tuplet import tests
manolo Jun 6, 2026
cfdce9a
enc-feat: import ties
manolo Jun 6, 2026
7a64a73
enc-feat: import multi-measure rests
manolo Jun 6, 2026
f677d9c
enc-feat: import articulations and note-attached ornaments
manolo Jun 7, 2026
e7b7460
enc-feat: import dynamics, tremolos and ornament elements
manolo Jun 7, 2026
c5dd457
enc-feat: import mid-measure clef changes
manolo Jun 7, 2026
1ae5a10
enc-feat: import repeats and voltas
manolo Jun 13, 2026
d4d5fac
enc-feat: import hairpins
manolo Jun 13, 2026
694c6d9
enc-feat: import slurs
manolo Jun 13, 2026
90dac5d
enc-feat: import grace and cue notes
manolo Jun 14, 2026
8f5afab
enc-feat: import fingerings and bowing marks
manolo Jun 14, 2026
67d4bcf
enc-feat: import ottava lines
manolo Jun 14, 2026
02dc01c
enc-feat: import staff text and titles
manolo Jun 20, 2026
26f9e02
enc-feat: import lyrics
manolo Jun 20, 2026
7c23a2e
enc-feat: import chord symbols
manolo Jun 20, 2026
c62c8a4
enc-feat: support Encore 3.x/4.x files (v0xC2)
manolo Jun 27, 2026
7eff7f6
enc-feat: support Encore 2.x files (v0xA6)
manolo Jun 27, 2026
d59dafc
enc-test: add measure overfill and underfill option tests
manolo Jun 28, 2026
b4003f9
enc-feat: merge non-overlapping voices on import
manolo Jun 28, 2026
a29c5e5
enc-feat: import page size and margins
manolo Jul 4, 2026
2cf0628
enc-feat: add Encore import preferences
manolo Jul 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ option(MUE_BUILD_ENGRAVING_PLAYBACK "Build engraving playback" ON)

# IMPORT EXPORT MODULES
option(MUE_BUILD_IMPEXP_BB_MODULE "Build importexport bb module" ON)
option(MUE_BUILD_IMPEXP_ENCORE_MODULE "Build importexport encore module" ON)
option(MUE_BUILD_IMPEXP_BWW_MODULE "Build importexport bww module" ON)
option(MUE_BUILD_IMPEXP_CAPELLA_MODULE "Build importexport capella module" ON)
option(MUE_BUILD_IMPEXP_MIDI_MODULE "Build importexport midi module" ON)
Expand Down
1 change: 1 addition & 0 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(converter)
add_to_link_if_exists(engraving)
add_to_link_if_exists(iex_audioexport)
add_to_link_if_exists(iex_bb)
add_to_link_if_exists(iex_encore)
add_to_link_if_exists(iex_bww)
add_to_link_if_exists(iex_capella)
add_to_link_if_exists(iex_guitarpro)
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 @@ -35,6 +35,7 @@
/* Import Export Modules */
/* ============================================== */
#cmakedefine MUE_BUILD_IMPEXP_BB_MODULE 1
#cmakedefine MUE_BUILD_IMPEXP_ENCORE_MODULE 1
#cmakedefine MUE_BUILD_IMPEXP_BWW_MODULE 1
#cmakedefine MUE_BUILD_IMPEXP_CAPELLA_MODULE 1
#cmakedefine MUE_BUILD_IMPEXP_MIDI_MODULE 1
Expand Down
9 changes: 9 additions & 0 deletions src/app/appfactory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,9 @@
#ifdef MUE_BUILD_IMPEXP_BB_MODULE
#include "importexport/bb/bbmodule.h"
#endif
#ifdef MUE_BUILD_IMPEXP_ENCORE_MODULE
#include "importexport/encore/enc-module.h"
#endif
#ifdef MUE_BUILD_IMPEXP_BWW_MODULE
#include "importexport/bww/bwwmodule.h"
#endif
Expand Down Expand Up @@ -379,6 +382,9 @@ std::shared_ptr<muse::IApplication> AppFactory::newGuiApp(const std::shared_ptr<
#ifdef MUE_BUILD_IMPEXP_BB_MODULE
app->addModule(new mu::iex::bb::BBModule());
#endif
#ifdef MUE_BUILD_IMPEXP_ENCORE_MODULE
app->addModule(new mu::iex::enc::EncoreModule());
#endif
#ifdef MUE_BUILD_IMPEXP_BWW_MODULE
app->addModule(new mu::iex::bww::BwwModule());
#endif
Expand Down Expand Up @@ -503,6 +509,9 @@ static void addConsoleModules(std::shared_ptr<MuseScoreConsoleApp> app)
#ifdef MUE_BUILD_IMPEXP_BB_MODULE
app->addModule(new mu::iex::bb::BBModule());
#endif
#ifdef MUE_BUILD_IMPEXP_ENCORE_MODULE
app->addModule(new mu::iex::enc::EncoreModule());
#endif
#ifdef MUE_BUILD_IMPEXP_BWW_MODULE
app->addModule(new mu::iex::bww::BwwModule());
#endif
Expand Down
3 changes: 3 additions & 0 deletions src/importexport/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ endif()
if (MUE_BUILD_IMPEXP_BB_MODULE)
add_subdirectory(bb)
endif()
if (MUE_BUILD_IMPEXP_ENCORE_MODULE)
add_subdirectory(encore)
endif()
if (MUE_BUILD_IMPEXP_BWW_MODULE)
add_subdirectory(bww)
endif()
Expand Down
103 changes: 103 additions & 0 deletions src/importexport/encore/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# SPDX-License-Identifier: GPL-3.0-only
# MuseScore-Studio-CLA-applies
#
# MuseScore Studio
# Music Composition & Notation
#
# Copyright (C) 2026 MuseScore Limited and others
#
# 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/>.

muse_create_module(iex_encore)

target_sources(iex_encore PRIVATE
enc-module.cpp
enc-module.h
ienc-importconfiguration.h
internal/enc-importconfiguration.h
internal/enc-importconfiguration.cpp
internal/parser/parsers-note.cpp
internal/parser/parsers-chord.cpp
internal/parser/parsers-ornament.cpp
internal/parser/parsers-lyric-tie.cpp
internal/parser/parsers-measure.cpp
internal/parser/parsers-metadata.cpp
internal/parser/parsers-text.cpp
internal/parser/parsers-root.cpp
internal/parser/parsers-encoding.h
internal/parser/parsers-encoding.cpp
internal/parser/readers.h
internal/parser/readers.cpp
internal/parser/readers-v0xa6.h
internal/parser/readers-v0xa6.cpp
internal/parser/readers-v0xc4-base.h
internal/parser/readers-v0xc4-base.cpp
internal/parser/readers-v0xc2.h
internal/parser/readers-v0xc2.cpp
internal/parser/readers-v0xc4.h
internal/parser/readers-v0xc4.cpp
internal/parser/elem.h
internal/importer/mappers-clefs.cpp
internal/importer/mappers-title.cpp
internal/importer/mappers-instruments.cpp
internal/importer/mappers-tempo.cpp
internal/importer/mappers-articulations.cpp
internal/importer/mappers.h
internal/parser/ticks.cpp
internal/parser/ticks.h
internal/importer/emitters-tuplets.cpp
internal/importer/emitters-tuplets-groups.cpp
internal/importer/emitters-tuplets.h
internal/notationencreader.cpp
internal/notationencreader.h
internal/importer/import.cpp
internal/importer/page-layout.h
internal/importer/page-layout.cpp
internal/importer/debug-dump.h
internal/importer/debug-dump.cpp
internal/importer/ctx.h
internal/importer/builders.h
internal/importer/builders-parts.cpp
internal/importer/builders-measures.cpp
internal/importer/emitters-internal.h
internal/importer/coords.h
internal/importer/coords.cpp
internal/importer/durations.h
internal/importer/durations.cpp
internal/importer/emitters-note.cpp
internal/importer/emitters-note-grace.cpp
internal/importer/emitters-note-artic.cpp
internal/importer/emitters-rest.cpp
internal/importer/emitters-orn.cpp
internal/importer/emitters-chords.cpp
internal/importer/emitters-lyrics.cpp
internal/importer/emitters-tempo.cpp
internal/importer/emitters-fill.cpp
internal/importer/emitters-overfill.cpp
internal/importer/emitters.cpp
internal/importer/resolvers.h
internal/importer/resolvers.cpp
internal/importer/resolvers-slur.cpp
internal/importer/resolvers-hairpin.cpp
internal/importer/resolvers-ornaments.cpp
internal/importer/resolvers-fingering.cpp
internal/importer/resolvers-ottava.cpp
internal/importer/import.h
internal/importer/import-options.h
)

target_link_libraries(iex_encore PRIVATE engraving)

if (MUE_BUILD_IMPORTEXPORT_TESTS)
add_subdirectory(tests)
endif()
Loading
Loading