@onjmin/dtm 0.1.100 → 0.1.101

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.d.mts CHANGED
@@ -1885,7 +1885,7 @@ type MmlPlayerOptions = {
1885
1885
  onResumeAudio?: () => void | Promise<void>;
1886
1886
  /** 内蔵の簡易square-wave synthを使うか。既定は onPlayNote 未指定なら true */
1887
1887
  synth?: boolean;
1888
- /** マスタ音量 0-100。既定100。 */
1888
+ /** マスタ音量 0-100。既定50(DAW編集画面の全体音量スライダーの既定値に合わせている)。 */
1889
1889
  masterVolume?: number;
1890
1890
  /** BPM未検出時のフォールバック。既定120 */
1891
1891
  defaultBpm?: number;
package/dist/index.d.ts CHANGED
@@ -1885,7 +1885,7 @@ type MmlPlayerOptions = {
1885
1885
  onResumeAudio?: () => void | Promise<void>;
1886
1886
  /** 内蔵の簡易square-wave synthを使うか。既定は onPlayNote 未指定なら true */
1887
1887
  synth?: boolean;
1888
- /** マスタ音量 0-100。既定100。 */
1888
+ /** マスタ音量 0-100。既定50(DAW編集画面の全体音量スライダーの既定値に合わせている)。 */
1889
1889
  masterVolume?: number;
1890
1890
  /** BPM未検出時のフォールバック。既定120 */
1891
1891
  defaultBpm?: number;
package/dist/index.js CHANGED
@@ -8851,7 +8851,7 @@ var mountMmlPlayer = (target, mml, options = {}) => {
8851
8851
  };
8852
8852
  const drumPatternName = meta.drum ?? "none";
8853
8853
  const trackVolume = meta.volume ?? options.volume ?? 100;
8854
- let masterVolume = options.masterVolume ?? 100;
8854
+ let masterVolume = 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;
@@ -18219,6 +18219,8 @@ var playSingingMML = async (mml, options = {}) => {
18219
18219
  const drumVolume = meta.drumVolume ?? 80;
18220
18220
  const trackVolume = meta.volume ?? 100;
18221
18221
  let masterVolume = options.volume ?? 100;
18222
+ const trackVolumePercent = () => trackVolume / 100 * masterVolume;
18223
+ const masterGainScalar = () => trackVolume / 100 * (masterVolume / 100);
18222
18224
  const trackIndices = [...new Set(placements.map((p) => p.trackIndex))].sort(
18223
18225
  (a, b) => a - b
18224
18226
  );
@@ -18233,7 +18235,7 @@ var playSingingMML = async (mml, options = {}) => {
18233
18235
  }));
18234
18236
  return {
18235
18237
  id: TRACK_ID_BY_INDEX2[index] ?? `t${index}`,
18236
- volume: trackVolume / 100 * masterVolume,
18238
+ volume: trackVolumePercent(),
18237
18239
  notes
18238
18240
  };
18239
18241
  });
