Skip to content

Releases: igapyon/mikuscore

UI共通化、ZIP入力、Edit強化、MEI/MIDI/MuseScore互換性改善

07 Mar 01:10
d011eab

Choose a tag to compare

概要

主なテーマは、UI基盤の整理、入力/編集/出力導線の改善、そして MEI / MIDI / MuseScore / MusicXML の相互変換精度向上です。

主な更新内容

UI・操作性

  • lht-cmn を導入し、lht-* Web Components ベースへ段階移行
  • md3 ランタイム CSS 依存を解消し、単一HTML配布を維持したまま UI 基盤を整理
  • Output まわりの導線を調整
    • ボタン順の見直し
    • Play / MIDI ボタンの見た目調整
    • Compress MusicXML / MuseScore export のデフォルトを ON に変更
  • lht-select-help 利用時の設定値同期を修正
  • Quick Playback Tone で Sine を選択した際の誤動作を修正

入力・編集機能

  • ZIP ファイル入力に対応
    • ルート直下の候補ファイル選択
    • ロード中オーバーレイ表示
  • Edit パネルに Editor / Measure XML サブタブを追加
  • 選択中小節の Self-contained MusicXML / MIDI ダウンロードを追加

変換・互換性改善

  • miscellaneous-field の名前空間を mks:* 系へ整理し、仕様・実装・テストを統一
  • General Settings の metadata 制御を mks:meta / mks:src / mks:dbg の個別スイッチへ分離
  • MEI 取込を強化
    • mks:src:mei:raw-* の付与
    • stem.mod=slash の刻み展開
    • Self-contained XML への src 注入
  • MuseScore 取込/出力の互換性を改善
    • C clef / ヘ音記号対応
    • テンポの読取・出力改善
    • slur / trill / part name / part abbreviation の保持改善
  • MEI 出力の互換性を改善
    • スラー
    • 強弱時刻
    • テンポ
    • パート名
    • アーティキュレーション
  • MIDI I/O を改善
    • weak pickup の保持
    • 文脈に応じた異名同音綴りの改善
    • 標準メタ優先の復元
    • mks テキストメタ出力の設定連動化
  • MIDI / Playback の同音連結ロジックを見直し
    • tie / slur 境界
    • アーティキュレーション表現
    • 再生時の接続感を改善

サンプル・ドキュメント

  • 組み込みサンプルを拡充し、sample1sample4 の各種アセットを追加
  • sample1/2sample6/7 へリネーム
  • 和声解析拡張仕様 v1 ドラフトを追加
  • ドキュメント体系を再編し、製品位置づけ・品質・変換方針を整理

互換性に関する注意

  • miscellaneous-field の出力キーは mks:* を正規系として扱います
  • sample1 / sample2 名称を前提にした参照は、sample6 / sample7 へ更新が必要です
  • metadata 制御 UI は単一スイッチから prefix 単位の個別スイッチへ変わっています

含まれる主な改善領域

  • UI共通化と保守性向上
  • ZIP経由を含む入力導線の改善
  • Edit画面での小節単位確認・出力強化
  • MEI / MIDI / MuseScore / MusicXML の相互変換品質向上
  • 再生系の波形・連結表現の改善
  • 仕様書・検証資料の拡充

補足

このリリースには、ビルド生成物 (mikuscore.html, src/js/main.js) の更新も含まれます。

形式横断ラウンドトリップ強化(MEI/LilyPond/MuseScore/MIDI)と CFFP 導入

27 Feb 16:30
cd0bf02

Choose a tag to compare

形式横断ラウンドトリップ強化(MEI/LilyPond/MuseScore/MIDI)と CFFP 導入

主な変更

  • 形式横断テスト基盤 CFFP を導入し、ラウンドトリップ検証を拡充
  • LilyPond import/roundtrip を大幅強化
    • relative / 変数 / トップレベル対応
    • native記法対応と clef 改善
    • slur / trill 復元強化
    • 欠落音(m97/m138)修正
  • MEI 入出力 の仕様追従を強化
    • control event / transposition / meiversion 対応強化
    • 同小節内の臨時記号引き継ぎ対応
    • 弱起(implicit)判定対応
    • parity テスト拡充
  • MuseScore 変換 の精度改善
    • divisions 補正
    • 弱起補正
    • 移調楽器(transpose)情報の往復保持
    • MozartTrio を使ったラウンドトリップ検証を追加
  • MIDI/LilyPond ラウンドトリップ時のメタデータ保持 を強化
    • Title / Composer / Part名 の保持改善
    • 関連 UI とユニットテストを更新
  • ABC 読み込み時の clef 自動判定 を改善
  • 開発体験改善
    • ローカル fixture 不在時、spot/MEI テストを自動 skip 化
    • index キャッシュバスト改善
    • VSQX/MSCX の 2 スペース整形
    • 選択小節から再生対応

