diff --git a/ML/src/makexml/MakeScore.py b/ML/src/makexml/MakeScore.py index 37f382b..0255683 100644 --- a/ML/src/makexml/MakeScore.py +++ b/ML/src/makexml/MakeScore.py @@ -421,32 +421,59 @@ def convert_df_to_score(object_dfs, vis_list): @staticmethod def change_key(score, diff): if diff > 7 or diff < -7: + print("❌ 변환 범위 초과, 그대로 리턴") return score if diff == 0: + print("❌ diff가 0, 변환 안함") return score - else: - change = { - -7: "-P5", - -6: "-D5", - -5: "-P4", - -4: "-M3", - -3: "-m3", - -2: "-M2", - -1: "-m2", - 1: "m2", - 2: "M2", - 3: "m3", - 4: "M3", - 5: "P4", - 6: "D5", - 7: "P5" - } - interval_str = change[diff] - intv = interval.Interval(interval_str) - new_score = score.transpose(intv) - print("키 변환 완료") - return new_score + + change = { + -7: "-P5", + -6: "-D5", + -5: "-P4", + -4: "-M3", + -3: "-m3", + -2: "-M2", + -1: "-m2", + 1: "m2", + 2: "M2", + 3: "m3", + 4: "M3", + 5: "P4", + 6: "D5", + 7: "P5" + } + interval_str = change[diff] + intv = interval.Interval(interval_str) + + print(f"👉 transpose interval: {interval_str}") + new_score = score.transpose(intv) + + # 조표도 수동으로 업데이트 + for p in new_score.parts: + # 기존 키 분석 + orig_key = p.analyze('key') + transposed_key = orig_key.transpose(intv) + + ks = key.KeySignature() + ks.sharps = transposed_key.sharps + ks.mode = transposed_key.mode + + # 첫 마디에 새로운 키 서명 삽입 + m = p.measure(1) + if m: + m.insert(0, ks) + else: + # 첫 마디가 없으면 강제로 만들어서 넣기 + m_new = stream.Measure(number=1) + m_new.insert(0, ks) + p.insert(0, m_new) + + print(f"✅ 조표 업데이트: {ks.sharps} {ks.mode}") + + print("✅ 키 변환 완료 및 조표 업데이트!") + return new_score # Score 객체를 받은 파일 이름으로 musicXML로 만들어주는 함수 # 이름이 없으면 이름없는 악보 + 랜덤 문자열10개로 만들어줌 diff --git a/alembic.ini b/alembic.ini new file mode 100644 index 0000000..5a2cef2 --- /dev/null +++ b/alembic.ini @@ -0,0 +1,120 @@ +# A generic, single database configuration. + +[alembic] +# path to migration scripts +# Use forward slashes (/) also on windows to provide an os agnostic path +script_location = migrations + +# template used to generate migration file names; The default value is %%(rev)s_%%(slug)s +# Uncomment the line below if you want the files to be prepended with date and time +# see https://alembic.sqlalchemy.org/en/latest/tutorial.html#editing-the-ini-file +# for all available tokens +# file_template = %%(year)d_%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d-%%(rev)s_%%(slug)s + +# sys.path path, will be prepended to sys.path if present. +# defaults to the current working directory. +prepend_sys_path = . + +# timezone to use when rendering the date within the migration file +# as well as the filename. +# If specified, requires the python>=3.9 or backports.zoneinfo library and tzdata library. +# Any required deps can installed by adding `alembic[tz]` to the pip requirements +# string value is passed to ZoneInfo() +# leave blank for localtime +# timezone = + +# max length of characters to apply to the "slug" field +# truncate_slug_length = 40 + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + +# set to 'true' to allow .pyc and .pyo files without +# a source .py file to be detected as revisions in the +# versions/ directory +# sourceless = false + +# version location specification; This defaults +# to migrations/versions. When using multiple version +# directories, initial revisions must be specified with --version-path. +# The path separator used here should be the separator specified by "version_path_separator" below. +# version_locations = %(here)s/bar:%(here)s/bat:migrations/versions + +# version path separator; As mentioned above, this is the character used to split +# version_locations. The default within new alembic.ini files is "os", which uses os.pathsep. +# If this key is omitted entirely, it falls back to the legacy behavior of splitting on spaces and/or commas. +# Valid values for version_path_separator are: +# +# version_path_separator = : +# version_path_separator = ; +# version_path_separator = space +# version_path_separator = newline +# +# Use os.pathsep. Default configuration used for new projects. +version_path_separator = os + +# set to 'true' to search source files recursively +# in each "version_locations" directory +# new in Alembic version 1.10 +# recursive_version_locations = false + +# the output encoding used when revision files +# are written from script.py.mako +# output_encoding = utf-8 + +sqlalchemy.url = mysql+pymysql://root:lmh*1961495@127.0.0.1/transcore + + + +[post_write_hooks] +# post_write_hooks defines scripts or Python functions that are run +# on newly generated revision scripts. See the documentation for further +# detail and examples + +# format using "black" - use the console_scripts runner, against the "black" entrypoint +# hooks = black +# black.type = console_scripts +# black.entrypoint = black +# black.options = -l 79 REVISION_SCRIPT_FILENAME + +# lint with attempts to fix using "ruff" - use the exec runner, execute a binary +# hooks = ruff +# ruff.type = exec +# ruff.executable = %(here)s/.venv/bin/ruff +# ruff.options = check --fix REVISION_SCRIPT_FILENAME + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARNING +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARNING +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/alter_scores.py b/alter_scores.py new file mode 100644 index 0000000..4624790 --- /dev/null +++ b/alter_scores.py @@ -0,0 +1,12 @@ +# alter_scores.py +from sqlalchemy import text +from src import create_app +from src.models.db import db + +app = create_app() + +with app.app_context(): + db.session.execute(text("ALTER TABLE scores MODIFY xml_path VARCHAR(512) NULL;")) + db.session.execute(text("ALTER TABLE scores MODIFY pdf_path VARCHAR(512) NULL;")) + db.session.commit() + print("✅ DB 컬럼을 NULL 허용으로 변경 완료!") diff --git a/convert_result/00fe3c01.pdf b/convert_result/00fe3c01.pdf new file mode 100644 index 0000000..0e7cad6 Binary files /dev/null and b/convert_result/00fe3c01.pdf differ diff --git a/convert_result/00fe3c01.xml b/convert_result/00fe3c01.xml new file mode 100644 index 0000000..af2af0c --- /dev/null +++ b/convert_result/00fe3c01.xml @@ -0,0 +1,714 @@ + + + + + 00fe3c01 + + 00fe3c01 + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/0411778e.pdf b/convert_result/0411778e.pdf new file mode 100644 index 0000000..471caf0 Binary files /dev/null and b/convert_result/0411778e.pdf differ diff --git a/convert_result/0411778e.xml b/convert_result/0411778e.xml new file mode 100644 index 0000000..e42c2dc --- /dev/null +++ b/convert_result/0411778e.xml @@ -0,0 +1,714 @@ + + + + + 0411778e + + 0411778e + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/06ccd145.pdf b/convert_result/06ccd145.pdf new file mode 100644 index 0000000..03e7043 Binary files /dev/null and b/convert_result/06ccd145.pdf differ diff --git a/convert_result/06ccd145.xml b/convert_result/06ccd145.xml new file mode 100644 index 0000000..0c4d145 --- /dev/null +++ b/convert_result/06ccd145.xml @@ -0,0 +1,714 @@ + + + + + 06ccd145 + + 06ccd145 + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/13f3b828.pdf b/convert_result/13f3b828.pdf new file mode 100644 index 0000000..3d9b862 Binary files /dev/null and b/convert_result/13f3b828.pdf differ diff --git a/convert_result/13f3b828.xml b/convert_result/13f3b828.xml new file mode 100644 index 0000000..ee55de6 --- /dev/null +++ b/convert_result/13f3b828.xml @@ -0,0 +1,714 @@ + + + + + 13f3b828 + + 13f3b828 + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/14c2e90c.pdf b/convert_result/14c2e90c.pdf new file mode 100644 index 0000000..7dabb77 Binary files /dev/null and b/convert_result/14c2e90c.pdf differ diff --git a/convert_result/14c2e90c.xml b/convert_result/14c2e90c.xml new file mode 100644 index 0000000..341ec8d --- /dev/null +++ b/convert_result/14c2e90c.xml @@ -0,0 +1,714 @@ + + + + + 14c2e90c + + 14c2e90c + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/14fc5f26.pdf b/convert_result/14fc5f26.pdf new file mode 100644 index 0000000..12680d9 Binary files /dev/null and b/convert_result/14fc5f26.pdf differ diff --git a/convert_result/14fc5f26.xml b/convert_result/14fc5f26.xml new file mode 100644 index 0000000..05143be --- /dev/null +++ b/convert_result/14fc5f26.xml @@ -0,0 +1,714 @@ + + + + + 14fc5f26 + + 14fc5f26 + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/16a117f8.pdf b/convert_result/16a117f8.pdf new file mode 100644 index 0000000..60928cf Binary files /dev/null and b/convert_result/16a117f8.pdf differ diff --git a/convert_result/16a117f8.xml b/convert_result/16a117f8.xml new file mode 100644 index 0000000..34f50fc --- /dev/null +++ b/convert_result/16a117f8.xml @@ -0,0 +1,714 @@ + + + + + 16a117f8 + + 16a117f8 + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/17d4a80a.pdf b/convert_result/17d4a80a.pdf new file mode 100644 index 0000000..c0ee507 Binary files /dev/null and b/convert_result/17d4a80a.pdf differ diff --git a/convert_result/17d4a80a.xml b/convert_result/17d4a80a.xml new file mode 100644 index 0000000..3d173f4 --- /dev/null +++ b/convert_result/17d4a80a.xml @@ -0,0 +1,714 @@ + + + + + 17d4a80a + + 17d4a80a + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/1b447818-4584-4eef-ab56-a3e262156617.pdf b/convert_result/1b447818-4584-4eef-ab56-a3e262156617.pdf new file mode 100644 index 0000000..9b15973 Binary files /dev/null and b/convert_result/1b447818-4584-4eef-ab56-a3e262156617.pdf differ diff --git a/convert_result/1b447818-4584-4eef-ab56-a3e262156617.xml b/convert_result/1b447818-4584-4eef-ab56-a3e262156617.xml new file mode 100644 index 0000000..6d9ad24 --- /dev/null +++ b/convert_result/1b447818-4584-4eef-ab56-a3e262156617.xml @@ -0,0 +1,703 @@ + + + + + 1b447818-4584-4eef-ab56-a3e262156617 + + 1b447818-4584-4eef-ab56-a3e262156617 + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + -1 + + + + G + 2 + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 5040 + eighth + up + begin + + + + + + + F + 4 + + 5040 + eighth + up + end + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + J + + + + + F + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 20160 + half + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 5040 + eighth + down + begin + + + + + + + C + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 5040 + eighth + down + begin + + single + + + + + + D + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + F + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + G + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + G + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/2098872f.pdf b/convert_result/2098872f.pdf new file mode 100644 index 0000000..c4e8e3b Binary files /dev/null and b/convert_result/2098872f.pdf differ diff --git a/convert_result/2098872f.xml b/convert_result/2098872f.xml new file mode 100644 index 0000000..9affd33 --- /dev/null +++ b/convert_result/2098872f.xml @@ -0,0 +1,714 @@ + + + + + 2098872f + + 2098872f + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/278a3d95-e736-4a32-9340-b2e4fadc721a.pdf b/convert_result/278a3d95-e736-4a32-9340-b2e4fadc721a.pdf new file mode 100644 index 0000000..b21fd0c Binary files /dev/null and b/convert_result/278a3d95-e736-4a32-9340-b2e4fadc721a.pdf differ diff --git a/convert_result/278a3d95-e736-4a32-9340-b2e4fadc721a.png b/convert_result/278a3d95-e736-4a32-9340-b2e4fadc721a.png new file mode 100644 index 0000000..e45f9f8 Binary files /dev/null and b/convert_result/278a3d95-e736-4a32-9340-b2e4fadc721a.png differ diff --git a/convert_result/278a3d95-e736-4a32-9340-b2e4fadc721a.xml b/convert_result/278a3d95-e736-4a32-9340-b2e4fadc721a.xml new file mode 100644 index 0000000..cf3c9e5 --- /dev/null +++ b/convert_result/278a3d95-e736-4a32-9340-b2e4fadc721a.xml @@ -0,0 +1,761 @@ + + + + + 278a3d95-e736-4a32-9340-b2e4fadc721a + + 278a3d95-e736-4a32-9340-b2e4fadc721a + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 6 + + + + G + 2 + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 5040 + eighth + up + begin + + + + + + + F + 1 + 4 + + 5040 + eighth + up + end + + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + C + 1 + 5 + + 5040 + eighth + + single + + + + + + C + 1 + 5 + + 5040 + eighth + + single + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + + + + + + C + 1 + 5 + + 5040 + eighth + + single + + + + + + C + 1 + 5 + + 5040 + eighth + + + + + + + B + -1 + 4 + + 5040 + eighth + flat + + single + + + + + + 5040 + eighth + + + + C + 1 + 5 + + 5040 + eighth + + single + + + + + + C + 1 + 5 + + 5040 + eighth + + + + + + + B + -1 + 4 + + 5040 + eighth + flat + + single + + + + + + 5040 + eighth + + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + J + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 20160 + half + + single + + + + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + + + + C + 1 + 5 + + 5040 + eighth + down + begin + + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + begin + + single + + + + + + E + -1 + 5 + + 5040 + eighth + flat + down + end + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + + + + + + G + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/2826d87d.pdf b/convert_result/2826d87d.pdf new file mode 100644 index 0000000..0312915 Binary files /dev/null and b/convert_result/2826d87d.pdf differ diff --git a/convert_result/2826d87d.xml b/convert_result/2826d87d.xml new file mode 100644 index 0000000..5fce94a --- /dev/null +++ b/convert_result/2826d87d.xml @@ -0,0 +1,714 @@ + + + + + 2826d87d + + 2826d87d + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/2a4762f2.pdf b/convert_result/2a4762f2.pdf new file mode 100644 index 0000000..800d655 Binary files /dev/null and b/convert_result/2a4762f2.pdf differ diff --git a/convert_result/2a4762f2.xml b/convert_result/2a4762f2.xml new file mode 100644 index 0000000..7223984 --- /dev/null +++ b/convert_result/2a4762f2.xml @@ -0,0 +1,714 @@ + + + + + 2a4762f2 + + 2a4762f2 + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/2b328f69.pdf b/convert_result/2b328f69.pdf new file mode 100644 index 0000000..56a59ac Binary files /dev/null and b/convert_result/2b328f69.pdf differ diff --git a/convert_result/2b328f69.xml b/convert_result/2b328f69.xml new file mode 100644 index 0000000..b59a5e1 --- /dev/null +++ b/convert_result/2b328f69.xml @@ -0,0 +1,714 @@ + + + + + 2b328f69 + + 2b328f69 + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/30b1fc6d.pdf b/convert_result/30b1fc6d.pdf new file mode 100644 index 0000000..bee5d69 Binary files /dev/null and b/convert_result/30b1fc6d.pdf differ diff --git a/convert_result/30b1fc6d.xml b/convert_result/30b1fc6d.xml new file mode 100644 index 0000000..fe4a398 --- /dev/null +++ b/convert_result/30b1fc6d.xml @@ -0,0 +1,714 @@ + + + + + 30b1fc6d + + 30b1fc6d + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/34c4a1cb-489e-4e9a-a90a-57ba0148227d-1.png b/convert_result/34c4a1cb-489e-4e9a-a90a-57ba0148227d-1.png new file mode 100644 index 0000000..7c01d74 Binary files /dev/null and b/convert_result/34c4a1cb-489e-4e9a-a90a-57ba0148227d-1.png differ diff --git a/convert_result/34c4a1cb-489e-4e9a-a90a-57ba0148227d.pdf b/convert_result/34c4a1cb-489e-4e9a-a90a-57ba0148227d.pdf new file mode 100644 index 0000000..bb2a76f Binary files /dev/null and b/convert_result/34c4a1cb-489e-4e9a-a90a-57ba0148227d.pdf differ diff --git a/convert_result/34c4a1cb-489e-4e9a-a90a-57ba0148227d.xml b/convert_result/34c4a1cb-489e-4e9a-a90a-57ba0148227d.xml new file mode 100644 index 0000000..86f240d --- /dev/null +++ b/convert_result/34c4a1cb-489e-4e9a-a90a-57ba0148227d.xml @@ -0,0 +1,761 @@ + + + + + 34c4a1cb-489e-4e9a-a90a-57ba0148227d + + 34c4a1cb-489e-4e9a-a90a-57ba0148227d + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 6 + + + + G + 2 + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 5040 + eighth + up + begin + + + + + + + F + 1 + 4 + + 5040 + eighth + up + end + + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + C + 1 + 5 + + 5040 + eighth + + single + + + + + + C + 1 + 5 + + 5040 + eighth + + single + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + + + + + + C + 1 + 5 + + 5040 + eighth + + single + + + + + + C + 1 + 5 + + 5040 + eighth + + + + + + + B + -1 + 4 + + 5040 + eighth + flat + + single + + + + + + 5040 + eighth + + + + C + 1 + 5 + + 5040 + eighth + + single + + + + + + C + 1 + 5 + + 5040 + eighth + + + + + + + B + -1 + 4 + + 5040 + eighth + flat + + single + + + + + + 5040 + eighth + + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + J + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 20160 + half + + single + + + + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + + + + C + 1 + 5 + + 5040 + eighth + down + begin + + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + begin + + single + + + + + + E + -1 + 5 + + 5040 + eighth + flat + down + end + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + + + + + + G + 1 + 5 + + 10080 + quarter + + single + + + + + + C + 1 + 5 + + 10080 + quarter + + + + + + + B + -1 + 4 + + 10080 + quarter + flat + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/3c77ba2d.pdf b/convert_result/3c77ba2d.pdf new file mode 100644 index 0000000..8dd662b Binary files /dev/null and b/convert_result/3c77ba2d.pdf differ diff --git a/convert_result/3c77ba2d.xml b/convert_result/3c77ba2d.xml new file mode 100644 index 0000000..0a95663 --- /dev/null +++ b/convert_result/3c77ba2d.xml @@ -0,0 +1,714 @@ + + + + + 3c77ba2d + + 3c77ba2d + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/3f7543c5.pdf b/convert_result/3f7543c5.pdf new file mode 100644 index 0000000..8e40a71 Binary files /dev/null and b/convert_result/3f7543c5.pdf differ diff --git a/convert_result/3f7543c5.xml b/convert_result/3f7543c5.xml new file mode 100644 index 0000000..4c79cad --- /dev/null +++ b/convert_result/3f7543c5.xml @@ -0,0 +1,714 @@ + + + + + 3f7543c5 + + 3f7543c5 + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/4f1557d1.pdf b/convert_result/4f1557d1.pdf new file mode 100644 index 0000000..a79a3eb Binary files /dev/null and b/convert_result/4f1557d1.pdf differ diff --git a/convert_result/4f1557d1.xml b/convert_result/4f1557d1.xml new file mode 100644 index 0000000..d8bf42c --- /dev/null +++ b/convert_result/4f1557d1.xml @@ -0,0 +1,714 @@ + + + + + 4f1557d1 + + 4f1557d1 + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/53324f3f.pdf b/convert_result/53324f3f.pdf new file mode 100644 index 0000000..fe4a871 Binary files /dev/null and b/convert_result/53324f3f.pdf differ diff --git a/convert_result/53324f3f.xml b/convert_result/53324f3f.xml new file mode 100644 index 0000000..f34db76 --- /dev/null +++ b/convert_result/53324f3f.xml @@ -0,0 +1,714 @@ + + + + + 53324f3f + + 53324f3f + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/56bc2402.pdf b/convert_result/56bc2402.pdf new file mode 100644 index 0000000..533ba55 Binary files /dev/null and b/convert_result/56bc2402.pdf differ diff --git a/convert_result/56bc2402.xml b/convert_result/56bc2402.xml new file mode 100644 index 0000000..192805b --- /dev/null +++ b/convert_result/56bc2402.xml @@ -0,0 +1,714 @@ + + + + + 56bc2402 + + 56bc2402 + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/57bc484c-20cf-435d-b0c3-1949829d44aa-1.png b/convert_result/57bc484c-20cf-435d-b0c3-1949829d44aa-1.png new file mode 100644 index 0000000..7220952 Binary files /dev/null and b/convert_result/57bc484c-20cf-435d-b0c3-1949829d44aa-1.png differ diff --git a/convert_result/57bc484c-20cf-435d-b0c3-1949829d44aa.pdf b/convert_result/57bc484c-20cf-435d-b0c3-1949829d44aa.pdf new file mode 100644 index 0000000..6735f7a Binary files /dev/null and b/convert_result/57bc484c-20cf-435d-b0c3-1949829d44aa.pdf differ diff --git a/convert_result/57bc484c-20cf-435d-b0c3-1949829d44aa.xml b/convert_result/57bc484c-20cf-435d-b0c3-1949829d44aa.xml new file mode 100644 index 0000000..1a4eecd --- /dev/null +++ b/convert_result/57bc484c-20cf-435d-b0c3-1949829d44aa.xml @@ -0,0 +1,711 @@ + + + + + 57bc484c-20cf-435d-b0c3-1949829d44aa + + 57bc484c-20cf-435d-b0c3-1949829d44aa + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 2 + + + + G + 2 + + + + + D + 4 + + 10080 + quarter + + single + + + + + + D + 4 + + 5040 + eighth + up + begin + + + + + + + D + 4 + + 5040 + eighth + up + end + + + + + + + D + 4 + + 10080 + quarter + + single + + + + + + D + 4 + + 10080 + quarter + + single + + + + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + D + 4 + + 10080 + quarter + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + A + 4 + + 5040 + eighth + + + + + + + F + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + A + 4 + + 5040 + eighth + + single + + + + + + A + 4 + + 5040 + eighth + + + + + + + F + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + D + 4 + + 10080 + quarter + + single + + + + + + D + 4 + + 10080 + quarter + + single + J + + + + + D + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + D + 4 + + 10080 + quarter + + single + + + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + A + 4 + + 20160 + half + + single + + + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + D + 4 + + 10080 + quarter + + single + + + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + D + 4 + + 10080 + quarter + + single + + + + + + + + + A + 4 + + 5040 + eighth + up + begin + + + + + + + A + 4 + + 5040 + eighth + up + end + + single + + + + + + A + 4 + + 5040 + eighth + up + begin + + single + + + + + + B + 4 + + 5040 + eighth + up + end + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + D + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + D + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/595aa02b.pdf b/convert_result/595aa02b.pdf new file mode 100644 index 0000000..a6190a9 Binary files /dev/null and b/convert_result/595aa02b.pdf differ diff --git a/convert_result/595aa02b.xml b/convert_result/595aa02b.xml new file mode 100644 index 0000000..100255e --- /dev/null +++ b/convert_result/595aa02b.xml @@ -0,0 +1,714 @@ + + + + + 595aa02b + + 595aa02b + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/6152cffc.pdf b/convert_result/6152cffc.pdf new file mode 100644 index 0000000..dcaa194 Binary files /dev/null and b/convert_result/6152cffc.pdf differ diff --git a/convert_result/6152cffc.xml b/convert_result/6152cffc.xml new file mode 100644 index 0000000..1637255 --- /dev/null +++ b/convert_result/6152cffc.xml @@ -0,0 +1,714 @@ + + + + + 6152cffc + + 6152cffc + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/6c7c092c.pdf b/convert_result/6c7c092c.pdf new file mode 100644 index 0000000..1a220dd Binary files /dev/null and b/convert_result/6c7c092c.pdf differ diff --git a/convert_result/6c7c092c.xml b/convert_result/6c7c092c.xml new file mode 100644 index 0000000..0f8e7bf --- /dev/null +++ b/convert_result/6c7c092c.xml @@ -0,0 +1,714 @@ + + + + + 6c7c092c + + 6c7c092c + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/7a1a4945.pdf b/convert_result/7a1a4945.pdf new file mode 100644 index 0000000..f56a965 Binary files /dev/null and b/convert_result/7a1a4945.pdf differ diff --git a/convert_result/7a1a4945.xml b/convert_result/7a1a4945.xml new file mode 100644 index 0000000..ecc3e59 --- /dev/null +++ b/convert_result/7a1a4945.xml @@ -0,0 +1,714 @@ + + + + + 7a1a4945 + + 7a1a4945 + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/8025cdf1.pdf b/convert_result/8025cdf1.pdf new file mode 100644 index 0000000..7e21087 Binary files /dev/null and b/convert_result/8025cdf1.pdf differ diff --git a/convert_result/8025cdf1.xml b/convert_result/8025cdf1.xml new file mode 100644 index 0000000..9c57a0a --- /dev/null +++ b/convert_result/8025cdf1.xml @@ -0,0 +1,714 @@ + + + + + 8025cdf1 + + 8025cdf1 + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/850812ea.pdf b/convert_result/850812ea.pdf new file mode 100644 index 0000000..a5048c9 Binary files /dev/null and b/convert_result/850812ea.pdf differ diff --git a/convert_result/850812ea.xml b/convert_result/850812ea.xml new file mode 100644 index 0000000..6e89be1 --- /dev/null +++ b/convert_result/850812ea.xml @@ -0,0 +1,714 @@ + + + + + 850812ea + + 850812ea + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/85fa6e57.pdf b/convert_result/85fa6e57.pdf new file mode 100644 index 0000000..2f6a632 Binary files /dev/null and b/convert_result/85fa6e57.pdf differ diff --git a/convert_result/85fa6e57.xml b/convert_result/85fa6e57.xml new file mode 100644 index 0000000..3fe2f68 --- /dev/null +++ b/convert_result/85fa6e57.xml @@ -0,0 +1,714 @@ + + + + + 85fa6e57 + + 85fa6e57 + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/92035113-3bcb-46a9-9a83-e9012c6bbe85.pdf b/convert_result/92035113-3bcb-46a9-9a83-e9012c6bbe85.pdf new file mode 100644 index 0000000..1930a2c Binary files /dev/null and b/convert_result/92035113-3bcb-46a9-9a83-e9012c6bbe85.pdf differ diff --git a/convert_result/92035113-3bcb-46a9-9a83-e9012c6bbe85.xml b/convert_result/92035113-3bcb-46a9-9a83-e9012c6bbe85.xml new file mode 100644 index 0000000..d89d307 --- /dev/null +++ b/convert_result/92035113-3bcb-46a9-9a83-e9012c6bbe85.xml @@ -0,0 +1,703 @@ + + + + + 92035113-3bcb-46a9-9a83-e9012c6bbe85 + + 92035113-3bcb-46a9-9a83-e9012c6bbe85 + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + -1 + + + + G + 2 + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 5040 + eighth + up + begin + + + + + + + F + 4 + + 5040 + eighth + up + end + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + J + + + + + F + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 20160 + half + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 5040 + eighth + down + begin + + + + + + + C + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 5040 + eighth + down + begin + + single + + + + + + D + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + F + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + G + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + G + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/95fa1445-2ed3-41fd-b044-c7925c3ee7bc.pdf b/convert_result/95fa1445-2ed3-41fd-b044-c7925c3ee7bc.pdf new file mode 100644 index 0000000..10970d2 Binary files /dev/null and b/convert_result/95fa1445-2ed3-41fd-b044-c7925c3ee7bc.pdf differ diff --git a/convert_result/95fa1445-2ed3-41fd-b044-c7925c3ee7bc.xml b/convert_result/95fa1445-2ed3-41fd-b044-c7925c3ee7bc.xml new file mode 100644 index 0000000..ccf6c70 --- /dev/null +++ b/convert_result/95fa1445-2ed3-41fd-b044-c7925c3ee7bc.xml @@ -0,0 +1,703 @@ + + + + + 95fa1445-2ed3-41fd-b044-c7925c3ee7bc + + 95fa1445-2ed3-41fd-b044-c7925c3ee7bc + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + -1 + + + + G + 2 + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 5040 + eighth + up + begin + + + + + + + F + 4 + + 5040 + eighth + up + end + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + J + + + + + F + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 20160 + half + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 5040 + eighth + down + begin + + + + + + + C + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 5040 + eighth + down + begin + + single + + + + + + D + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + F + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + G + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + G + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/967c9ea1.pdf b/convert_result/967c9ea1.pdf new file mode 100644 index 0000000..f24a226 Binary files /dev/null and b/convert_result/967c9ea1.pdf differ diff --git a/convert_result/967c9ea1.xml b/convert_result/967c9ea1.xml new file mode 100644 index 0000000..da689b4 --- /dev/null +++ b/convert_result/967c9ea1.xml @@ -0,0 +1,714 @@ + + + + + 967c9ea1 + + 967c9ea1 + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/9d7d55cb.pdf b/convert_result/9d7d55cb.pdf new file mode 100644 index 0000000..0ffa554 Binary files /dev/null and b/convert_result/9d7d55cb.pdf differ diff --git a/convert_result/9d7d55cb.xml b/convert_result/9d7d55cb.xml new file mode 100644 index 0000000..ea3c628 --- /dev/null +++ b/convert_result/9d7d55cb.xml @@ -0,0 +1,714 @@ + + + + + 9d7d55cb + + 9d7d55cb + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/9dd05c6b.pdf b/convert_result/9dd05c6b.pdf new file mode 100644 index 0000000..8618b36 Binary files /dev/null and b/convert_result/9dd05c6b.pdf differ diff --git a/convert_result/9dd05c6b.xml b/convert_result/9dd05c6b.xml new file mode 100644 index 0000000..27fcfd7 --- /dev/null +++ b/convert_result/9dd05c6b.xml @@ -0,0 +1,714 @@ + + + + + 9dd05c6b + + 9dd05c6b + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/9f632722.pdf b/convert_result/9f632722.pdf new file mode 100644 index 0000000..2b9a876 Binary files /dev/null and b/convert_result/9f632722.pdf differ diff --git a/convert_result/9f632722.xml b/convert_result/9f632722.xml new file mode 100644 index 0000000..17c1a20 --- /dev/null +++ b/convert_result/9f632722.xml @@ -0,0 +1,714 @@ + + + + + 9f632722 + + 9f632722 + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/a2c77583.pdf b/convert_result/a2c77583.pdf new file mode 100644 index 0000000..c3aec4d Binary files /dev/null and b/convert_result/a2c77583.pdf differ diff --git a/convert_result/a2c77583.xml b/convert_result/a2c77583.xml new file mode 100644 index 0000000..75d5851 --- /dev/null +++ b/convert_result/a2c77583.xml @@ -0,0 +1,714 @@ + + + + + a2c77583 + + a2c77583 + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/a8f2b9d7.pdf b/convert_result/a8f2b9d7.pdf new file mode 100644 index 0000000..67f0d80 Binary files /dev/null and b/convert_result/a8f2b9d7.pdf differ diff --git a/convert_result/a8f2b9d7.xml b/convert_result/a8f2b9d7.xml new file mode 100644 index 0000000..a03fc1e --- /dev/null +++ b/convert_result/a8f2b9d7.xml @@ -0,0 +1,714 @@ + + + + + a8f2b9d7 + + a8f2b9d7 + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/a8fd615a.pdf b/convert_result/a8fd615a.pdf new file mode 100644 index 0000000..a7638b6 Binary files /dev/null and b/convert_result/a8fd615a.pdf differ diff --git a/convert_result/a8fd615a.xml b/convert_result/a8fd615a.xml new file mode 100644 index 0000000..7c3ce74 --- /dev/null +++ b/convert_result/a8fd615a.xml @@ -0,0 +1,714 @@ + + + + + a8fd615a + + a8fd615a + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/ac801501.pdf b/convert_result/ac801501.pdf new file mode 100644 index 0000000..1bd61bf Binary files /dev/null and b/convert_result/ac801501.pdf differ diff --git a/convert_result/ac801501.xml b/convert_result/ac801501.xml new file mode 100644 index 0000000..af3b522 --- /dev/null +++ b/convert_result/ac801501.xml @@ -0,0 +1,714 @@ + + + + + ac801501 + + ac801501 + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/ae23aea5.pdf b/convert_result/ae23aea5.pdf new file mode 100644 index 0000000..6fa6d5f Binary files /dev/null and b/convert_result/ae23aea5.pdf differ diff --git a/convert_result/ae23aea5.xml b/convert_result/ae23aea5.xml new file mode 100644 index 0000000..d35d029 --- /dev/null +++ b/convert_result/ae23aea5.xml @@ -0,0 +1,714 @@ + + + + + ae23aea5 + + ae23aea5 + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/ae9dec05.pdf b/convert_result/ae9dec05.pdf new file mode 100644 index 0000000..925a24f Binary files /dev/null and b/convert_result/ae9dec05.pdf differ diff --git a/convert_result/ae9dec05.xml b/convert_result/ae9dec05.xml new file mode 100644 index 0000000..3ea87a2 --- /dev/null +++ b/convert_result/ae9dec05.xml @@ -0,0 +1,714 @@ + + + + + ae9dec05 + + ae9dec05 + + Music21 + + 2025-05-29 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/b121c54e.pdf b/convert_result/b121c54e.pdf new file mode 100644 index 0000000..1aad6c6 Binary files /dev/null and b/convert_result/b121c54e.pdf differ diff --git a/convert_result/b121c54e.xml b/convert_result/b121c54e.xml new file mode 100644 index 0000000..972f0f7 --- /dev/null +++ b/convert_result/b121c54e.xml @@ -0,0 +1,714 @@ + + + + + b121c54e + + b121c54e + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/b2888b66.pdf b/convert_result/b2888b66.pdf new file mode 100644 index 0000000..fe46a73 Binary files /dev/null and b/convert_result/b2888b66.pdf differ diff --git a/convert_result/b2888b66.xml b/convert_result/b2888b66.xml new file mode 100644 index 0000000..991e46a --- /dev/null +++ b/convert_result/b2888b66.xml @@ -0,0 +1,714 @@ + + + + + b2888b66 + + b2888b66 + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/c54fa1ea.pdf b/convert_result/c54fa1ea.pdf new file mode 100644 index 0000000..4d993e6 Binary files /dev/null and b/convert_result/c54fa1ea.pdf differ diff --git a/convert_result/c54fa1ea.xml b/convert_result/c54fa1ea.xml new file mode 100644 index 0000000..b2a73e9 --- /dev/null +++ b/convert_result/c54fa1ea.xml @@ -0,0 +1,714 @@ + + + + + c54fa1ea + + c54fa1ea + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/c69b3241.pdf b/convert_result/c69b3241.pdf new file mode 100644 index 0000000..3a0f926 Binary files /dev/null and b/convert_result/c69b3241.pdf differ diff --git a/convert_result/c69b3241.xml b/convert_result/c69b3241.xml new file mode 100644 index 0000000..b8acc17 --- /dev/null +++ b/convert_result/c69b3241.xml @@ -0,0 +1,714 @@ + + + + + c69b3241 + + c69b3241 + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/c768903e.pdf b/convert_result/c768903e.pdf new file mode 100644 index 0000000..53ffa13 Binary files /dev/null and b/convert_result/c768903e.pdf differ diff --git a/convert_result/c768903e.xml b/convert_result/c768903e.xml new file mode 100644 index 0000000..66d2aff --- /dev/null +++ b/convert_result/c768903e.xml @@ -0,0 +1,714 @@ + + + + + c768903e + + c768903e + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/d33ba910.pdf b/convert_result/d33ba910.pdf new file mode 100644 index 0000000..a208ac2 Binary files /dev/null and b/convert_result/d33ba910.pdf differ diff --git a/convert_result/d33ba910.xml b/convert_result/d33ba910.xml new file mode 100644 index 0000000..b7276d8 --- /dev/null +++ b/convert_result/d33ba910.xml @@ -0,0 +1,714 @@ + + + + + d33ba910 + + d33ba910 + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/db8f83bd.pdf b/convert_result/db8f83bd.pdf new file mode 100644 index 0000000..c962274 Binary files /dev/null and b/convert_result/db8f83bd.pdf differ diff --git a/convert_result/db8f83bd.xml b/convert_result/db8f83bd.xml new file mode 100644 index 0000000..a80945d --- /dev/null +++ b/convert_result/db8f83bd.xml @@ -0,0 +1,714 @@ + + + + + db8f83bd + + db8f83bd + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/dd08087c-8b89-4721-a7a2-0fd00966406a.pdf b/convert_result/dd08087c-8b89-4721-a7a2-0fd00966406a.pdf new file mode 100644 index 0000000..5b3d656 Binary files /dev/null and b/convert_result/dd08087c-8b89-4721-a7a2-0fd00966406a.pdf differ diff --git a/convert_result/dd08087c-8b89-4721-a7a2-0fd00966406a.xml b/convert_result/dd08087c-8b89-4721-a7a2-0fd00966406a.xml new file mode 100644 index 0000000..0cfa635 --- /dev/null +++ b/convert_result/dd08087c-8b89-4721-a7a2-0fd00966406a.xml @@ -0,0 +1,703 @@ + + + + + dd08087c-8b89-4721-a7a2-0fd00966406a + + dd08087c-8b89-4721-a7a2-0fd00966406a + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + -1 + + + + G + 2 + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 5040 + eighth + up + begin + + + + + + + F + 4 + + 5040 + eighth + up + end + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + J + + + + + F + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 20160 + half + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 5040 + eighth + down + begin + + + + + + + C + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 5040 + eighth + down + begin + + single + + + + + + D + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + F + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + G + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + G + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/e1792a82.pdf b/convert_result/e1792a82.pdf new file mode 100644 index 0000000..9a2d7a5 Binary files /dev/null and b/convert_result/e1792a82.pdf differ diff --git a/convert_result/e1792a82.xml b/convert_result/e1792a82.xml new file mode 100644 index 0000000..ae4627b --- /dev/null +++ b/convert_result/e1792a82.xml @@ -0,0 +1,714 @@ + + + + + e1792a82 + + e1792a82 + + Music21 + + 2025-05-30 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/ee1b5924.pdf b/convert_result/ee1b5924.pdf new file mode 100644 index 0000000..be07415 Binary files /dev/null and b/convert_result/ee1b5924.pdf differ diff --git a/convert_result/ee1b5924.xml b/convert_result/ee1b5924.xml new file mode 100644 index 0000000..dff2bd5 --- /dev/null +++ b/convert_result/ee1b5924.xml @@ -0,0 +1,714 @@ + + + + + ee1b5924 + + ee1b5924 + + Music21 + + 2025-05-31 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/ee70e915.pdf b/convert_result/ee70e915.pdf new file mode 100644 index 0000000..48c0714 Binary files /dev/null and b/convert_result/ee70e915.pdf differ diff --git a/convert_result/ee70e915.xml b/convert_result/ee70e915.xml new file mode 100644 index 0000000..63aea59 --- /dev/null +++ b/convert_result/ee70e915.xml @@ -0,0 +1,714 @@ + + + + + ee70e915 + + ee70e915 + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + 4 + + + + G + 2 + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 5040 + eighth + up + begin + + + + + + + E + 4 + + 5040 + eighth + up + end + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + B + 4 + + 5040 + eighth + + single + + + + + + B + 4 + + 5040 + eighth + + + + + + + G + 1 + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + J + + + + + E + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 20160 + half + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + single + + + + + + + + + B + 4 + + 5040 + eighth + down + begin + + + + + + + B + 4 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 5040 + eighth + down + begin + + single + + + + + + C + 1 + 5 + + 5040 + eighth + down + end + + single + + + + + + B + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + E + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + F + 1 + 5 + + 10080 + quarter + + single + + + + + + B + 4 + + 10080 + quarter + + + + + + + G + 1 + 4 + + 10080 + quarter + + single + + + + + + F + 1 + 4 + + 10080 + quarter + + single + + + + + + E + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/f1f3be84-790c-41e9-9ddc-eb750fabbb4a.pdf b/convert_result/f1f3be84-790c-41e9-9ddc-eb750fabbb4a.pdf new file mode 100644 index 0000000..996bd91 Binary files /dev/null and b/convert_result/f1f3be84-790c-41e9-9ddc-eb750fabbb4a.pdf differ diff --git a/convert_result/f1f3be84-790c-41e9-9ddc-eb750fabbb4a.xml b/convert_result/f1f3be84-790c-41e9-9ddc-eb750fabbb4a.xml new file mode 100644 index 0000000..c27b448 --- /dev/null +++ b/convert_result/f1f3be84-790c-41e9-9ddc-eb750fabbb4a.xml @@ -0,0 +1,703 @@ + + + + + f1f3be84-790c-41e9-9ddc-eb750fabbb4a + + f1f3be84-790c-41e9-9ddc-eb750fabbb4a + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + -1 + + + + G + 2 + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 5040 + eighth + up + begin + + + + + + + F + 4 + + 5040 + eighth + up + end + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + J + + + + + F + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 20160 + half + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 5040 + eighth + down + begin + + + + + + + C + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 5040 + eighth + down + begin + + single + + + + + + D + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + F + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + G + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + G + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/convert_result/f4453f9f-6f7e-4f1f-ac05-dd44a88e167a.pdf b/convert_result/f4453f9f-6f7e-4f1f-ac05-dd44a88e167a.pdf new file mode 100644 index 0000000..01f80d2 Binary files /dev/null and b/convert_result/f4453f9f-6f7e-4f1f-ac05-dd44a88e167a.pdf differ diff --git a/convert_result/f4453f9f-6f7e-4f1f-ac05-dd44a88e167a.xml b/convert_result/f4453f9f-6f7e-4f1f-ac05-dd44a88e167a.xml new file mode 100644 index 0000000..420aa1b --- /dev/null +++ b/convert_result/f4453f9f-6f7e-4f1f-ac05-dd44a88e167a.xml @@ -0,0 +1,703 @@ + + + + + f4453f9f-6f7e-4f1f-ac05-dd44a88e167a + + f4453f9f-6f7e-4f1f-ac05-dd44a88e167a + + Music21 + + 2025-06-01 + music21 v.9.5.0 + + + + + 7 + 40 + + + + + + + + + + + + + 10080 + + -1 + + + + G + 2 + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 5040 + eighth + up + begin + + + + + + + F + 4 + + 5040 + eighth + up + end + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + C + 5 + + 5040 + eighth + + single + + + + + + C + 5 + + 5040 + eighth + + + + + + + A + 4 + + 5040 + eighth + + single + + + + + + 5040 + eighth + + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + J + + + + + F + 4 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 20160 + half + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + single + + + + + + + + + C + 5 + + 5040 + eighth + down + begin + + + + + + + C + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 5040 + eighth + down + begin + + single + + + + + + D + 5 + + 5040 + eighth + down + end + + single + + + + + + C + 5 + + 10080 + quarter + + single + + + + + + 10080 + quarter + + + + + + + F + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + G + 5 + + 10080 + quarter + + single + + + + + + C + 5 + + 10080 + quarter + + + + + + + A + 4 + + 10080 + quarter + + single + + + + + + G + 4 + + 10080 + quarter + + single + + + + + + F + 4 + + 10080 + quarter + + + + + + + 10080 + quarter + + + light-light + + + + + + + 40320 + + + + \ No newline at end of file diff --git a/migrations/README b/migrations/README new file mode 100644 index 0000000..98e4f9c --- /dev/null +++ b/migrations/README @@ -0,0 +1 @@ +Generic single-database configuration. \ No newline at end of file diff --git a/migrations/env.py b/migrations/env.py new file mode 100644 index 0000000..da084a3 --- /dev/null +++ b/migrations/env.py @@ -0,0 +1,56 @@ +from logging.config import fileConfig + +from sqlalchemy import engine_from_config, pool +from alembic import context + +# 🔥 이 부분을 추가! +# 예: db는 src.models.db에 정의되어 있어야 해! +from src.models.db import db + +# Alembic Config object +config = context.config + +# 로깅 설정 +if config.config_file_name is not None: + fileConfig(config.config_file_name) + +# ✅ 핵심! Alembic이 참조할 메타데이터! +target_metadata = db.metadata + +def run_migrations_offline() -> None: + """ + Run migrations in 'offline' mode. + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + literal_binds=True, + dialect_opts={"paramstyle": "named"}, + ) + + with context.begin_transaction(): + context.run_migrations() + +def run_migrations_online() -> None: + """ + Run migrations in 'online' mode. + """ + connectable = engine_from_config( + config.get_section(config.config_ini_section, {}), + prefix="sqlalchemy.", + poolclass=pool.NullPool, + ) + + with connectable.connect() as connection: + context.configure( + connection=connection, target_metadata=target_metadata + ) + + with context.begin_transaction(): + context.run_migrations() + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/migrations/script.py.mako b/migrations/script.py.mako new file mode 100644 index 0000000..480b130 --- /dev/null +++ b/migrations/script.py.mako @@ -0,0 +1,28 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision: str = ${repr(up_revision)} +down_revision: Union[str, None] = ${repr(down_revision)} +branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)} +depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)} + + +def upgrade() -> None: + """Upgrade schema.""" + ${upgrades if upgrades else "pass"} + + +def downgrade() -> None: + """Downgrade schema.""" + ${downgrades if downgrades else "pass"} diff --git a/migrations/versions/ded990f776e4_add_key_field_to_score.py b/migrations/versions/ded990f776e4_add_key_field_to_score.py new file mode 100644 index 0000000..c758aa8 --- /dev/null +++ b/migrations/versions/ded990f776e4_add_key_field_to_score.py @@ -0,0 +1,56 @@ +"""Add key field to Score + +Revision ID: ded990f776e4 +Revises: +Create Date: 2025-06-01 12:01:49.293097 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import mysql + +# revision identifiers, used by Alembic. +revision: str = 'ded990f776e4' +down_revision: Union[str, None] = None +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + """Upgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('results', 'image_path', + existing_type=mysql.VARCHAR(collation='utf8mb4_unicode_ci', length=255), + type_=sa.String(length=512), + existing_nullable=True) + op.alter_column('results', 'download_path', + existing_type=mysql.VARCHAR(collation='utf8mb4_unicode_ci', length=255), + type_=sa.String(length=512), + existing_nullable=True) + op.alter_column('results', 'audio_path', + existing_type=mysql.VARCHAR(collation='utf8mb4_unicode_ci', length=255), + type_=sa.String(length=512), + existing_nullable=True) + op.add_column('scores', sa.Column('key', sa.String(length=10), nullable=True)) + # ### end Alembic commands ### + + +def downgrade() -> None: + """Downgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('scores', 'key') + op.alter_column('results', 'audio_path', + existing_type=sa.String(length=512), + type_=mysql.VARCHAR(collation='utf8mb4_unicode_ci', length=255), + existing_nullable=True) + op.alter_column('results', 'download_path', + existing_type=sa.String(length=512), + type_=mysql.VARCHAR(collation='utf8mb4_unicode_ci', length=255), + existing_nullable=True) + op.alter_column('results', 'image_path', + existing_type=sa.String(length=512), + type_=mysql.VARCHAR(collation='utf8mb4_unicode_ci', length=255), + existing_nullable=True) + # ### end Alembic commands ### diff --git a/run.py b/run.py index ea4a56b..2607e33 100644 --- a/run.py +++ b/run.py @@ -7,6 +7,6 @@ if __name__ == '__main__': with app.app_context(): db.create_all() - app.run(host='0.0.0.0', port=5000, debug=False) + app.run(host="0.0.0.0", port=5000, debug=True) # 👈 debug=True! diff --git a/src/__init__.py b/src/__init__.py index 47d4bd1..cafdcbd 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -40,17 +40,16 @@ def create_app(): db.init_app(app) # ✅ 라우트 등록 및 Blueprint 별도 CORS 적용 - from src.routes.index import index_bp - from src.routes.auth import auth_bp - from src.routes.user import user_bp - from src.routes.score import score_bp - from src.routes.transform import transform_bp - from src.routes.result import result_bp - from src.routes.mypage_upload_score import upload_score_bp - from src.routes.mypage_result_score import result_score_bp + from src.routes.auth_route import auth_bp + from src.routes.user_route import user_bp + from src.routes.score_route import score_bp + from src.routes.transform_route import transform_bp + from src.routes.result_route import result_bp + from src.routes.mypage_uploadscore_route import upload_score_bp + from src.routes.mypage_resultscore_route import result_score_bp # Blueprint 별 CORS 적용 - for bp in [index_bp, auth_bp, user_bp, score_bp, transform_bp, result_bp, upload_score_bp, result_score_bp]: + for bp in [auth_bp, user_bp, score_bp, transform_bp, result_bp, upload_score_bp, result_score_bp]: CORS(bp, origins="http://localhost:5173", supports_credentials=True) app.register_blueprint(bp) diff --git a/src/models/__init__.py b/src/models/__init__.py index d92c010..1d87252 100644 --- a/src/models/__init__.py +++ b/src/models/__init__.py @@ -1,9 +1,7 @@ from .db import db -from .user import User -from .score import Score -from .result import Result -from .resultScore_save import ResultScoreSave -from .uploadScore_save import UploadScoreSave -from .transform import TransformTranspose -from .transform import TransformLyrics -from .transform import TransformMelody \ No newline at end of file +from .user_model import User +from .score_model import Score +from .result_model import Result +from .resultscore_save_model import ResultScoreSave +from .uploadscore_save_model import UploadScoreSave +from .transform_model import TransformTranspose, TransformLyrics, TransformMelody \ No newline at end of file diff --git a/src/models/result.py b/src/models/result_model.py similarity index 100% rename from src/models/result.py rename to src/models/result_model.py diff --git a/src/models/resultScore_save.py b/src/models/resultscore_save_model.py similarity index 91% rename from src/models/resultScore_save.py rename to src/models/resultscore_save_model.py index 2778522..d136b90 100644 --- a/src/models/resultScore_save.py +++ b/src/models/resultscore_save_model.py @@ -4,7 +4,7 @@ class ResultScoreSave(db.Model): __tablename__ = 'result_score_save' user_id = db.Column(db.Integer, db.ForeignKey('users.id'), primary_key=True) - result_id = db.Column(db.Integer, db.ForeignKey('results.id'), primary_key=True) # 🔁 수정됨! + result_id = db.Column(db.Integer, db.ForeignKey('results.id'), primary_key=True) saved_at = db.Column(db.DateTime, server_default=db.func.now()) user = db.relationship('User', back_populates='saved_result_scores') diff --git a/src/models/score.py b/src/models/score_model.py similarity index 66% rename from src/models/score.py rename to src/models/score_model.py index 94cb76f..d1ac8d5 100644 --- a/src/models/score.py +++ b/src/models/score_model.py @@ -1,3 +1,4 @@ +# models/score_model.py from datetime import datetime from .db import db @@ -6,12 +7,14 @@ class Score(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) original_filename = db.Column(db.String(255), nullable=False) - xml_path = db.Column(db.String(512), nullable=False) - pdf_path = db.Column(db.String(512), nullable=False) + xml_path = db.Column(db.String(512), nullable=True) # ✅ True로! + pdf_path = db.Column(db.String(512), nullable=True) # ✅ True로! created_at = db.Column(db.DateTime, default=datetime.utcnow) + key = db.Column(db.String(10), nullable=True) saved_by_users = db.relationship( 'UploadScoreSave', back_populates='score', cascade='all, delete-orphan' ) + diff --git a/src/models/transform.py b/src/models/transform_model.py similarity index 99% rename from src/models/transform.py rename to src/models/transform_model.py index c4f4339..0162b9d 100644 --- a/src/models/transform.py +++ b/src/models/transform_model.py @@ -8,7 +8,8 @@ class TransformTranspose(db.Model): score_id = db.Column(db.Integer, db.ForeignKey('scores.id'), nullable=False) pdf_path = db.Column(db.String(512), nullable=False) created_at = db.Column(db.DateTime, default=datetime.utcnow) - + + class TransformLyrics(db.Model): __tablename__ = 'transform_lyrics' @@ -18,7 +19,6 @@ class TransformLyrics(db.Model): created_at = db.Column(db.DateTime, default=datetime.utcnow) - class TransformMelody(db.Model): __tablename__ = 'transform_melody' diff --git a/src/models/uploadScore_save.py b/src/models/uploadscore_save_model.py similarity index 100% rename from src/models/uploadScore_save.py rename to src/models/uploadscore_save_model.py diff --git a/src/models/user.py b/src/models/user_model.py similarity index 76% rename from src/models/user.py rename to src/models/user_model.py index ebf9a9b..f67ee12 100644 --- a/src/models/user.py +++ b/src/models/user_model.py @@ -2,20 +2,22 @@ from .db import db class User(db.Model): - __tablename__ = "users" + __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) - social_id = db.Column(db.String(100), unique=True, nullable=False) # 길이도 맞춤 + social_id = db.Column(db.String(100), unique=True, nullable=False) # 고유한 사용자 식별자 nickname = db.Column(db.String(100)) - profile_image = db.Column(db.String(255)) # ✅ 이름 통일 + profile_image = db.Column(db.String(255)) created_at = db.Column(db.DateTime, default=datetime.utcnow) - - + + # 업로드된 악보를 저장한 관계 saved_upload_scores = db.relationship( 'UploadScoreSave', back_populates='user', cascade='all, delete-orphan' ) + + # 결과 악보를 저장한 관계 saved_result_scores = db.relationship( 'ResultScoreSave', back_populates='user', diff --git a/src/routes/auth.py b/src/routes/auth_route.py similarity index 78% rename from src/routes/auth.py rename to src/routes/auth_route.py index dda5226..2110858 100644 --- a/src/routes/auth.py +++ b/src/routes/auth_route.py @@ -1,4 +1,3 @@ -import os import requests from flask import Blueprint, redirect, request, jsonify from flasgger import swag_from @@ -34,20 +33,20 @@ def kakao_callback(): } token_response = requests.post(token_url, data=token_data) token_json = token_response.json() - accessToken = token_json.get('access_token') - if not accessToken: + access_token = token_json.get('access_token') + if not access_token: return jsonify({'error': 'Failed to get Kakao access token'}), 400 user_info_url = "https://kapi.kakao.com/v2/user/me" - headers = {"Authorization": f"Bearer {accessToken}"} + headers = {"Authorization": f"Bearer {access_token}"} user_info_response = requests.get(user_info_url, headers=headers) user_info = user_info_response.json() - kakaoId = user_info.get("id") + kakao_id = user_info.get("id") nickname = user_info.get("properties", {}).get("nickname", "") - profileImage = user_info.get("properties", {}).get("profile_image", "") + profile_image = user_info.get("properties", {}).get("profile_image", "") - result = handle_kakao_login(kakaoId, nickname, profileImage) + result = handle_kakao_login(kakao_id, nickname, profile_image) return jsonify(result), 200 @@ -78,9 +77,9 @@ def kakao_callback(): 'schema': { 'type': 'object', 'properties': { - 'accessToken': {'type': 'string'}, - 'refreshToken': {'type': 'string'}, - 'userId': {'type': 'integer'}, + 'access_token': {'type': 'string'}, + 'refresh_token': {'type': 'string'}, + 'user_id': {'type': 'integer'}, 'nickname': {'type': 'string'} } } @@ -101,26 +100,26 @@ def kakao_token(): token_url = "https://kauth.kakao.com/oauth/token" token_data = { 'grant_type': 'authorization_code', - 'client_id': Config.KAKAO_CLIENT_ID, + 'client_id': Config.KAKAKO_CLIENT_ID, 'redirect_uri': Config.KAKAO_REDIRECT_URI, 'code': code, } token_response = requests.post(token_url, data=token_data) token_json = token_response.json() - accessToken = token_json.get('access_token') - if not accessToken: + access_token = token_json.get('access_token') + if not access_token: return jsonify({'error': 'Failed to get Kakao access token'}), 400 user_info_url = "https://kapi.kakao.com/v2/user/me" - headers = {"Authorization": f"Bearer {accessToken}"} + headers = {"Authorization": f"Bearer {access_token}"} user_info_response = requests.get(user_info_url, headers=headers) user_info = user_info_response.json() - kakaoId = user_info.get("id") + kakao_id = user_info.get("id") nickname = user_info.get("properties", {}).get("nickname", "") - profileImage = user_info.get("properties", {}).get("profile_image", "") + profile_image = user_info.get("properties", {}).get("profile_image", "") - result = handle_kakao_login(kakaoId, nickname, profileImage) + result = handle_kakao_login(kakao_id, nickname, profile_image) return jsonify(result), 200 except Exception as e: @@ -141,9 +140,9 @@ def refresh(): schema: type: object required: - - refreshToken + - refresh_token properties: - refreshToken: + refresh_token: type: string example: "abc.def.ghi" responses: @@ -154,10 +153,10 @@ def refresh(): schema: type: object properties: - accessToken: + access_token: type: string example: "new.access.token" - refreshToken: + refresh_token: type: string example: "original.refresh.token" 400: @@ -166,18 +165,18 @@ def refresh(): description: 토큰 만료 또는 유효하지 않음 """ data = request.get_json() - refreshToken = data.get('refreshToken') + refresh_token = data.get('refresh_token') - if not refreshToken: + if not refresh_token: return jsonify({"error": "No refresh token provided"}), 400 - newAccessToken, error = refresh_access_token(refreshToken) + new_access_token, error = refresh_access_token(refresh_token) if error: return jsonify({"error": error}), 401 return jsonify({ - "accessToken": newAccessToken, - "refreshToken": refreshToken + "access_token": new_access_token, + "refresh_token": refresh_token }), 200 @@ -189,7 +188,7 @@ def issue_test_token(): tags: - auth summary: 테스트용 JWT 토큰 발급 - description: 테스트용 유저 정보를 기반으로 accessToken, refreshToken을 자동 발급합니다. + description: 테스트용 유저 정보를 기반으로 access_token, refresh_token을 자동 발급합니다. responses: 200: description: 토큰 발급 성공 @@ -198,24 +197,24 @@ def issue_test_token(): schema: type: object properties: - accessToken: + access_token: type: string description: "Access Token" - refreshToken: + refresh_token: type: string description: "Refresh Token" - userId: + user_id: type: integer example: 1 nickname: type: string example: "테스트유저" """ - kakaoId = "test_kakao_12345" + kakao_id = "test_kakao_12345" nickname = "테스트유저" - profileImage = "" + profile_image = "" - result = handle_kakao_login(kakaoId, nickname, profileImage) + result = handle_kakao_login(kakao_id, nickname, profile_image) return jsonify(result), 200 @@ -227,7 +226,7 @@ def logout(): tags: - auth summary: 로그아웃 - description: 클라이언트가 저장한 accessToken 및 refreshToken을 삭제하면 로그아웃이 완료됩니다. 서버에서는 별도 처리를 하지 않습니다. + description: 클라이언트가 저장한 access_token 및 refresh_token을 삭제하면 로그아웃이 완료됩니다. 서버에서는 별도 처리를 하지 않습니다. responses: 200: description: 로그아웃 성공 diff --git a/src/routes/index.py b/src/routes/index.py deleted file mode 100644 index d0ff98f..0000000 --- a/src/routes/index.py +++ /dev/null @@ -1,7 +0,0 @@ -from flask import Blueprint - -index_bp = Blueprint('index', __name__) - -@index_bp.route('/') -def home(): - return "Welcome to TranScore Backend!" \ No newline at end of file diff --git a/src/routes/mypage_result_score.py b/src/routes/mypage_resultscore_route.py similarity index 70% rename from src/routes/mypage_result_score.py rename to src/routes/mypage_resultscore_route.py index d93baac..cd5bbae 100644 --- a/src/routes/mypage_result_score.py +++ b/src/routes/mypage_resultscore_route.py @@ -1,30 +1,30 @@ from flask import Blueprint, request, jsonify -from src.services.mypage_result_score import ( +from flasgger import swag_from +from src.services.mypage_resultscore_service import ( save_result_score, get_saved_result_scores, delete_result_score ) from src.utils.jwt_util import decode_token -from flasgger import swag_from result_score_bp = Blueprint("result_score_bp", __name__, url_prefix="/mypage/result") # ✅ 공통 JWT 인증 함수 -def getUserIdFromToken(): - authHeader = request.headers.get("Authorization", None) - if not authHeader or not authHeader.startswith("Bearer "): +def get_user_id_from_token(): + auth_header = request.headers.get("Authorization", None) + if not auth_header or not auth_header.startswith("Bearer "): return None, jsonify({"message": "토큰이 필요합니다"}), 401 - token = authHeader.split(" ")[1] + token = auth_header.split(" ")[1] payload, error = decode_token(token) if error: return None, jsonify({"message": error}), 401 - return payload["userId"], None, None + return payload["user_id"], None, None -@result_score_bp.route("//save", methods=["POST"]) +@result_score_bp.route("//save", methods=["POST"]) @swag_from({ 'tags': ['Mypage'], 'summary': '변환 결과 저장 (키 변경, 가사, 멜로디)', @@ -37,7 +37,7 @@ def getUserIdFromToken(): 'schema': {'type': 'string'} }, { - 'name': 'resultId', + 'name': 'result_id', 'in': 'path', 'required': True, 'description': '저장할 결과 ID', @@ -50,12 +50,12 @@ def getUserIdFromToken(): 401: {'description': '인증 실패'} } }) -def saveResult(resultId): - userId, errorResponse, statusCode = getUserIdFromToken() - if errorResponse: - return errorResponse, statusCode +def save_result(result_id): + user_id, error_response, status_code = get_user_id_from_token() + if error_response: + return error_response, status_code - if save_result_score(userId, resultId): + if save_result_score(user_id, result_id): return jsonify({"message": "변환 결과가 저장되었습니다"}), 201 return jsonify({"message": "이미 저장된 결과입니다"}), 400 @@ -90,9 +90,9 @@ def saveResult(resultId): 'application/json': { 'example': [ { - 'resultId': 1, - 'resultType': 'transpose', - 'savedAt': '2025-05-18T12:34:56' + 'result_id': 1, + 'result_type': 'transpose', + 'saved_at': '2025-05-18T12:34:56' } ] } @@ -101,25 +101,25 @@ def saveResult(resultId): 401: {'description': '인증 실패'} } }) -def getSavedResults(): - userId, errorResponse, statusCode = getUserIdFromToken() - if errorResponse: - return errorResponse, statusCode +def get_saved_results(): + user_id, error_response, status_code = get_user_id_from_token() + if error_response: + return error_response, status_code - resultType = request.args.get("type") - saved = get_saved_result_scores(userId, resultType) + result_type = request.args.get("type") + saved = get_saved_result_scores(user_id, result_type) result = [ { - "resultId": s.result_id, - "resultType": s.result.type, - "savedAt": s.saved_at.isoformat() + "result_id": s.result_id, + "result_type": s.result.type, + "saved_at": s.saved_at.isoformat() } for s in saved ] return jsonify(result), 200 -@result_score_bp.route("/", methods=["DELETE"]) +@result_score_bp.route("/", methods=["DELETE"]) @swag_from({ 'tags': ['Mypage'], 'summary': '저장한 변환 결과 삭제', @@ -132,7 +132,7 @@ def getSavedResults(): 'schema': {'type': 'string'} }, { - 'name': 'resultId', + 'name': 'result_id', 'in': 'path', 'required': True, 'description': '삭제할 변환 결과 ID', @@ -145,11 +145,11 @@ def getSavedResults(): 401: {'description': '인증 실패'} } }) -def deleteResult(resultId): - userId, errorResponse, statusCode = getUserIdFromToken() - if errorResponse: - return errorResponse, statusCode +def delete_result(result_id): + user_id, error_response, status_code = get_user_id_from_token() + if error_response: + return error_response, status_code - if delete_result_score(userId, resultId): + if delete_result_score(user_id, result_id): return jsonify({"message": "저장이 해제되었습니다"}), 200 return jsonify({"message": "저장 내역이 없습니다"}), 404 diff --git a/src/routes/mypage_upload_score.py b/src/routes/mypage_uploadscore_route.py similarity index 70% rename from src/routes/mypage_upload_score.py rename to src/routes/mypage_uploadscore_route.py index 7d08570..d336c06 100644 --- a/src/routes/mypage_upload_score.py +++ b/src/routes/mypage_uploadscore_route.py @@ -1,28 +1,28 @@ from flask import Blueprint, request, jsonify -from src.services.mypage_upload_score import ( +from flasgger import swag_from +from src.services.mypage_uploadscore_service import ( save_upload_score, get_saved_upload_scores, delete_upload_score ) from src.utils.jwt_util import decode_token -from flasgger import swag_from upload_score_bp = Blueprint("upload_score_bp", __name__, url_prefix="/mypage/score") # ✅ JWT 인증 공통 함수 -def getUserIdFromToken(): - authHeader = request.headers.get("Authorization", None) - if not authHeader or not authHeader.startswith("Bearer "): +def get_user_id_from_token(): + auth_header = request.headers.get("Authorization", None) + if not auth_header or not auth_header.startswith("Bearer "): return None, jsonify({"message": "토큰이 필요합니다"}), 401 - token = authHeader.split(" ")[1] + token = auth_header.split(" ")[1] payload, error = decode_token(token) if error: return None, jsonify({"message": error}), 401 - return payload["userId"], None, None + return payload["user_id"], None, None -@upload_score_bp.route("//save", methods=["POST"]) +@upload_score_bp.route("//save", methods=["POST"]) @swag_from({ 'tags': ['Mypage'], 'summary': '업로드한 악보 저장', @@ -35,7 +35,7 @@ def getUserIdFromToken(): 'schema': {'type': 'string'} }, { - 'name': 'scoreId', + 'name': 'score_id', 'in': 'path', 'required': True, 'description': '저장할 악보 ID', @@ -48,11 +48,11 @@ def getUserIdFromToken(): 401: {'description': '인증 실패'} } }) -def saveScore(scoreId): - userId, errorResponse, statusCode = getUserIdFromToken() - if errorResponse: - return errorResponse, statusCode - if save_upload_score(userId, scoreId): +def save_score(score_id): + user_id, error_response, status_code = get_user_id_from_token() + if error_response: + return error_response, status_code + if save_upload_score(user_id, score_id): return jsonify({"message": "업로드한 악보가 저장되었습니다"}), 201 return jsonify({"message": "이미 저장된 악보입니다"}), 400 @@ -77,8 +77,8 @@ def saveScore(scoreId): 'application/json': { 'example': [ { - 'scoreId': "abc123", - 'savedAt': "2025-05-18T12:34:56" + 'score_id': "abc123", + 'saved_at': "2025-05-18T12:34:56" } ] } @@ -87,23 +87,23 @@ def saveScore(scoreId): 401: {'description': '인증 실패'} } }) -def getSavedScores(): - userId, errorResponse, statusCode = getUserIdFromToken() - if errorResponse: - return errorResponse, statusCode +def get_saved_scores(): + user_id, error_response, status_code = get_user_id_from_token() + if error_response: + return error_response, status_code - saved = get_saved_upload_scores(userId) + saved = get_saved_upload_scores(user_id) result = [ { - "scoreId": s.score_id, - "savedAt": s.saved_at.isoformat() + "score_id": s.score_id, + "saved_at": s.saved_at.isoformat() } for s in saved ] return jsonify(result), 200 -@upload_score_bp.route("/", methods=["DELETE"]) +@upload_score_bp.route("/", methods=["DELETE"]) @swag_from({ 'tags': ['Mypage'], 'summary': '저장한 업로드 악보 삭제', @@ -116,7 +116,7 @@ def getSavedScores(): 'schema': {'type': 'string'} }, { - 'name': 'scoreId', + 'name': 'score_id', 'in': 'path', 'required': True, 'description': '삭제할 악보 ID', @@ -129,11 +129,11 @@ def getSavedScores(): 401: {'description': '인증 실패'} } }) -def deleteScore(scoreId): - userId, errorResponse, statusCode = getUserIdFromToken() - if errorResponse: - return errorResponse, statusCode +def delete_score(score_id): + user_id, error_response, status_code = get_user_id_from_token() + if error_response: + return error_response, status_code - if delete_upload_score(userId, scoreId): + if delete_upload_score(user_id, score_id): return jsonify({"message": "저장이 해제되었습니다"}), 200 return jsonify({"message": "저장 내역이 없습니다"}), 404 diff --git a/src/routes/result.py b/src/routes/result_route.py similarity index 75% rename from src/routes/result.py rename to src/routes/result_route.py index 1c3852d..5295d2c 100644 --- a/src/routes/result.py +++ b/src/routes/result_route.py @@ -13,12 +13,12 @@ # 5-1. 키 변경된 악보 결과 -@result_bp.route('/transpose//image', methods=['GET']) +@result_bp.route('/transpose//image', methods=['GET']) @swag_from({ 'tags': ['Result - Transpose'], 'parameters': [ { - 'name': 'resultId', + 'name': 'result_id', 'in': 'path', 'type': 'integer', 'required': True, @@ -30,19 +30,19 @@ 404: {'description': '결과 없음'} } }) -def transposeImage(resultId): +def transpose_image(result_id): try: - return get_transpose_image(resultId) + return get_transpose_image(result_id) except FileNotFoundError as e: return jsonify({'error': str(e)}), 404 -@result_bp.route('/transpose//download', methods=['GET']) +@result_bp.route('/transpose//download', methods=['GET']) @swag_from({ 'tags': ['Result - Transpose'], 'parameters': [ { - 'name': 'resultId', + 'name': 'result_id', 'in': 'path', 'type': 'integer', 'required': True, @@ -54,20 +54,20 @@ def transposeImage(resultId): 404: {'description': '결과 없음'} } }) -def transposeDownload(resultId): +def transpose_download(result_id): try: - return download_transpose_file(resultId) + return download_transpose_file(result_id) except FileNotFoundError as e: return jsonify({'error': str(e)}), 404 # 5-2. 가사 추출 결과 -@result_bp.route('/lyrics//text', methods=['GET']) +@result_bp.route('/lyrics//text', methods=['GET']) @swag_from({ 'tags': ['Result - Lyrics'], 'parameters': [ { - 'name': 'resultId', + 'name': 'result_id', 'in': 'path', 'type': 'integer', 'required': True, @@ -79,19 +79,19 @@ def transposeDownload(resultId): 404: {'description': '결과 없음'} } }) -def lyricsText(resultId): +def lyrics_text(result_id): try: - return get_lyrics_text(resultId) + return get_lyrics_text(result_id) except FileNotFoundError as e: return jsonify({'error': str(e)}), 404 -@result_bp.route('/lyrics//download', methods=['GET']) +@result_bp.route('/lyrics//download', methods=['GET']) @swag_from({ 'tags': ['Result - Lyrics'], 'parameters': [ { - 'name': 'resultId', + 'name': 'result_id', 'in': 'path', 'type': 'integer', 'required': True, @@ -103,20 +103,20 @@ def lyricsText(resultId): 404: {'description': '결과 없음'} } }) -def lyricsDownload(resultId): +def lyrics_download(result_id): try: - return download_lyrics_file(resultId) + return download_lyrics_file(result_id) except FileNotFoundError as e: return jsonify({'error': str(e)}), 404 # 5-3. 멜로디 추출 결과 -@result_bp.route('/melody//info', methods=['GET']) +@result_bp.route('/melody//info', methods=['GET']) @swag_from({ 'tags': ['Result - Melody'], 'parameters': [ { - 'name': 'resultId', + 'name': 'result_id', 'in': 'path', 'type': 'integer', 'required': True, @@ -128,19 +128,19 @@ def lyricsDownload(resultId): 404: {'description': '결과 없음'} } }) -def melodyInfo(resultId): +def melody_info(result_id): try: - return get_melody_meta_info(resultId) + return get_melody_meta_info(result_id) except FileNotFoundError as e: return jsonify({'error': str(e)}), 404 -@result_bp.route('/melody//audio', methods=['GET']) +@result_bp.route('/melody//audio', methods=['GET']) @swag_from({ 'tags': ['Result - Melody'], 'parameters': [ { - 'name': 'resultId', + 'name': 'result_id', 'in': 'path', 'type': 'integer', 'required': True, @@ -152,8 +152,8 @@ def melodyInfo(resultId): 404: {'description': '결과 없음'} } }) -def melodyAudio(resultId): +def melody_audio(result_id): try: - return get_melody_audio(resultId) + return get_melody_audio(result_id) except FileNotFoundError as e: return jsonify({'error': str(e)}), 404 diff --git a/src/routes/score.py b/src/routes/score.py deleted file mode 100644 index 77bd37a..0000000 --- a/src/routes/score.py +++ /dev/null @@ -1,142 +0,0 @@ -from flask import Blueprint, request, jsonify -from werkzeug.utils import secure_filename -import os -import cv2 -import subprocess -import platform # 운영체제 확인용 - -from ML.src.makexml.MakeScore import MakeScore -from src.services.score_service import save_score_to_db, get_score, delete_score - -score_bp = Blueprint('score', __name__) - -@score_bp.route('/score/upload', methods=['POST']) -def upload_score_route(): - """ - 악보 이미지 업로드 API - --- - tags: - - score - consumes: - - multipart/form-data - parameters: - - name: file - in: formData - type: file - required: true - description: 업로드할 악보 이미지 - responses: - 201: - description: 업로드 및 인식 성공 - examples: - application/json: - score_id: 1 - message: Score uploaded and recognized successfully - 400: - description: 파일 없음 - 500: - description: 내부 서버 오류 - """ - file = request.files.get('file') - if not file: - return jsonify({'error': 'No file uploaded'}), 400 - - try: - upload_dir = 'uploaded_scores' - os.makedirs(upload_dir, exist_ok=True) - - filename = secure_filename(file.filename) - file_path = os.path.join(upload_dir, filename) - file.save(file_path) - - img = cv2.imread(file_path, cv2.IMREAD_COLOR) - img_list = [img] - score = MakeScore.make_score(img_list) - - convert_dir = 'convert_result' - os.makedirs(convert_dir, exist_ok=True) - - temp_id = os.urandom(4).hex() - xml_path = os.path.join(convert_dir, temp_id + '.xml') - pdf_path = os.path.join(convert_dir, temp_id + '.pdf') - MakeScore.score_to_xml(score, temp_id) - - if platform.system() == "Windows": - mscore_path = r"C:\Program Files\MuseScore 4\bin\MuseScore4.exe" - else: - mscore_path = os.path.join("squashfs-root", "mscore4portable") - - print("실행 명령어 확인:", [mscore_path, xml_path, "-o", pdf_path]) - subprocess.run([mscore_path, xml_path, "-o", pdf_path], check=True) - - score_id = save_score_to_db(filename, xml_path, pdf_path) - - return jsonify({ - 'score_id': score_id, - 'message': 'Score uploaded and recognized successfully' - }), 201 - - except Exception as e: - return jsonify({'error': str(e)}), 500 - - -@score_bp.route('/score/', methods=['GET']) -def get_score_route(scoreId): - """ - 악보 정보 조회 API - --- - tags: - - score - parameters: - - name: scoreId - in: path - type: integer - required: true - description: 조회할 악보 ID - responses: - 200: - description: 조회 성공 - examples: - application/json: - score_id: 1 - original_filename: gomsong.png - xml_path: convert_result/1.xml - pdf_path: convert_result/1.pdf - created_at: 2025-05-11T13:00:00 - 404: - description: 악보를 찾을 수 없음 - """ - result = get_score(scoreId) - if result: - return jsonify(result), 200 - else: - return jsonify({'error': 'Score not found'}), 404 - - -@score_bp.route('/score/', methods=['DELETE']) -def delete_score_route(scoreId): - """ - 악보 삭제 API - --- - tags: - - score - parameters: - - name: scoreId - in: path - type: integer - required: true - description: 삭제할 악보 ID - responses: - 200: - description: 삭제 성공 - examples: - application/json: - message: Score deleted - 404: - description: 악보를 찾을 수 없음 - """ - success = delete_score(scoreId) - if success: - return jsonify({'message': 'Score deleted'}), 200 - else: - return jsonify({'error': 'Score not found'}), 404 diff --git a/src/routes/score_route.py b/src/routes/score_route.py new file mode 100644 index 0000000..91256f8 --- /dev/null +++ b/src/routes/score_route.py @@ -0,0 +1,203 @@ +import os +import cv2 +import subprocess +import platform +from flask import Blueprint, request, jsonify +from werkzeug.utils import secure_filename +from flasgger import swag_from + +from ML.src.makexml.MakeScore import MakeScore +from src.services.score_service import ( + save_score_file_to_db, + update_score_with_recognized_data, + get_score, + delete_score +) +from src.models.score_model import Score +from src.models.db import db + +from music21 import converter # 🎵 키 분석을 위해 추가 + +score_bp = Blueprint('score', __name__) + +# ✅ 1. 파일 업로드 +@score_bp.route('/score/upload', methods=['POST']) +@swag_from({ + 'tags': ['score'], + 'consumes': ['multipart/form-data'], + 'parameters': [ + { + 'name': 'file', + 'in': 'formData', + 'type': 'file', + 'required': True, + 'description': '업로드할 악보 이미지' + } + ], + 'responses': { + 201: {'description': '업로드 성공'}, + 400: {'description': '파일 없음'}, + 500: {'description': '내부 서버 오류'} + } +}) +def upload_score_file(): + file = request.files.get('file') + if not file: + return jsonify({'error': 'No file uploaded'}), 400 + + try: + upload_dir = 'uploaded_scores' + os.makedirs(upload_dir, exist_ok=True) + + filename = secure_filename(file.filename) + file_path = os.path.join(upload_dir, filename) + file.save(file_path) + + # DB에 업로드 정보 저장 + score_id = save_score_file_to_db(filename) + + return jsonify({ + 'score_id': score_id, + 'message': 'Score file uploaded successfully' + }), 201 + + except Exception as e: + print('🔥 upload_score_file 에러:', e) + return jsonify({'error': str(e)}), 500 + +# ✅ 2. 인식 및 변환 (key도 함께 반환) +@score_bp.route('/score/recognize', methods=['POST']) +@swag_from({ + 'tags': ['score'], + 'consumes': ['application/json'], + 'parameters': [ + { + 'name': 'body', + 'in': 'body', + 'required': True, + 'schema': { + 'type': 'object', + 'properties': { + 'score_id': { + 'type': 'integer', + 'description': '인식할 score_id' + } + }, + 'required': ['score_id'] + } + } + ], + 'responses': { + 200: {'description': '인식 및 변환 성공'}, + 400: {'description': '잘못된 요청'}, + 404: {'description': '악보를 찾을 수 없음'}, + 500: {'description': '내부 서버 오류'} + } +}) +def recognize_score(): + data = request.get_json() + score_id = data.get('score_id') + if not score_id: + return jsonify({'error': 'score_id is required'}), 400 + + try: + score = Score.query.get(score_id) + if not score: + return jsonify({'error': 'Score not found'}), 404 + + file_path = os.path.join('uploaded_scores', score.original_filename) + + img = cv2.imread(file_path, cv2.IMREAD_COLOR) + if img is None: + return jsonify({'error': 'Failed to load image'}), 500 + + img_list = [img] + score_obj = MakeScore.make_score(img_list) + + convert_dir = 'convert_result' + os.makedirs(convert_dir, exist_ok=True) + + temp_id = os.urandom(4).hex() + xml_path = os.path.join(convert_dir, f'{temp_id}.xml') + pdf_path = os.path.join(convert_dir, f'{temp_id}.pdf') + MakeScore.score_to_xml(score_obj, temp_id) + + # MuseScore로 PDF 변환 + if platform.system() == "Windows": + mscore_path = r"C:\Program Files\MuseScore 4\bin\MuseScore4.exe" + else: + mscore_path = os.path.join("squashfs-root", "mscore4portable") + subprocess.run([mscore_path, xml_path, "-o", pdf_path], check=True) + + # 🎯 music21로 XML 파싱 & 키 분석 + parsed_score = converter.parse(xml_path) + key_analysis = parsed_score.analyze('key') + detected_key = key_analysis.tonic.name if key_analysis else 'Unknown' + + # DB에 결과 업데이트 (key도 함께) + score.xml_path = xml_path + score.pdf_path = pdf_path + score.key = detected_key + db.session.commit() + + return jsonify({ + 'score_id': score_id, + 'xml_path': xml_path, + 'pdf_path': pdf_path, + 'key': detected_key, # 🎯 추가됨 + 'message': 'Score recognized and XML/PDF generated successfully' + }), 200 + + except Exception as e: + print('🔥 recognize_score 에러:', e) + return jsonify({'error': str(e)}), 500 + +# ✅ 3. 조회 +@score_bp.route('/score/', methods=['GET']) +@swag_from({ + 'tags': ['score'], + 'parameters': [ + { + 'name': 'score_id', + 'in': 'path', + 'type': 'integer', + 'required': True, + 'description': '조회할 악보 ID' + } + ], + 'responses': { + 200: {'description': '조회 성공'}, + 404: {'description': '악보를 찾을 수 없음'} + } +}) +def get_score_info(score_id): + result = get_score(score_id) + if result: + return jsonify(result), 200 + else: + return jsonify({'error': 'Score not found'}), 404 + +# ✅ 4. 삭제 +@score_bp.route('/score/', methods=['DELETE']) +@swag_from({ + 'tags': ['score'], + 'parameters': [ + { + 'name': 'score_id', + 'in': 'path', + 'type': 'integer', + 'required': True, + 'description': '삭제할 악보 ID' + } + ], + 'responses': { + 200: {'description': '삭제 성공'}, + 404: {'description': '악보를 찾을 수 없음'} + } +}) +def delete_score_info(score_id): + success = delete_score(score_id) + if success: + return jsonify({'message': 'Score deleted'}), 200 + else: + return jsonify({'error': 'Score not found'}), 404 diff --git a/src/routes/transform.py b/src/routes/transform_route.py similarity index 74% rename from src/routes/transform.py rename to src/routes/transform_route.py index fad63e7..f94c788 100644 --- a/src/routes/transform.py +++ b/src/routes/transform_route.py @@ -1,14 +1,14 @@ from flask import Blueprint, request, jsonify from src.utils.transpose_helper import transpose_key -from src.models.score import Score -from src.models.result import Result +from src.models.score_model import Score +from src.models.result_model import Result from src.services.transform_service import perform_transpose, extract_melody, extract_lyrics transform_bp = Blueprint('transform', __name__) @transform_bp.route('/transpose-preview', methods=['POST']) -def transposePreviewRoute(): +def transpose_preview(): """ 키 변경 미리보기 API --- @@ -24,7 +24,7 @@ def transposePreviewRoute(): schema: type: object properties: - currentKey: + current_key: type: string example: "F" description: 현재 키 @@ -33,7 +33,7 @@ def transposePreviewRoute(): example: -1 description: 변환할 반음 수 required: - - currentKey + - current_key - shift responses: 200: @@ -41,7 +41,7 @@ def transposePreviewRoute(): schema: type: object properties: - transposedKey: + transposed_key: type: string example: "E" message: @@ -51,26 +51,26 @@ def transposePreviewRoute(): description: 잘못된 요청 """ data = request.get_json() - currentKey = data.get('currentKey') + current_key = data.get('current_key') shift = data.get('shift') - if currentKey is None or shift is None: - return jsonify({'error': 'currentKey and shift are required'}), 400 + if current_key is None or shift is None: + return jsonify({'error': 'current_key and shift are required'}), 400 try: shift = int(shift) - transposedKey = transpose_key(currentKey, shift) + transposed_key = transpose_key(current_key, shift) return jsonify({ - 'transposedKey': transposedKey, - 'message': f"{currentKey.upper()} → {transposedKey} (shift {shift})" + 'transposed_key': transposed_key, + 'message': f"{current_key.upper()} → {transposed_key} (shift {shift})" }), 200 except ValueError as e: return jsonify({'error': str(e)}), 400 -@transform_bp.route('/score//transpose', methods=['POST']) -def transformTransposeRoute(scoreId): +@transform_bp.route('/score//transpose', methods=['POST']) +def transform_transpose(score_id): """ 키 변경 수행 API --- @@ -79,7 +79,7 @@ def transformTransposeRoute(scoreId): summary: 업로드된 악보를 지정된 반음 수만큼 키 변경하고 결과 PDF를 생성합니다 parameters: - in: path - name: scoreId + name: score_id required: true schema: type: integer @@ -102,7 +102,7 @@ def transformTransposeRoute(scoreId): schema: type: object properties: - resultId: + result_id: type: integer example: 101 message: @@ -111,7 +111,7 @@ def transformTransposeRoute(scoreId): 404: description: 악보 ID를 찾을 수 없음 """ - score = Score.query.get(scoreId) + score = Score.query.get(score_id) if not score: return jsonify({'error': 'Score not found'}), 404 @@ -120,16 +120,16 @@ def transformTransposeRoute(scoreId): if shift is None: return jsonify({'error': 'shift is required'}), 400 - resultId = perform_transpose(score, int(shift)) + result_id = perform_transpose(score, int(shift)) return jsonify({ - 'resultId': resultId, + 'result_id': result_id, 'message': 'Transpose completed successfully' }), 201 -@transform_bp.route('/score//lyrics', methods=['POST']) -def lyricsExtractRoute(scoreId): +@transform_bp.route('/score//lyrics', methods=['POST']) +def extract_lyrics_route(score_id): """ 가사 추출 API --- @@ -138,7 +138,7 @@ def lyricsExtractRoute(scoreId): summary: 업로드된 악보에서 가사를 추출하여 텍스트 파일로 저장하고 결과 ID를 반환합니다 parameters: - in: path - name: scoreId + name: score_id required: true schema: type: integer @@ -149,10 +149,10 @@ def lyricsExtractRoute(scoreId): schema: type: object properties: - resultId: + result_id: type: integer example: 301 - textPath: + text_path: type: string example: "convert_result/301.txt" message: @@ -161,24 +161,24 @@ def lyricsExtractRoute(scoreId): 404: description: 악보 ID를 찾을 수 없음 """ - score = Score.query.get(scoreId) + score = Score.query.get(score_id) if not score: return jsonify({'error': 'Score not found'}), 404 - resultId = extract_lyrics(score) - result = Result.query.get(resultId) + result_id = extract_lyrics(score) + result = Result.query.get(result_id) if not result: return jsonify({"error": "Result not found"}), 500 return jsonify({ - 'resultId': resultId, - 'textPath': result.download_path, + 'result_id': result_id, + 'text_path': result.download_path, 'message': 'Lyrics extracted successfully' }), 200 -@transform_bp.route('/score//melody', methods=['POST']) -def melodyExtractRoute(scoreId): +@transform_bp.route('/score//melody', methods=['POST']) +def extract_melody_route(score_id): """ 멜로디 추출 API --- @@ -187,7 +187,7 @@ def melodyExtractRoute(scoreId): summary: 업로드된 악보에서 특정 마디 범위의 멜로디를 추출하고 MP3 파일을 생성합니다 parameters: - in: path - name: scoreId + name: score_id required: true schema: type: integer @@ -198,27 +198,27 @@ def melodyExtractRoute(scoreId): schema: type: object properties: - startMeasure: + start_measure: type: integer example: 1 description: 시작 마디 - endMeasure: + end_measure: type: integer example: 8 description: 종료 마디 required: - - startMeasure - - endMeasure + - start_measure + - end_measure responses: 200: description: 멜로디 추출 완료 schema: type: object properties: - resultId: + result_id: type: integer example: 205 - mp3Path: + mp3_path: type: string example: "convert_result/205.mp3" message: @@ -228,20 +228,20 @@ def melodyExtractRoute(scoreId): description: 악보 ID를 찾을 수 없음 """ data = request.get_json() - start = data.get('startMeasure') - end = data.get('endMeasure') + start = data.get('start_measure') + end = data.get('end_measure') - score = Score.query.get(scoreId) + score = Score.query.get(score_id) if not score: return jsonify({'error': 'Score not found'}), 404 - resultId = extract_melody(score, start, end) - result = Result.query.get(resultId) + result_id = extract_melody(score, start, end) + result = Result.query.get(result_id) if not result: return jsonify({"error": "Result not found"}), 500 return jsonify({ - 'resultId': resultId, - 'mp3Path': result.audio_path, + 'result_id': result_id, + 'mp3_path': result.audio_path, 'message': f'Melody extracted from measure {start} to {end}' }), 200 diff --git a/src/routes/user.py b/src/routes/user_route.py similarity index 70% rename from src/routes/user.py rename to src/routes/user_route.py index a6fc42d..ccf9d16 100644 --- a/src/routes/user.py +++ b/src/routes/user_route.py @@ -1,28 +1,30 @@ +import os +import uuid from flask import Blueprint, request, jsonify from werkzeug.utils import secure_filename +from flasgger import swag_from + from src.models import db, User from src.utils.jwt_util import decode_token -from flasgger import swag_from -import os -import uuid user_bp = Blueprint('user', __name__, url_prefix='/user') UPLOAD_FOLDER = 'static/profile_images' os.makedirs(UPLOAD_FOLDER, exist_ok=True) + # ✅ 공통 인증 함수 -def getCurrentUser(): - authHeader = request.headers.get("Authorization") - if not authHeader or not authHeader.startswith("Bearer "): +def get_current_user(): + auth_header = request.headers.get("Authorization") + if not auth_header or not auth_header.startswith("Bearer "): return None, jsonify({"error": "Missing or invalid Authorization header"}), 401 - token = authHeader.split(" ")[1] + token = auth_header.split(" ")[1] payload, error = decode_token(token) if error: return None, jsonify({"error": error}), 401 - user = User.query.get(payload["userId"]) + user = User.query.get(payload["user_id"]) if not user: return None, jsonify({"error": "User not found"}), 404 @@ -40,9 +42,9 @@ def getCurrentUser(): 'schema': { 'type': 'object', 'properties': { - 'userId': {'type': 'integer'}, + 'user_id': {'type': 'integer'}, 'nickname': {'type': 'string'}, - 'profileImage': {'type': 'string'} + 'profile_image': {'type': 'string'} } } }, @@ -50,21 +52,21 @@ def getCurrentUser(): 404: {'description': 'User not found'} } }) -def getMyInfo(): - user, errorResp, status = getCurrentUser() - if errorResp: - return errorResp, status +def get_my_info(): + user, error_resp, status = get_current_user() + if error_resp: + return error_resp, status return jsonify({ - "userId": user.id, + "user_id": user.id, "nickname": user.nickname, - "profileImage": user.profile_image + "profile_image": user.profile_image }), 200 @user_bp.route('/me', methods=['PATCH']) @swag_from({ - 'summary': '기본 정보 수정(우선 닉네임만 수정하도록 구현)', + 'summary': '기본 정보 수정 (우선 닉네임만 수정하도록 구현)', 'tags': ['user'], 'security': [{'Bearer': []}], 'parameters': [ @@ -89,7 +91,7 @@ def getMyInfo(): 'schema': { 'type': 'object', 'properties': { - 'userId': {'type': 'integer'}, + 'user_id': {'type': 'integer'}, 'nickname': {'type': 'string'} } } @@ -99,21 +101,21 @@ def getMyInfo(): 404: {'description': 'User not found'} } }) -def updateMyInfo(): - user, errorResp, status = getCurrentUser() - if errorResp: - return errorResp, status +def update_my_info(): + user, error_resp, status = get_current_user() + if error_resp: + return error_resp, status data = request.get_json() - newNickname = data.get("nickname") - if not newNickname: + new_nickname = data.get("nickname") + if not new_nickname: return jsonify({"error": "Nickname is required"}), 400 - user.nickname = newNickname + user.nickname = new_nickname db.session.commit() return jsonify({ - "userId": user.id, + "user_id": user.id, "nickname": user.nickname }), 200 @@ -125,7 +127,7 @@ def updateMyInfo(): 'consumes': ['multipart/form-data'], 'parameters': [ { - 'name': 'profileImage', + 'name': 'profile_image', 'in': 'formData', 'type': 'file', 'required': True, @@ -139,9 +141,9 @@ def updateMyInfo(): 'schema': { 'type': 'object', 'properties': { - 'userId': {'type': 'integer'}, + 'user_id': {'type': 'integer'}, 'nickname': {'type': 'string'}, - 'profileImage': {'type': 'string'} + 'profile_image': {'type': 'string'} } } }, @@ -149,29 +151,29 @@ def updateMyInfo(): 401: {'description': '유효하지 않은 토큰'} } }) -def updateProfileImage(): - user, errorResp, status = getCurrentUser() - if errorResp: - return errorResp, status +def update_profile_image(): + user, error_resp, status = get_current_user() + if error_resp: + return error_resp, status - if 'profileImage' not in request.files: + if 'profile_image' not in request.files: return jsonify({"error": "No file part"}), 400 - file = request.files['profileImage'] + file = request.files['profile_image'] if file.filename == '': return jsonify({"error": "No selected file"}), 400 - uniqueFilename = f"{uuid.uuid4().hex}_{secure_filename(file.filename)}" - filePath = os.path.join(UPLOAD_FOLDER, uniqueFilename) - file.save(filePath) + unique_filename = f"{uuid.uuid4().hex}_{secure_filename(file.filename)}" + file_path = os.path.join(UPLOAD_FOLDER, unique_filename) + file.save(file_path) - user.profile_image = filePath + user.profile_image = file_path db.session.commit() return jsonify({ - "userId": user.id, + "user_id": user.id, "nickname": user.nickname, - "profileImage": user.profile_image + "profile_image": user.profile_image }), 200 @@ -186,7 +188,7 @@ def updateProfileImage(): 'schema': { 'type': 'object', 'properties': { - 'userId': {'type': 'integer'}, + 'user_id': {'type': 'integer'}, 'message': {'type': 'string'} } } @@ -195,15 +197,15 @@ def updateProfileImage(): 404: {'description': '사용자 없음'} } }) -def deleteMyAccount(): - user, errorResp, status = getCurrentUser() - if errorResp: - return errorResp, status +def delete_my_account(): + user, error_resp, status = get_current_user() + if error_resp: + return error_resp, status db.session.delete(user) db.session.commit() return jsonify({ - "userId": user.id, + "user_id": user.id, "message": "User successfully deleted" }), 200 diff --git a/src/services/auth_service.py b/src/services/auth_service.py index 933d187..15ac2ae 100644 --- a/src/services/auth_service.py +++ b/src/services/auth_service.py @@ -1,38 +1,38 @@ from src.utils.jwt_util import create_access_token, create_refresh_token, decode_token from src.models import db, User -def handle_kakao_login(kakaoId, nickname, profileImageUrl): +def handle_kakao_login(kakao_id, nickname, profile_image_url): # DB 컬럼에 맞춰 social_id로 조회 - user = User.query.filter_by(social_id=kakaoId).first() - + user = User.query.filter_by(social_id=kakao_id).first() + if not user: user = User( - social_id=kakaoId, + social_id=kakao_id, nickname=nickname, - profile_image=profileImageUrl + profile_image=profile_image_url ) db.session.add(user) db.session.commit() - accessToken = create_access_token(user.id) - refreshToken = create_refresh_token(user.id) + access_token = create_access_token(user.id) + refresh_token = create_refresh_token(user.id) return { - "accessToken": accessToken, - "refreshToken": refreshToken, - "userId": user.id, + "access_token": access_token, + "refresh_token": refresh_token, + "user_id": user.id, "nickname": user.nickname } -def refresh_access_token(refreshToken): - payload = decode_token(refreshToken) +def refresh_access_token(refresh_token): + payload = decode_token(refresh_token) if not payload: return None, "Invalid or expired refresh token" - - userId = payload.get("userId") - user = User.query.get(userId) + + user_id = payload.get("user_id") + user = User.query.get(user_id) if not user: return None, "User not found" - - newAccessToken = create_access_token(user.id) - return newAccessToken, None + + new_access_token = create_access_token(user.id) + return new_access_token, None diff --git a/src/services/mypage_result_score.py b/src/services/mypage_result_score.py deleted file mode 100644 index 6061f86..0000000 --- a/src/services/mypage_result_score.py +++ /dev/null @@ -1,30 +0,0 @@ -from src.models.db import db -from src.models.resultScore_save import ResultScoreSave -from src.models.result import Result -from src.models.user import User - -def saveResultScore(userId, resultId): - exists = ResultScoreSave.query.filter_by(user_id=userId, result_id=resultId).first() - if exists: - return False # 이미 저장됨 - - save = ResultScoreSave(user_id=userId, result_id=resultId) - db.session.add(save) - db.session.commit() - return True - - -def getSavedResultScores(userId, resultType=None): - query = ResultScoreSave.query.join(Result).filter(ResultScoreSave.user_id == userId) - if resultType: - query = query.filter(Result.type == resultType) - return query.all() - - -def deleteResultScore(userId, resultId): - save = ResultScoreSave.query.filter_by(user_id=userId, result_id=resultId).first() - if not save: - return False - db.session.delete(save) - db.session.commit() - return True diff --git a/src/services/mypage_resultscore_service.py b/src/services/mypage_resultscore_service.py new file mode 100644 index 0000000..3069ee6 --- /dev/null +++ b/src/services/mypage_resultscore_service.py @@ -0,0 +1,27 @@ +from src.models.db import db +from src.models.resultscore_save_model import ResultScoreSave +from src.models.result_model import Result + +def save_result_score(user_id, result_id): + exists = ResultScoreSave.query.filter_by(user_id=user_id, result_id=result_id).first() + if exists: + return False # 이미 저장됨 + + save = ResultScoreSave(user_id=user_id, result_id=result_id) + db.session.add(save) + db.session.commit() + return True + +def get_saved_result_scores(user_id, result_type=None): + query = ResultScoreSave.query.join(Result).filter(ResultScoreSave.user_id == user_id) + if result_type: + query = query.filter(Result.type == result_type) + return query.all() + +def delete_result_score(user_id, result_id): + save = ResultScoreSave.query.filter_by(user_id=user_id, result_id=result_id).first() + if not save: + return False + db.session.delete(save) + db.session.commit() + return True diff --git a/src/services/mypage_upload_score.py b/src/services/mypage_upload_score.py deleted file mode 100644 index 35ecdec..0000000 --- a/src/services/mypage_upload_score.py +++ /dev/null @@ -1,27 +0,0 @@ -from src.models.db import db -from src.models.uploadScore_save import UploadScoreSave -from src.models.score import Score -from src.models.user import User - -def saveUploadScore(userId, scoreId): - exists = UploadScoreSave.query.filter_by(user_id=userId, score_id=scoreId).first() - if exists: - return False # 이미 저장됨 - - save = UploadScoreSave(user_id=userId, score_id=scoreId) - db.session.add(save) - db.session.commit() - return True - - -def getSavedUploadScores(userId): - return UploadScoreSave.query.filter_by(user_id=userId).all() - - -def deleteUploadScore(userId, scoreId): - save = UploadScoreSave.query.filter_by(user_id=userId, score_id=scoreId).first() - if not save: - return False - db.session.delete(save) - db.session.commit() - return True diff --git a/src/services/mypage_uploadscore_service.py b/src/services/mypage_uploadscore_service.py new file mode 100644 index 0000000..6627a0b --- /dev/null +++ b/src/services/mypage_uploadscore_service.py @@ -0,0 +1,23 @@ +from src.models.db import db +from src.models.uploadscore_save_model import UploadScoreSave + +def save_upload_score(user_id, score_id): + exists = UploadScoreSave.query.filter_by(user_id=user_id, score_id=score_id).first() + if exists: + return False # 이미 저장됨 + + save = UploadScoreSave(user_id=user_id, score_id=score_id) + db.session.add(save) + db.session.commit() + return True + +def get_saved_upload_scores(user_id): + return UploadScoreSave.query.filter_by(user_id=user_id).all() + +def delete_upload_score(user_id, score_id): + save = UploadScoreSave.query.filter_by(user_id=user_id, score_id=score_id).first() + if not save: + return False + db.session.delete(save) + db.session.commit() + return True diff --git a/src/services/result_service.py b/src/services/result_service.py index b4f8b05..aa437b3 100644 --- a/src/services/result_service.py +++ b/src/services/result_service.py @@ -1,61 +1,79 @@ import os from flask import send_file, jsonify -from src.models.result import Result +from src.models.result_model import Result # 내부 경로 정리 함수 -def normalizePath(path): +def normalize_path(path): return os.path.normpath(path) if path else None # 5-1: 키 변경된 악보 결과 이미지 -def getTransposeImage(resultId): - result = Result.query.get(resultId) +def get_transpose_image(result_id): + result = Result.query.get(result_id) if not result or result.type != 'transpose': raise FileNotFoundError("키 변경 악보 이미지 결과를 찾을 수 없습니다") - imagePath = normalizePath(result.image_path) - if not imagePath or not os.path.exists(imagePath): - raise FileNotFoundError("키 변경 악보 이미지 결과를 찾을 수 없습니다") - return send_file(imagePath, mimetype='image/png') + + # ✅ 절대 경로로 변환 + image_path = normalize_path(result.image_path) + abs_image_path = os.path.join(os.getcwd(), image_path) if image_path else None + + if not abs_image_path or not os.path.exists(abs_image_path): + raise FileNotFoundError(f"키 변경 악보 이미지 결과를 찾을 수 없습니다: {abs_image_path}") + + # ✅ 이미지 반환 + return send_file(abs_image_path, mimetype='image/png') -# 키 변경된 PDF 파일 다운로드 -def downloadTransposeFile(resultId): - result = Result.query.get(resultId) +# 5-1: 키 변경된 PDF 파일 다운로드 +def download_transpose_file(result_id): + result = Result.query.get(result_id) if not result or result.type != 'transpose': raise FileNotFoundError("키 변경 악보 다운로드 파일을 찾을 수 없습니다") - downloadPath = normalizePath(result.download_path) - if not downloadPath or not os.path.exists(downloadPath): + + download_path = normalize_path(result.download_path) + abs_download_path = os.path.join(os.getcwd(), download_path) if download_path else None + + if not abs_download_path or not os.path.exists(abs_download_path): raise FileNotFoundError("키 변경 악보 다운로드 파일을 찾을 수 없습니다") - return send_file(downloadPath, as_attachment=True) + + return send_file(abs_download_path, as_attachment=True) # 5-2: 가사 추출 결과 텍스트 -def getLyricsText(resultId): - result = Result.query.get(resultId) +def get_lyrics_text(result_id): + result = Result.query.get(result_id) if not result or result.type != 'lyrics' or not result.text_content: raise FileNotFoundError("가사 텍스트 결과를 찾을 수 없습니다") - return jsonify({"textContent": result.text_content}) + return jsonify({"text_content": result.text_content}) # 가사 다운로드 파일 -def downloadLyricsFile(resultId): - result = Result.query.get(resultId) +def download_lyrics_file(result_id): + result = Result.query.get(result_id) if not result or result.type != 'lyrics': raise FileNotFoundError("가사 다운로드 파일을 찾을 수 없습니다") - downloadPath = normalizePath(result.download_path) - if not downloadPath or not os.path.exists(downloadPath): + + download_path = normalize_path(result.download_path) + abs_download_path = os.path.join(os.getcwd(), download_path) if download_path else None + + if not abs_download_path or not os.path.exists(abs_download_path): raise FileNotFoundError("가사 다운로드 파일을 찾을 수 없습니다") - return send_file(downloadPath, as_attachment=True) + + return send_file(abs_download_path, as_attachment=True) # 5-3: 멜로디 메타 정보 -def getMelodyMetaInfo(resultId): - result = Result.query.get(resultId) +def get_melody_meta_info(result_id): + result = Result.query.get(result_id) if not result or result.type != 'melody' or not result.meta_info: raise FileNotFoundError("멜로디 메타 정보가 없습니다") - return jsonify({"metaInfo": result.meta_info}) + return jsonify({"meta_info": result.meta_info}) # 멜로디 오디오 MP3 -def getMelodyAudio(resultId): - result = Result.query.get(resultId) +def get_melody_audio(result_id): + result = Result.query.get(result_id) if not result or result.type != 'melody': raise FileNotFoundError("멜로디 오디오 파일을 찾을 수 없습니다") - audioPath = normalizePath(result.audio_path) - if not audioPath or not os.path.exists(audioPath): + + audio_path = normalize_path(result.audio_path) + abs_audio_path = os.path.join(os.getcwd(), audio_path) if audio_path else None + + if not abs_audio_path or not os.path.exists(abs_audio_path): raise FileNotFoundError("멜로디 오디오 파일을 찾을 수 없습니다") - return send_file(audioPath, mimetype='audio/mpeg', as_attachment=True) + + return send_file(abs_audio_path, mimetype='audio/mpeg', as_attachment=True) diff --git a/src/services/score_service.py b/src/services/score_service.py index 32e2290..6136843 100644 --- a/src/services/score_service.py +++ b/src/services/score_service.py @@ -1,31 +1,47 @@ -from src.models.score import db, Score +from src.models.db import db +from src.models.score_model import Score -def saveScoreToDb(filename, xmlPath, pdfPath): - newScore = Score( - original_filename=filename, - xml_path=xmlPath, - pdf_path=pdfPath - ) - db.session.add(newScore) +# ✅ 파일 업로드 시 DB에 저장 (xml/pdf 경로는 null) +def save_score_file_to_db(filename: str) -> int: + new_score = Score(original_filename=filename) + db.session.add(new_score) db.session.commit() - return newScore.id # 새로 생성된 정수 ID를 반환 + return new_score.id -def getScore(scoreId): - score = Score.query.get(scoreId) +# ✅ xml/pdf 변환 결과를 DB에 업데이트 +def update_score_with_recognized_data(score_id: int, xml_path: str, pdf_path: str) -> int: + score = Score.query.get(score_id) + if score: + score.xml_path = xml_path + score.pdf_path = pdf_path + db.session.commit() + return score.id + else: + print(f"⚠️ Score with id {score_id} not found for update.") + return -1 + +# ✅ 악보 정보 조회 +def get_score(score_id: int) -> dict: + score = Score.query.get(score_id) if score: return { - 'scoreId': score.id, - 'originalFilename': score.original_filename, - 'xmlPath': score.xml_path, - 'pdfPath': score.pdf_path, - 'createdAt': score.created_at.isoformat() + 'score_id': score.id, + 'original_filename': score.original_filename, + 'xml_path': score.xml_path, + 'pdf_path': score.pdf_path, + 'created_at': score.created_at.isoformat() } - return None + else: + print(f"⚠️ Score with id {score_id} not found for get_score.") + return None -def deleteScore(scoreId): - score = Score.query.get(scoreId) +# ✅ 악보 삭제 +def delete_score(score_id: int) -> bool: + score = Score.query.get(score_id) if score: db.session.delete(score) db.session.commit() return True - return False + else: + print(f"⚠️ Score with id {score_id} not found for delete.") + return False diff --git a/src/services/transform_service.py b/src/services/transform_service.py index f301d2a..1af6d12 100644 --- a/src/services/transform_service.py +++ b/src/services/transform_service.py @@ -6,42 +6,53 @@ from music21 import midi, stream, note from src.models.db import db -from src.models.score import Score -from src.models.result import Result +from src.models.score_model import Score +from src.models.result_model import Result from ML.src.makexml.MakeScore import MakeScore +# 플랫폼별 경로 설정 if platform.system() == "Windows": - ffmpegCmd = r"C:\ProgramData\chocolatey\lib\ffmpeg\tools\ffmpeg\bin\ffmpeg.exe" - timidityCmd = "timidity" - mscoreCmd = r"C:\Program Files\MuseScore 4\bin\MuseScore4.exe" + ffmpeg_cmd = r"C:\ProgramData\chocolatey\lib\ffmpeg\tools\ffmpeg\bin\ffmpeg.exe" + timidity_cmd = "timidity" + mscore_cmd = r"C:\Program Files\MuseScore 4\bin\MuseScore4.exe" else: - ffmpegCmd = "ffmpeg" - timidityCmd = "timidity" - mscoreCmd = os.path.join("squashfs-root", "mscore4portable") + ffmpeg_cmd = "ffmpeg" + timidity_cmd = "timidity" + mscore_cmd = os.path.join("squashfs-root", "mscore4portable") +def perform_transpose(score: Score, shift: int) -> int: + image_path = os.path.join('uploaded_scores', score.original_filename) + img = cv2.imread(image_path, cv2.IMREAD_COLOR) + img_list = [img] -def performTranspose(score: Score, shift: int) -> int: - imagePath = os.path.join('uploaded_scores', score.original_filename) - img = cv2.imread(imagePath, cv2.IMREAD_COLOR) - imgList = [img] + score_obj = MakeScore.make_score(img_list) + transposed_score = MakeScore.change_key(score_obj, shift) - scoreObj = MakeScore.make_score(imgList) - transposedScore = MakeScore.change_key(scoreObj, shift) + result_id = str(uuid.uuid4()) + convert_dir = 'convert_result' + os.makedirs(convert_dir, exist_ok=True) - resultId = str(uuid.uuid4()) - convertDir = 'convert_result' - os.makedirs(convertDir, exist_ok=True) + xml_path = os.path.join(convert_dir, f"{result_id}.xml") + pdf_path = os.path.join(convert_dir, f"{result_id}.pdf") + + # 🔧 MuseScore는 PNG를 -1.png로 저장함! → DB에는 실제 경로로 저장되도록 수정 + image_copy_path = os.path.join(convert_dir, f"{result_id}-1.png") - xmlPath = os.path.join(convertDir, f"{resultId}.xml") - pdfPath = os.path.join(convertDir, f"{resultId}.pdf") + # 키 변환 XML 생성 + MakeScore.score_to_xml(transposed_score, result_id) - MakeScore.score_to_xml(transposedScore, resultId) - subprocess.run([mscoreCmd, xmlPath, "-o", pdfPath], check=True) + # MuseScore로 PDF 렌더링 + subprocess.run([mscore_cmd, xml_path, "-o", pdf_path], check=True) + # MuseScore로 PNG 렌더링 (변환된 악보 이미지) + subprocess.run([mscore_cmd, xml_path, "-o", os.path.join(convert_dir, f"{result_id}.png")], check=True) + + # ✅ Result에 실제 경로(변환된 이미지) 저장 result = Result( score_id=score.id, type='transpose', - download_path=pdfPath + download_path=pdf_path, + image_path=image_copy_path ) db.session.add(result) db.session.commit() @@ -49,77 +60,76 @@ def performTranspose(score: Score, shift: int) -> int: return result.id -def extractMelody(score: Score, startMeasure: int, endMeasure: int) -> int: - imagePath = os.path.join('uploaded_scores', score.original_filename) - img = cv2.imread(imagePath, cv2.IMREAD_COLOR) - imgList = [img] +def extract_melody(score: Score, start_measure: int, end_measure: int) -> int: + image_path = os.path.join('uploaded_scores', score.original_filename) + img = cv2.imread(image_path, cv2.IMREAD_COLOR) + img_list = [img] - scoreObj = MakeScore.make_score(imgList) + score_obj = MakeScore.make_score(img_list) - extractedScore = stream.Score() - for part in scoreObj.parts: - partExtract = stream.Part() - for m in part.measures(startMeasure, endMeasure): - partExtract.append(m) - extractedScore.append(partExtract) + extracted_score = stream.Score() + for part in score_obj.parts: + part_extract = stream.Part() + for m in part.measures(start_measure, end_measure): + part_extract.append(m) + extracted_score.append(part_extract) - resultId = str(uuid.uuid4()) - convertDir = 'convert_result' - os.makedirs(convertDir, exist_ok=True) + result_id = str(uuid.uuid4()) + convert_dir = 'convert_result' + os.makedirs(convert_dir, exist_ok=True) - midiPath = os.path.join(convertDir, f"{resultId}.mid") - mp3Path = os.path.join(convertDir, f"{resultId}.mp3") - wavPath = midiPath.replace('.mid', '.wav') + midi_path = os.path.join(convert_dir, f"{result_id}.mid") + mp3_path = os.path.join(convert_dir, f"{result_id}.mp3") + wav_path = midi_path.replace('.mid', '.wav') - mf = midi.translate.music21ObjectToMidiFile(extractedScore) - mf.open(midiPath, 'wb') + mf = midi.translate.music21ObjectToMidiFile(extracted_score) + mf.open(midi_path, 'wb') mf.write() mf.close() - subprocess.run([timidityCmd, midiPath, "-Ow", "-o", wavPath], check=True) - subprocess.run([ffmpegCmd, "-i", wavPath, mp3Path], check=True) - os.remove(wavPath) + subprocess.run([timidity_cmd, midi_path, "-Ow", "-o", wav_path], check=True) + subprocess.run([ffmpeg_cmd, "-i", wav_path, mp3_path], check=True) + os.remove(wav_path) result = Result( score_id=score.id, type='melody', - audio_path=mp3Path + audio_path=mp3_path ) db.session.add(result) db.session.commit() return result.id - -def extractLyrics(score: Score) -> int: - imagePath = os.path.join('uploaded_scores', score.original_filename) - img = cv2.imread(imagePath, cv2.IMREAD_COLOR) +def extract_lyrics(score: Score) -> int: + image_path = os.path.join('uploaded_scores', score.original_filename) + img = cv2.imread(image_path, cv2.IMREAD_COLOR) if img is None: raise RuntimeError("이미지를 불러올 수 없습니다") - imgList = [img] - scoreObj = MakeScore.make_score(imgList) + img_list = [img] + score_obj = MakeScore.make_score(img_list) lyrics = [] - for el in scoreObj.recurse(): + for el in score_obj.recurse(): if isinstance(el, note.Note) and el.lyric: lyrics.append(el.lyric.strip()) - lyricsText = "\n".join(filter(None, lyrics)).strip() + lyrics_text = "\n".join(filter(None, lyrics)).strip() - resultId = str(uuid.uuid4()) - convertDir = 'convert_result' - os.makedirs(convertDir, exist_ok=True) + result_id = str(uuid.uuid4()) + convert_dir = 'convert_result' + os.makedirs(convert_dir, exist_ok=True) - textPath = os.path.join(convertDir, f"{resultId}.txt") - with open(textPath, 'w', encoding='utf-8') as f: - f.write(lyricsText) + text_path = os.path.join(convert_dir, f"{result_id}.txt") + with open(text_path, 'w', encoding='utf-8') as f: + f.write(lyrics_text) result = Result( score_id=score.id, type='lyrics', - download_path=textPath, - text_content=lyricsText + download_path=text_path, + text_content=lyrics_text ) db.session.add(result) db.session.commit() diff --git a/src/utils/transpose_helper.py b/src/utils/transpose_helper.py index 9848e78..400415d 100644 --- a/src/utils/transpose_helper.py +++ b/src/utils/transpose_helper.py @@ -1,11 +1,12 @@ KEYS = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B'] -def transposeKey(currentKey: str, shift: int) -> str: - keyUpper = currentKey.upper().replace('B♭', 'A#').replace('E♭', 'D#') # 간단한 flat 처리 예시 - if keyUpper not in KEYS: - raise ValueError(f"Invalid key: {currentKey}") +def transpose_key(current_key: str, shift: int) -> str: + key_upper = current_key.upper().replace('B♭', 'A#').replace('E♭', 'D#') # 간단한 flat 처리 예시 - index = KEYS.index(keyUpper) - newIndex = (index + shift) % 12 - return KEYS[newIndex] + if key_upper not in KEYS: + raise ValueError(f"Invalid key: {current_key}") + + index = KEYS.index(key_upper) + new_index = (index + shift) % 12 + return KEYS[new_index]