@onjmin/dtm 1.0.3 → 1.0.4

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
@@ -8850,8 +8850,8 @@ var mountMmlPlayer = (target, mml, options = {}) => {
8850
8850
  ...normalizeDrumPatterns(options.drumPatterns ?? {})
8851
8851
  };
8852
8852
  const drumPatternName = meta.drum ?? "none";
8853
- const trackVolume = meta.volume ?? options.volume ?? 100;
8854
- let masterVolume = options.masterVolume ?? 50;
8853
+ const trackVolume = options.volume ?? 100;
8854
+ let masterVolume = meta.volume ?? options.masterVolume ?? 50;
8855
8855
  const drumVolume = meta.drumVolume ?? 80;
8856
8856
  const colors = options.trackColors ?? DEFAULT_TRACK_COLORS;
8857
8857
  const useSynth = options.synth ?? !options.onPlayNote;
@@ -9157,6 +9157,9 @@ var mountMmlPlayer = (target, mml, options = {}) => {
9157
9157
  singingVoices: options.singingVoices,
9158
9158
  drumPatterns: options.drumPatterns,
9159
9159
  volume: trackVolume,
9160
+ // 解説モーダル内の試聴サンプルも親と同じマスタ音量で鳴らす
9161
+ // (サンプル側のMMLに `#volume=` があればそちらが優先される)。
9162
+ masterVolume,
9160
9163
  // 解説モーダル内の試聴サンプルは規約同意を要求しない。
9161
9164
  skipConsent: true,
9162
9165
  // 再帰的なモーダル生成を防ぐ。
@@ -19355,6 +19358,30 @@ var createDtmStudio = async (options = {}) => {
19355
19358
  }
19356
19359
  return strip;
19357
19360
  };
19361
+ const createTrackStripApplier = (meta) => {
19362
+ const applied = /* @__PURE__ */ new Set();
19363
+ return (stripId, trackIdx) => {
19364
+ if (applied.has(stripId)) return;
19365
+ applied.add(stripId);
19366
+ const strip = getChannelStrip(stripId);
19367
+ const comp = meta.trackCompression?.[trackIdx];
19368
+ if (comp !== void 0) strip.setCompression(comp);
19369
+ const width = meta.trackWidth?.[trackIdx];
19370
+ if (width !== void 0) strip.setWidth(width);
19371
+ const eqLow = meta.trackEqLow?.[trackIdx];
19372
+ if (eqLow !== void 0) strip.setEqLow(eqLow);
19373
+ const eqMid = meta.trackEqMid?.[trackIdx];
19374
+ if (eqMid !== void 0) strip.setEqMid(eqMid);
19375
+ const eqHigh = meta.trackEqHigh?.[trackIdx];
19376
+ if (eqHigh !== void 0) strip.setEqHigh(eqHigh);
19377
+ const reverbSend = meta.trackReverbSend?.[trackIdx];
19378
+ if (reverbSend !== void 0) strip.setReverbSend(reverbSend);
19379
+ const delaySend = meta.trackDelaySend?.[trackIdx];
19380
+ if (delaySend !== void 0) strip.setDelaySend(delaySend);
19381
+ const pan = meta.trackPan?.[trackIdx];
19382
+ if (pan !== void 0) strip.setPan(panToStereo(pan));
19383
+ };
19384
+ };
19358
19385
  const resumeAudio = () => {
19359
19386
  if (audioCtx.state === "closed") return Promise.resolve();
19360
19387
  return audioCtx.resume();
@@ -19922,8 +19949,10 @@ var createDtmStudio = async (options = {}) => {
19922
19949
  ),
19923
19950
  loadPlayerTrackInstruments()
19924
19951
  ]);
19952
+ const applyTrackStrip = createTrackStripApplier(meta);
19925
19953
  const playPlayerNote = (e) => {
19926
19954
  const idx = Number(e.trackId);
19955
+ applyTrackStrip(e.trackId, idx);
19927
19956
  const overrideKey = playerTrackInstKeys.get(idx);
19928
19957
  let sfInst;
19929
19958
  if (overrideKey) {
@@ -20009,8 +20038,10 @@ var createDtmStudio = async (options = {}) => {
20009
20038
  ),
20010
20039
  loadPlayerTrackInstruments()
20011
20040
  ]);
20041
+ const applyTrackStrip = createTrackStripApplier(meta);
20012
20042
  const playPlayerNote = (e) => {
20013
- const { trackIdx, role } = resolveTrackIdxAndRole(e.trackId);
20043
+ const { trackIdx } = resolveTrackIdxAndRole(e.trackId);
20044
+ applyTrackStrip(e.trackId, trackIdx);
20014
20045
  const overrideKey = playerTrackInstKeys.get(trackIdx);
20015
20046
  let sfInst;
20016
20047
  if (overrideKey) {
@@ -20089,8 +20120,10 @@ var createDtmStudio = async (options = {}) => {
20089
20120
  ),
20090
20121
  loadPlayerTrackInstruments()
20091
20122
  ]);