テスト/品質

  • CFFPを含む形式横断テストを追加・拡充
  • MEI/LilyPond/MIDI/MuseScore 周辺の回帰テストを強化
  • fixture 依存テストの運用安定化(自動 skip)

MIDI/MuseScore/LilyPond/MEI 連携強化リリース(ラウンドトリップ保持・All ZIP 出力・480統一)

26 Feb 16:00
366aaac

Choose a tag to compare

MIDI/MuseScore/LilyPond/MEI 連携強化リリース(ラウンドトリップ保持・All ZIP 出力・480統一)

今回のリリースでは、MusicXML を中心とした各フォーマット連携の安定化と、回帰テストの横展開強化を進めました。

主な変更点

1. フォーマット連携とラウンドトリップ品質の改善

  • LilyPond / MEI のラウンドトリップ保持を強化
    • articulation(staccato/accent)
    • grace
    • tuplet(start/stop・time-modification)
    • accidental 表示保持
  • MusicXML / MIDI / MuseScore 連携の安定化
    • 譜表・clef 判定ロジックの共通化
    • 暗黙ビームの共通ロジック適用
    • grace / tuplet 周辺の往復精度を改善

2. MIDI 周辺の実用改善

  • MIDI import に quantizeGrid=auto を追加
  • MIDI 出力デフォルトを musescore_parity に変更
  • 時間解像度(ticks/divisions)の既定値を 480 に統一
    • Playback
    • MIDI Export
    • 新規譜面 divisions

3. ダウンロード/UX 改善

  • Output に All ボタンを追加し、複数形式を ZIP で一括出力可能に
  • ZIP 出力まわりの実装を拡張(バンドル生成対応)
  • Source input UI を整理・拡張
    • MusicXML / MuseScore / VSQX / ABC / MEI / LilyPond

4. テストと回帰防止の強化

  • MuseScore / MIDI / ABC / LilyPond / MEI に対して
    • クロスフォーマット回帰テストを増強
    • 小節メタ保持の検証を拡張

5. ドキュメント更新

  • README / index / スクリーンショット更新

備考

  • 既存機能との互換性を意識しつつ、変換精度・再現性・検証網羅性を優先した更新です。
  • とくに MuseScore parity を重視した MIDI 系の既定値変更が含まれます。

MuseScore/MusicXML相互変換とMIDIパリティ強化リリース

25 Feb 16:20
39a5b7f

Choose a tag to compare

MuseScore/MusicXML相互変換とMIDIパリティ強化リリース

ハイライト

  • MuseScore ↔ MusicXML 変換の保持精度を大幅強化
    • 臨時記号・拍子記号(cut time含む)・表現記号・テンポ/ダイナミクス・technical系対応を拡充
  • MIDI export に musescore_parity プロファイルを追加
    • raw SMFライター導入
    • 同tick同pitch再発音の安定化(retrigger制御)
  • MIDI比較方針を実運用向けに更新
    • onset重視(厳格)+duration比率許容(1/2〜2)
    • moonlight診断のサンプリング方針を整理
  • ローカルの手本付きパリティ検証フローを強化
    • spot/unit/fixture を追加・整備
  • フルチェック導線を追加
    • npm run check:alltypecheck + test:all + build

含まれる主なPR/変更

  • MIDI比較方針の更新(onset重視+duration比率許容)とフルビルド導線整備
  • MIDI export に MuseScore parity プロファイル追加(raw SMFライター含む)
  • MuseScore↔MusicXML 記譜整合性強化(cut time、臨時記号、move/tick/track周辺)
  • technical / Expression / Tempo / Dynamic sound 対応拡張
  • ローカル parity テスト運用(手本付き)追加
  • VSQX連携のvendor同期導線追加と defaultLyric 制御反映
  • MusicXML取り込み時の和音/拍子/調号正規化改善
  • MusicXMLインポート時のPart内複数Staff分割(VSQX反映)