@@ -18270,7 +18272,7 @@ var playSingingMML = async (mml, options = {}) => {
18270
18272
  return {
18271
18273
  id: TRACK_ID_BY_INDEX2[index] ?? `t${index}`,
18272
18274
  model: lt.model,
18273
- volume: vocalVolumeToGain(lt.volume ?? DEFAULT_VOCAL_VOLUME),
18275
+ volume: vocalVolumeToGain(lt.volume ?? DEFAULT_VOCAL_VOLUME) * masterGainScalar(),
18274
18276
  pan: panToStereo(lt.pan ?? DEFAULT_PAN),
18275
18277
  vibrato: lt.vibrato,
18276
18278
  reverbSend: (lt.reverb ?? 0) / 100,
@@ -18305,7 +18307,7 @@ var playSingingMML = async (mml, options = {}) => {
18305
18307
  synth?.playNote(e);
18306
18308
  },
18307
18309
  onPlayDrum: (e) => {
18308
- const velocity = e.velocity * (drumVolume / 100) * (trackVolume / 100) * (masterVolume / 100);
18310
+ const velocity = e.velocity * (drumVolume / 100) * masterGainScalar();
18309
18311
  options.onPlayDrum?.({ ...e, velocity });
18310
18312
  synth?.playDrum({ ...e, velocity });
18311
18313
  },
@@ -18339,9 +18341,8 @@ var playSingingMML = async (mml, options = {}) => {
18339
18341
  };
18340
18342
  const setVolume = (volume) => {
18341
18343
  masterVolume = volume;
18342
- const effectiveTrackVolume = trackVolume / 100 * masterVolume;
18343
- for (const t of seqTracks) t.volume = effectiveTrackVolume;
18344
- voices?.setVolume(trackVolume / 100 * (masterVolume / 100));
18344
+ for (const t of seqTracks) t.volume = trackVolumePercent();
18345
+ voices?.setVolume(masterGainScalar());
18345
18346
  };
18346
18347
  const suspend = () => ctx.suspend();
18347
18348
  const resume = () => ctx.resume();
@@ -18427,7 +18428,7 @@ var playSingingMML = async (mml, options = {}) => {
18427
18428
  loopLengthSec = (loopEndStep - loopStartStep) * secondsPerStep;
18428
18429
  }
18429
18430
  seq.start(options.startStep ?? 0);
18430
- voices.setVolume(trackVolume / 100 * (masterVolume / 100));
18431
+ voices.setVolume(masterGainScalar());
18431
18432
  voices.startStream(streamTracks, seq.getStartTime(), {
18432
18433
  loopLengthSec,
18433
18434
  loopStartSec
package/dist/index.mjs CHANGED
@@ -8718,7 +8718,7 @@ var mountMmlPlayer = (target, mml, options = {}) => {
8718
8718
  };
8719
8719
  const drumPatternName = meta.drum ?? "none";
8720
8720
  const trackVolume = meta.volume ?? options.volume ?? 100;
8721
- let masterVolume = options.masterVolume ?? 100;
8721
+ let masterVolume = 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;
@@ -18086,6 +18086,8 @@ var playSingingMML = async (mml, options = {}) => {
18086
18086
  const drumVolume = meta.drumVolume ?? 80;
18087
18087
  const trackVolume = meta.volume ?? 100;
18088
18088
  let masterVolume = options.volume ?? 100;
18089
+ const trackVolumePercent = () => trackVolume / 100 * masterVolume;
18090
+ const masterGainScalar = () => trackVolume / 100 * (masterVolume / 100);
18089
18091
  const trackIndices = [...new Set(placements.map((p) => p.trackIndex))].sort(
18090
18092
  (a, b) => a - b
18091
18093
  );
@@ -18100,7 +18102,7 @@ var playSingingMML = async (mml, options = {}) => {
18100
18102
  }));
18101
18103
  return {
18102
18104
  id: TRACK_ID_BY_INDEX2[index] ?? `t${index}`,
18103
- volume: trackVolume / 100 * masterVolume,
18105
+ volume: trackVolumePercent(),
18104
18106
  notes
18105
18107
  };
18106
18108
  });
@@ -18137,7 +18139,7 @@ var playSingingMML = async (mml, options = {}) => {
18137
18139
  return {
18138
18140
  id: TRACK_ID_BY_INDEX2[index] ?? `t${index}`,
18139
18141
  model: lt.model,
18140
- volume: vocalVolumeToGain(lt.volume ?? DEFAULT_VOCAL_VOLUME),
18142
+ volume: vocalVolumeToGain(lt.volume ?? DEFAULT_VOCAL_VOLUME) * masterGainScalar(),
18141
18143
  pan: panToStereo(lt.pan ?? DEFAULT_PAN),
18142
18144
  vibrato: lt.vibrato,
18143
18145
  reverbSend: (lt.reverb ?? 0) / 100,
@@ -18172,7 +18174,7 @@ var playSingingMML = async (mml, options = {}) => {
18172
18174
  synth?.playNote(e);
18173
18175
  },
18174
18176
  onPlayDrum: (e) => {
18175
- const velocity = e.velocity * (drumVolume / 100) * (trackVolume / 100) * (masterVolume / 100);
18177
+ const velocity = e.velocity * (drumVolume / 100) * masterGainScalar();
18176
18178
  options.onPlayDrum?.({ ...e, velocity });
18177
18179
  synth?.playDrum({ ...e, velocity });
18178
18180
  },
@@ -18206,9 +18208,8 @@ var playSingingMML = async (mml, options = {}) => {
18206
18208
  };
18207
18209
  const setVolume = (volume) => {
18208
18210
  masterVolume = volume;
18209
- const effectiveTrackVolume = trackVolume / 100 * masterVolume;
18210
- for (const t of seqTracks) t.volume = effectiveTrackVolume;
18211
- voices?.setVolume(trackVolume / 100 * (masterVolume / 100));
18211
+ for (const t of seqTracks) t.volume = trackVolumePercent();
18212
+ voices?.setVolume(masterGainScalar());
18212
18213
  };
18213
18214
  const suspend = () => ctx.suspend();
18214
18215
  const resume = () => ctx.resume();
@@ -18294,7 +18295,7 @@ var playSingingMML = async (mml, options = {}) => {
18294
18295
  loopLengthSec = (loopEndStep - loopStartStep) * secondsPerStep;
18295
18296
  }
18296
18297
  seq.start(options.startStep ?? 0);
18297
- voices.setVolume(trackVolume / 100 * (masterVolume / 100));
18298
+ voices.setVolume(masterGainScalar());
18298
18299
  voices.startStream(streamTracks, seq.getStartTime(), {
18299
18300
  loopLengthSec,
18300
18301
  loopStartSec
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.100",
5
+ "version": "0.1.101",
6
6
  "description": "MMLを中間言語に用いた、モバイルファーストなDAW / ピアノロール打ち込みコンポーネント",
7
7
  "homepage": "https://onjmin.github.io/dtm",
8
8
  "repository": {