20123
+ const applyTrackStrip = createTrackStripApplier(meta);
20092
20124
  const playPlayerNote = (e) => {
20093
- const { trackIdx, role } = resolveTrackIdxAndRole(e.trackId);
20125
+ const { trackIdx } = resolveTrackIdxAndRole(e.trackId);
20126
+ applyTrackStrip(e.trackId, trackIdx);
20094
20127
  const overrideKey = playerTrackInstKeys.get(trackIdx);
20095
20128
  let sfInst;
20096
20129
  if (overrideKey) {
package/dist/index.mjs CHANGED
@@ -8717,8 +8717,8 @@ var mountMmlPlayer = (target, mml, options = {}) => {
8717
8717
  ...normalizeDrumPatterns(options.drumPatterns ?? {})
8718
8718
  };
8719
8719
  const drumPatternName = meta.drum ?? "none";
8720
- const trackVolume = meta.volume ?? options.volume ?? 100;
8721
- let masterVolume = options.masterVolume ?? 50;
8720
+ const trackVolume = options.volume ?? 100;
8721
+ let masterVolume = meta.volume ?? options.masterVolume ?? 50;
8722
8722
  const drumVolume = meta.drumVolume ?? 80;
8723
8723
  const colors = options.trackColors ?? DEFAULT_TRACK_COLORS;
8724
8724
  const useSynth = options.synth ?? !options.onPlayNote;
@@ -9024,6 +9024,9 @@ var mountMmlPlayer = (target, mml, options = {}) => {
9024
9024
  singingVoices: options.singingVoices,
9025
9025
  drumPatterns: options.drumPatterns,
9026
9026
  volume: trackVolume,
9027
+ // 解説モーダル内の試聴サンプルも親と同じマスタ音量で鳴らす
9028
+ // (サンプル側のMMLに `#volume=` があればそちらが優先される)。
9029
+ masterVolume,
9027
9030
  // 解説モーダル内の試聴サンプルは規約同意を要求しない。
9028
9031
  skipConsent: true,
9029
9032
  // 再帰的なモーダル生成を防ぐ。
@@ -19221,6 +19224,30 @@ var createDtmStudio = async (options = {}) => {
19221
19224
  }
19222
19225
  return strip;
19223
19226
  };
19227
+ const createTrackStripApplier = (meta) => {
19228
+ const applied = /* @__PURE__ */ new Set();
19229
+ return (stripId, trackIdx) => {
19230
+ if (applied.has(stripId)) return;
19231
+ applied.add(stripId);
19232
+ const strip = getChannelStrip(stripId);
19233
+ const comp = meta.trackCompression?.[trackIdx];
19234
+ if (comp !== void 0) strip.setCompression(comp);
19235
+ const width = meta.trackWidth?.[trackIdx];
19236
+ if (width !== void 0) strip.setWidth(width);
19237
+ const eqLow = meta.trackEqLow?.[trackIdx];
19238
+ if (eqLow !== void 0) strip.setEqLow(eqLow);
19239
+ const eqMid = meta.trackEqMid?.[trackIdx];
19240
+ if (eqMid !== void 0) strip.setEqMid(eqMid);
19241
+ const eqHigh = meta.trackEqHigh?.[trackIdx];
19242
+ if (eqHigh !== void 0) strip.setEqHigh(eqHigh);
19243
+ const reverbSend = meta.trackReverbSend?.[trackIdx];
19244
+ if (reverbSend !== void 0) strip.setReverbSend(reverbSend);
19245
+ const delaySend = meta.trackDelaySend?.[trackIdx];
19246
+ if (delaySend !== void 0) strip.setDelaySend(delaySend);
19247
+ const pan = meta.trackPan?.[trackIdx];
19248
+ if (pan !== void 0) strip.setPan(panToStereo(pan));
19249
+ };
19250
+ };
19224
19251
  const resumeAudio = () => {
19225
19252
  if (audioCtx.state === "closed") return Promise.resolve();
19226
19253
  return audioCtx.resume();
@@ -19788,8 +19815,10 @@ var createDtmStudio = async (options = {}) => {
19788
19815
  ),
19789
19816
  loadPlayerTrackInstruments()
19790
19817
  ]);
19818
+ const applyTrackStrip = createTrackStripApplier(meta);
19791
19819
  const playPlayerNote = (e) => {
19792
19820
  const idx = Number(e.trackId);
19821
+ applyTrackStrip(e.trackId, idx);
19793
19822
  const overrideKey = playerTrackInstKeys.get(idx);
19794
19823
  let sfInst;
19795
19824
  if (overrideKey) {
@@ -19875,8 +19904,10 @@ var createDtmStudio = async (options = {}) => {
19875
19904
  ),
19876
19905
  loadPlayerTrackInstruments()
19877
19906
  ]);
19907
+ const applyTrackStrip = createTrackStripApplier(meta);
19878
19908
  const playPlayerNote = (e) => {
19879
- const { trackIdx, role } = resolveTrackIdxAndRole(e.trackId);
19909
+ const { trackIdx } = resolveTrackIdxAndRole(e.trackId);
19910
+ applyTrackStrip(e.trackId, trackIdx);
19880
19911
  const overrideKey = playerTrackInstKeys.get(trackIdx);
19881
19912
  let sfInst;
19882
19913
  if (overrideKey) {
@@ -19955,8 +19986,10 @@ var createDtmStudio = async (options = {}) => {
19955
19986
  ),
19956
19987
  loadPlayerTrackInstruments()
19957
19988
  ]);
19989
+ const applyTrackStrip = createTrackStripApplier(meta);
19958
19990
  const playPlayerNote = (e) => {
19959
- const { trackIdx, role } = resolveTrackIdxAndRole(e.trackId);
19991
+ const { trackIdx } = resolveTrackIdxAndRole(e.trackId);
19992
+ applyTrackStrip(e.trackId, trackIdx);
19960
19993
  const overrideKey = playerTrackInstKeys.get(trackIdx);
19961
19994
  let sfInst;
19962
19995
  if (overrideKey) {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "author": "onjmin",
3
3
  "license": "MIT",
4
4
  "name": "@onjmin/dtm",
5
- "version": "1.0.3",
5
+ "version": "1.0.4",
6
6
  "description": "MMLを中間言語に用いた、モバイルファーストなDAW / ピアノロール打ち込みコンポーネント",
7
7
  "homepage": "https://onjmin.github.io/dtm",
8
8
  "repository": {