運用メモ

  • 推奨品質ゲート:
    • npm run check:all
  • 比較観点:
    • 発音タイミング(onset)を主判定
    • 長さ(duration)は比率許容で副判定
  • 一部ケース(例: 特定区間の局所乖離)は診断サンプリング方針で管理

既知事項

  • MuseScore由来データとの accidental 表示差(pitch同一・表記差)は一部残存する場合があります。
  • ローカル fixture 依存の spot テストは環境データ有無に影響されます。

多形式I/O強化(MuseScore / LilyPond / MEI / VSQX)とExport/Import体験の改善

24 Feb 16:00
9c81ce6

Choose a tag to compare

Release Title

多形式I/O強化(MuseScore / LilyPond / MEI / VSQX)とExport/Import体験の改善

Release Notes

今回のリリースは、入出力フォーマット対応の拡張と、編集〜Export導線の改善が中心です。

✨ 主な追加機能

  • VSQX連携を追加
    • utaformatix3-ts-plus IIFEを同梱
    • VSQX Import経路を追加
    • ExportにVSQXボタンを追加(MusicXML -> VSQX)
  • MuseScore(.mscx / .mscz)のImport/Export対応を拡張
  • LilyPond I/Oを実装・強化
  • MEI(Experimental)I/Oを追加
  • MusicXML Export設定に .xml 拡張子オプションを追加
  • MusicXML/MuseScore圧縮Exportオプションを追加

🔧 品質改善・挙動改善

  • MuseScore/MusicXML取り込みの記譜再現性を改善
    • スラー、タイ、トリル、オッターヴァ、連符、連桁、grace等
  • 弱起(pickup/anacrusis)の正規化改善
    • 0小節開始・implicit短小節の保持を強化
  • Import時の最小補完を追加
    • missing voice の no-op 保存を許容(編集対象のみ局所補完)
  • 再生/Export導線のUIを改善
    • 小節選択連動のEdit導線
    • SVG Export導線
    • Exportボタン構成の整理

🧪 テスト・保守

  • I/O関連ユニットテストを拡充
    • MuseScore / LilyPond / MEI / download-flow / load-flow / musicxml-io など
  • 仕様・チェックリスト・統合ドキュメントを更新

📚 ドキュメント更新

  • docs/integrations/utaformatix3-ts-plus.mikuscore.iife.js.md を追加・更新
  • I/O仕様書、UI仕様書、チェックリストを更新

備考

  • 変更量が大きく、複数フォーマットにまたがるため、既存ワークフロー(特にImport後の表示・Export結果)の再確認を推奨します。

Official MIDI Import Support and Enhanced ABC/MusicXML Round-Trip (Debug Visibility + Formatted Export)

19 Feb 23:54
d26fe54

Choose a tag to compare

Official MIDI Import Support and Enhanced ABC/MusicXML Round-Trip (Debug Visibility + Formatted Export)

Release Notes

This release summarizes major updates made after aba1a378b03b93cb0624e7dc7c30fea34f5c6c23.

Highlights

  • Added MIDI (.mid / .midi) import
    • MusicXML conversion with quantization, automatic voice split, and key/time/tempo handling
    • Improved track separation (separate parts even for same channel across different tracks)
  • Improved MIDI I/O round-trip stability
    • FF58 (time signature) / FF59 (key signature) support
    • Better CC (expression-related) reflection
    • Suppression of empty part generation
  • Strengthened ABC <-> MusicXML round-trip
    • Better compatibility for grace notes, slurs, tuplets, and accidentals
    • Tempo Q: support
    • Improved %@mks metadata preservation
  • Enhanced debug visibility
    • Added miscellaneous-field diagnostics (mks:midi-debug-*, mks:abc-debug-*)
    • Added troubleshooting guidance in README/spec docs
  • Improved MusicXML export formatting
    • Formatted output at export time for better readability
  • UI / import-export flow improvements
    • Input flow refinements
    • Better diagnostics for export failures
    • Documentation alignment and wording updates

Testing and Quality

  • Expanded MIDI/ABC unit tests
  • Added/enhanced golden round-trip tests:
    • MusicXML -> MIDI -> MusicXML
    • MusicXML -> ABC -> MusicXML

Documentation Updates

  • docs/spec/MIDI_IO.md
  • docs/spec/ABC_IO.md
  • docs/spec/PLAYBACK.md
  • README.md
  • docs/spec/SCREEN_SPEC.md and others

