@onjmin/dtm 0.1.69 → 0.1.70

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/dist/index.js CHANGED
@@ -13949,6 +13949,23 @@ var TRACK_ROLES = [
13949
13949
  "t13",
13950
13950
  "t14"
13951
13951
  ];
13952
+ var resolveTrackIdxAndRole = (trackId) => {
13953
+ const roleIdx = TRACK_ROLES.indexOf(trackId);
13954
+ if (roleIdx >= 0) {
13955
+ return { trackIdx: roleIdx, role: trackId };
13956
+ }
13957
+ if (trackId.startsWith("t")) {
13958
+ const parsed2 = Number(trackId.slice(1));
13959
+ const validIdx2 = Number.isNaN(parsed2) ? 0 : parsed2;
13960
+ return {
13961
+ trackIdx: validIdx2,
13962
+ role: TRACK_ROLES[validIdx2] ?? `t${validIdx2}`
13963
+ };
13964
+ }
13965
+ const parsed = Number(trackId);
13966
+ const validIdx = Number.isNaN(parsed) ? 0 : parsed;
13967
+ return { trackIdx: validIdx, role: TRACK_ROLES[validIdx] ?? `t${validIdx}` };
13968
+ };
13952
13969
  var resolveDefaultVoiceWorkerUrl = () => {
13953
13970
  try {
13954
13971
  return new URL("./voice-worker.js", import_meta.url).href;
@@ -14512,19 +14529,19 @@ var createDtmStudio = async (options = {}) => {
14512
14529
  loadPlayerTrackInstruments()
14513
14530
  ]);
14514
14531
  const playPlayerNote = (e) => {
14515
- const idx = Number(e.trackId);
14516
- const overrideKey = playerTrackInstKeys.get(idx);
14532
+ const { trackIdx, role } = resolveTrackIdxAndRole(e.trackId);
14533
+ const overrideKey = playerTrackInstKeys.get(trackIdx);
14517
14534
  let sfInst;
14518
14535
  if (overrideKey) {
14519
14536
  sfInst = soundFonts.get(overrideKey);
14520
14537
  } else {
14521
- const role = getRoleForTrackIndex(
14522
- idx,
14538
+ const roleFromIdx = getRoleForTrackIndex(
14539
+ trackIdx,
14523
14540
  isAdvancedMode ? "advanced" : "simple"
14524
14541
  );
14525
14542
  sfInst = resolveSoundFont(
14526
14543
  playerPreset,
14527
- role,
14544
+ roleFromIdx,
14528
14545
  isAdvancedMode ? "advanced" : "simple"
14529
14546
  );
14530
14547
  }
@@ -14561,8 +14578,7 @@ var createDtmStudio = async (options = {}) => {
14561
14578
  isAdvancedMode ? "advanced" : "simple"
14562
14579
  );
14563
14580
  const playPlayerNote = (e) => {
14564
- const trackIdx = Number(e.trackId);
14565
- const role = TRACK_ROLES[trackIdx] ?? "melody";
14581
+ const { role } = resolveTrackIdxAndRole(e.trackId);
14566
14582
  let sfInst = resolveSoundFont(
14567
14583
  playerPreset,
14568
14584
  role,
@@ -14602,8 +14618,7 @@ var createDtmStudio = async (options = {}) => {
14602
14618
  });
14603
14619
  };
14604
14620
  const playNoteEvent = (e) => {
14605
- const idx = Number(e.trackId);
14606
- const role = TRACK_ROLES[idx] ?? "melody";
14621
+ const { role } = resolveTrackIdxAndRole(e.trackId);
14607
14622
  let sfInst = resolveSoundFont(defaultPreset, role, "simple");
14608
14623
  if (!sfInst) {
14609
14624
  void loadPreset(defaultPreset, [role], "simple");
package/dist/index.mjs CHANGED
@@ -13825,6 +13825,23 @@ var TRACK_ROLES = [
13825
13825
  "t13",
13826
13826
  "t14"
13827
13827
  ];
13828
+ var resolveTrackIdxAndRole = (trackId) => {
13829
+ const roleIdx = TRACK_ROLES.indexOf(trackId);
13830
+ if (roleIdx >= 0) {
13831
+ return { trackIdx: roleIdx, role: trackId };
13832
+ }
13833
+ if (trackId.startsWith("t")) {
13834
+ const parsed2 = Number(trackId.slice(1));
13835
+ const validIdx2 = Number.isNaN(parsed2) ? 0 : parsed2;
13836
+ return {
13837
+ trackIdx: validIdx2,
13838
+ role: TRACK_ROLES[validIdx2] ?? `t${validIdx2}`
13839
+ };
13840
+ }
13841
+ const parsed = Number(trackId);
13842
+ const validIdx = Number.isNaN(parsed) ? 0 : parsed;
13843
+ return { trackIdx: validIdx, role: TRACK_ROLES[validIdx] ?? `t${validIdx}` };
13844
+ };
13828
13845
  var resolveDefaultVoiceWorkerUrl = () => {
13829
13846
  try {
13830
13847
  return new URL("./voice-worker.js", import.meta.url).href;
@@ -14388,19 +14405,19 @@ var createDtmStudio = async (options = {}) => {
14388
14405
  loadPlayerTrackInstruments()
14389
14406
  ]);
14390
14407
  const playPlayerNote = (e) => {
14391
- const idx = Number(e.trackId);
14392
- const overrideKey = playerTrackInstKeys.get(idx);
14408
+ const { trackIdx, role } = resolveTrackIdxAndRole(e.trackId);
14409
+ const overrideKey = playerTrackInstKeys.get(trackIdx);
14393
14410
  let sfInst;
14394
14411
  if (overrideKey) {
14395
14412
  sfInst = soundFonts.get(overrideKey);
14396
14413
  } else {
14397
- const role = getRoleForTrackIndex(
14398
- idx,
14414
+ const roleFromIdx = getRoleForTrackIndex(
14415
+ trackIdx,
14399
14416
  isAdvancedMode ? "advanced" : "simple"
14400
14417
  );
14401
14418
  sfInst = resolveSoundFont(
14402
14419
  playerPreset,
14403
- role,
14420
+ roleFromIdx,
14404
14421
  isAdvancedMode ? "advanced" : "simple"
14405
14422
  );
14406
14423
  }
@@ -14437,8 +14454,7 @@ var createDtmStudio = async (options = {}) => {
14437
14454
  isAdvancedMode ? "advanced" : "simple"
14438
14455
  );
14439
14456
  const playPlayerNote = (e) => {
14440
- const trackIdx = Number(e.trackId);
14441
- const role = TRACK_ROLES[trackIdx] ?? "melody";
14457
+ const { role } = resolveTrackIdxAndRole(e.trackId);
14442
14458
  let sfInst = resolveSoundFont(
14443
14459
  playerPreset,
14444
14460
  role,
@@ -14478,8 +14494,7 @@ var createDtmStudio = async (options = {}) => {
14478
14494
  });
14479
14495
  };
14480
14496
  const playNoteEvent = (e) => {
14481
- const idx = Number(e.trackId);
14482
- const role = TRACK_ROLES[idx] ?? "melody";
14497
+ const { role } = resolveTrackIdxAndRole(e.trackId);
14483
14498
  let sfInst = resolveSoundFont(defaultPreset, role, "simple");
14484
14499
  if (!sfInst) {
14485
14500
  void loadPreset(defaultPreset, [role], "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.69",
5
+ "version": "0.1.70",
6
6
  "description": "MMLを中間言語に用いた、モバイルファーストなDAW / ピアノロール打ち込みコンポーネント",
7
7
  "homepage": "https://onjmin.github.io/dtm",
8
8
  "repository": {