@onjmin/dtm 0.1.14 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -38,7 +38,7 @@ studio.mountPlayer(document.getElementById("player"), daw.getMML().full);
38
38
  | モード | トラック | MIDI 取り込み | 伴奏(コード進行)UI |
39
39
  | --- | --- | --- | --- |
40
40
  | `simple` | メロディー / サブメロ / ベース / 伴奏 の 4 本 | 各トラックの特徴から役割へ**自動分類** | `chord` トラックに表示(歌詞欄の代わり) |
41
- | `advanced` | TRACK 01〜1616 | MIDI トラックを**1:1 マッピング** | なし(全トラックが通常のノート+歌詞トラック) |
41
+ | `advanced` | TRACK 01〜1515 本(フラットな連番) | MIDI トラックを**1:1 マッピング** | なし(全トラックが通常のノート+歌詞トラック) |
42
42
 
43
43
  ```ts
44
44
  import {
@@ -62,6 +62,26 @@ studio.mountEditor(editorEl, { mode: "advanced", tracks: TRACKS_ADVANCED });
62
62
  - MIDI のドラム(ch10)はピアノロールで編集できないため、取り込み時の**トラック選択 UI には出ません**。
63
63
  - `mode` / `tracks` は低レベル API の `mountDAW` でも同じく指定できます。
64
64
 
65
+ ### 備考: トラック採番と MIDI チャンネルの対応(暫定仕様)
66
+
67
+ `advanced` の `@n` / タブ名は **MML 仕様に合わせたフラットな連番**(`@0`〜`@14` / TRACK 01〜15、欠番なし)です。
68
+ 「ch10 = ドラム」という MIDI の慣習は内部モデルには持ち込まず、**MIDI 入出力の変換時にだけ**扱います。
69
+
70
+ - **出力**: レーン index → MIDI チャンネルに変換する際、打楽器ch(内部 `channel 9` = 1始まり ch10)を避けます。
71
+ 結果、TRACK 01〜09 → ch1〜9 / **TRACK 10〜15 → ch11〜16** に書き出されます(タブ番号と MIDI ch は
72
+ 10 番以降ズレますが、これは出力時の変換詳細です)。15 レーン ⇄ 15 個の非打楽器ch がちょうど 1:1 で、
73
+ チャンネル衝突は起きません。
74
+ - **入力**: `channel 9`(ドラム)のノートは取り込まず、ドラムだけのトラックは選択 UI にも出しません。
75
+ 選択したトラックは**選択順に上から**レーンへ詰めます(MIDI の実トラック番号やテンポトラックの有無に
76
+ 左右されません)。
77
+ - ドラム自体はノートレーンではなく、別系統の**ドラム設定**で編集します。
78
+
79
+ > 経緯: 当初は「タブ番号 = MIDI チャンネル番号」に揃え、ドラムの ch10 をタブの欠番にする案も検討しましたが、
80
+ > このアプリの正規フォーマットは MML(0 始まり・フラット・ドラムch非依存)であり、MIDI は境界の交換
81
+ > フォーマットに過ぎません。MIDI の慣習を内部採番に漏らすと MML の一貫性が崩れる(モード間で採番が割れる、
82
+ > 永続化される MML に欠番が残る等)ため、**内部は MML 仕様に寄せ、ch10=ドラムの面倒は変換層に閉じ込める**
83
+ > 方針に決めました。
84
+
65
85
  ## 低レベル API(`mountDAW` / 注入式)
66
86
 
67
87
  本体は音を持たない設計で、`onPlayNote` / `onPlayDrum` に自前のシンセを繋ぐ
package/dist/index.d.mts CHANGED
@@ -621,7 +621,13 @@ type DawInstance = {
621
621
 
622
622
  /** シンプルモード(4トラック)— 役割別に自動分類してMIDIを読み込む */
623
623
  declare const TRACKS_SIMPLE: TrackConfig[];
624
- /** 上級者モード(16トラック)— MIDIトラックを1:1で扱う */
624
+ /**
625
+ * advancedモード(15トラック)— MIDIトラックを1:1で扱う。
626
+ * 採番はMML仕様に合わせてフラットな連番(@0〜@14 / TRACK 01〜15、欠番なし)。
627
+ * MIDIの「ch10=ドラム」の慣習は内部モデルに持ち込まず、MIDI入出力の変換時にだけ扱う:
628
+ * 出力は打楽器ch(内部 channel 9)を避けて割り当て(TRACK 10以降は ch11〜16 へ)、
629
+ * 入力は channel 9 のドラムを除外する。ドラム自体は別系統の「ドラム設定」で編集する。
630
+ */
625
631
  declare const TRACKS_ADVANCED: TrackConfig[];
626
632
  /**
627
633
  * DAWコンポーネントをマウントする。
package/dist/index.d.ts CHANGED
@@ -621,7 +621,13 @@ type DawInstance = {
621
621
 
622
622
  /** シンプルモード(4トラック)— 役割別に自動分類してMIDIを読み込む */
623
623
  declare const TRACKS_SIMPLE: TrackConfig[];
624
- /** 上級者モード(16トラック)— MIDIトラックを1:1で扱う */
624
+ /**
625
+ * advancedモード(15トラック)— MIDIトラックを1:1で扱う。
626
+ * 採番はMML仕様に合わせてフラットな連番(@0〜@14 / TRACK 01〜15、欠番なし)。
627
+ * MIDIの「ch10=ドラム」の慣習は内部モデルに持ち込まず、MIDI入出力の変換時にだけ扱う:
628
+ * 出力は打楽器ch(内部 channel 9)を避けて割り当て(TRACK 10以降は ch11〜16 へ)、
629
+ * 入力は channel 9 のドラムを除外する。ドラム自体は別系統の「ドラム設定」で編集する。
630
+ */
625
631
  declare const TRACKS_ADVANCED: TrackConfig[];
626
632
  /**
627
633
  * DAWコンポーネントをマウントする。
package/dist/index.js CHANGED
@@ -5529,13 +5529,6 @@ var TRACKS_ADVANCED = [
5529
5529
  color: [100, 255, 160],
5530
5530
  instrument: 14,
5531
5531
  volume: 100
5532
- },
5533
- {
5534
- id: "t15",
5535
- name: "TRACK 16",
5536
- color: [255, 150, 200],
5537
- instrument: 15,
5538
- volume: 100
5539
5532
  }
5540
5533
  ];
5541
5534
  var DEFAULT_TRACKS = TRACKS_SIMPLE;
package/dist/index.mjs CHANGED
@@ -5424,13 +5424,6 @@ var TRACKS_ADVANCED = [
5424
5424
  color: [100, 255, 160],
5425
5425
  instrument: 14,
5426
5426
  volume: 100
5427
- },
5428
- {
5429
- id: "t15",
5430
- name: "TRACK 16",
5431
- color: [255, 150, 200],
5432
- instrument: 15,
5433
- volume: 100
5434
5427
  }
5435
5428
  ];
5436
5429
  var DEFAULT_TRACKS = TRACKS_SIMPLE;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "author": "onjmin",
3
3
  "license": "MIT",
4
4
  "name": "@onjmin/dtm",
5
- "version": "0.1.14",
5
+ "version": "0.1.15",
6
6
  "description": "MMLを中間言語に用いた、モバイルファーストなDAW / ピアノロール打ち込みコンポーネント",
7
7
  "homepage": "https://onjmin.github.io/dtm",
8
8
  "repository": {
@@ -53,6 +53,7 @@
53
53
  },
54
54
  "dependencies": {
55
55
  "@onjmin/chord-parser": "1.0.2",
56
+ "@onjmin/dtm": "0.1.14",
56
57
  "@onjmin/koe": "1.0.3"
57
58
  },
58
59
  "scripts": {