Changed Areas (excerpt)

  • Implementation:
    • src/ts/midi-io.ts
    • src/ts/abc-io.ts
    • src/ts/download-flow.ts
    • src/ts/musicxml-io.ts
    • src/ts/load-flow.ts
    • src/ts/playback-flow.ts
    • src/ts/main.ts
  • Tests:
    • tests/unit/midi-io.spec.ts
    • tests/unit/midi-roundtrip-golden.spec.ts
    • tests/unit/abc-io.spec.ts
    • tests/unit/abc-roundtrip-golden.spec.ts
  • Samples / Build artifacts:
    • src/samples/musicxml/sample1.musicxml
    • src/samples/musicxml/sample2.musicxml
    • src/ts/sampleXml.ts
    • src/ts/sampleXml2.ts
    • src/js/main.js
    • mikuscore.html

Release Title

MIDIインポート正式対応とABC/MusicXMLラウンドトリップ強化(デバッグ可視化・整形出力対応)

Release Notes

主要アップデート

  • MIDI (.mid / .midi) インポートを追加
    • MusicXML 変換(量子化・自動 voice 分離・調号/拍子/テンポ対応)
    • トラック分離の改善(同一チャンネルでもトラック別パート出力)
  • MIDI I/O の往復安定化
    • FF58(拍子)/ FF59(調号)対応
    • CC(表現系)反映改善
    • 空パート生成抑制
  • ABC <-> MusicXML ラウンドトリップ強化
    • 装飾音・スラー・連符・臨時記号の互換性向上
    • テンポ Q: 対応
    • %@mks メタ情報の保持強化
  • デバッグ可視化を強化
    • miscellaneous-field (mks:midi-debug-*, mks:abc-debug-*) を用いた解析情報を出力
    • 解析手順を README / spec に追記
  • MusicXML 出力整形の改善
    • エクスポート時に整形出力(可読性改善)
  • UI/入出力フロー改善
    • 入力フローの整理
    • エクスポート失敗時の診断表示改善
    • 設定/説明文書の整合性更新

テスト・品質

  • MIDI/ABC のユニットテスト拡充
  • MusicXML -> MIDI -> MusicXML / MusicXML -> ABC -> MusicXML のゴールデン往復テストを追加・強化

ドキュメント更新

  • docs/spec/MIDI_IO.md
  • docs/spec/ABC_IO.md
  • docs/spec/PLAYBACK.md
  • README.md
  • docs/spec/SCREEN_SPEC.md ほか

MXL Import, MIDI/Playback Enhancements, and Grand Staff Editing Improvements

16 Feb 10:50
aba1a37

Choose a tag to compare

MXL Import, MIDI/Playback Enhancements, and Grand Staff Editing Improvements

Release Notes

Focused on safer editing, stronger MusicXML→MIDI handling, and improved usability across Input/Score/Edit/Export.

Highlights

  • Added MXL (compressed MusicXML) import support.
  • Expanded MIDI generation fidelity by passing through more MusicXML details (tempo/control/program-related behavior and expression handling).
  • Improved quick playback behavior and stability, including better diagnostics and settings.
  • Added/updated grand staff editing support in core logic (staff-aware pitch handling and safer split behavior near backup/forward boundaries).
  • Improved validation and save diagnostics, including clearer invalid-duration context.
  • Enhanced Input flow:
    • better file load behavior
    • clearer failure messages
    • sample loading improvements
  • Improved Score/Edit workflow:
    • easier measure navigation
    • clearer apply/discard behavior
    • append-measure support in Score
  • Expanded MIDI & Playback settings UI:
    • more instrument presets
    • reset-to-defaults
    • optional override behavior
    • MIDI debug panel
  • Added/updated unit tests for core, MIDI I/O, and playback-flow regressions.

Notable Scope

  • Core: core/ScoreCore.ts, core/timeIndex.ts, core/validators.ts
  • Import/Export/Playback: src/ts/load-flow.ts, src/ts/mxl-io.ts, src/ts/midi-io.ts, src/ts/playback-flow.ts, src/ts/download-flow.ts
  • UI: mikuscore-src.html, src/ts/main.ts, src/css/app.css
  • Tests: tests/unit/core.spec.ts, tests/unit/midi-io.spec.ts, tests/unit/playback-flow.spec.ts

リリースタイトル

MXL読み込み対応・MIDI/Playback強化・グランドスタッフ編集改善

リリースノート

編集の安全性向上、MusicXML→MIDI 変換の強化、Input/Score/Edit/Export の使い勝手改善を中心に更新しています。

主な変更点

  • MXL(圧縮MusicXML)読み込みに対応
  • MusicXMLの情報をより活かした MIDI生成品質の向上
    • テンポ/コントロール/プログラム関連や表現情報の反映を拡張
  • 簡易Playbackの安定性・挙動改善
    • 診断表示や設定面も強化
  • core側で グランドスタッフ編集対応を改善
    • 音高変更時のstaff扱い
    • backup/forward境界付近でのsplit安全性改善
  • 保存・検証時の診断強化
    • invalid-duration時の文脈情報を明確化
  • Inputフロー改善
    • ファイル読み込み挙動の改善
    • 失敗時メッセージの明確化
    • サンプル読み込みの改善
  • Score/Edit導線の改善
    • 小節移動しやすさ向上
    • Apply/Discardの状態制御改善
    • Scoreから末尾小節追加機能を追加
  • MIDI & Playback設定UIの拡張
    • 音色プリセット拡充
    • 初期値リセット
    • 上書きオプション
    • MIDIデバッグ表示
  • core / MIDI I/O / playback-flow の 単体テスト拡充

主な対象ファイル

  • Core: core/ScoreCore.ts, core/timeIndex.ts, core/validators.ts
  • Import/Export/Playback: src/ts/load-flow.ts, src/ts/mxl-io.ts, src/ts/midi-io.ts, src/ts/playback-flow.ts, src/ts/download-flow.ts
  • UI: mikuscore-src.html, src/ts/main.ts, src/css/app.css
  • Tests: tests/unit/core.spec.ts, tests/unit/midi-io.spec.ts, tests/unit/playback-flow.spec.ts

mikuscore first release

15 Feb 13:45
36a1074

Choose a tag to compare

mikuscore

This is the first public release of mikuscore, a browser-only score editor focused on safe, reliable MusicXML editing.

Instead of maximizing features, mikuscore prioritizes preserving existing score structure and minimizing unintended changes.

Highlights

  • Browser-only workflow (no server required)
  • Import:
    • MusicXML (file / source input)
    • ABC (file / source input)
    • New score creation
  • Editing:
    • Full score preview
    • Measure-focused editing workflow
    • Pitch / accidental / duration operations
  • Export:
    • MusicXML
    • ABC
    • MIDI
  • Reliability-oriented core design:
    • Minimal patch editing
    • Preservation of unknown/unsupported elements
    • Preservation of <backup>, <forward>, and existing <beam>
    • Atomic rollback on failure

Screenshots

Input

Input

Score Preview

Score Preview

Measure Editing

Measure Editing

Export

Export

Notes

  • This release targets practical editing in a lightweight, browser-first form.
  • Smartphone usage is supported.
  • Complex engraving workflows should still be handled in full-featured notation software when needed.

Repository

https://github.com/igapyon/mikuscore

Screenshots

screen1 screen2 screen3 screen4

mikuscore (日本語説明)

mikuscore の初の公開リリースです。
mikuscore は、既存 MusicXML を安全かつ信頼性高く編集することを重視した、ブラウザ完結型のスコアエディタです。

多機能化よりも、既存譜面構造を壊さず、不要な変更を最小化することを優先しています。

ハイライト

  • ブラウザのみで動作(サーバ不要)
  • 入力:
    • MusicXML(ファイル / ソース入力)
    • ABC(ファイル / ソース入力)
    • 新規譜面作成
  • 編集:
    • フルスコアプレビュー
    • 小節単位の編集ワークフロー
    • 音名 / 変化記号 / 音価の操作
  • 出力:
    • MusicXML
    • ABC
    • MIDI
  • 信頼性重視のコア設計:
    • 最小パッチ編集
    • unknown/unsupported 要素の保持
    • <backup> / <forward> / 既存 <beam> の保持
    • 失敗時の原子的ロールバック

補足

  • このリリースは、軽量でブラウザファーストな実用編集を目的としています。
  • スマートフォン利用をサポートしています。
  • 複雑な浄書作業は、必要に応じてフル機能の楽譜ソフトで行ってください。

リポジトリ

https://github.com/igapyon/mikuscore