@onjmin/dtm 0.1.79 → 0.1.81
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 +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +10 -3
- package/dist/index.mjs +10 -3
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1862,6 +1862,10 @@ type DtmStudio = {
|
|
|
1862
1862
|
* getDaw() で現在の DawInstance を取得できる(mountPresetSelect の getDaw に渡せる)。
|
|
1863
1863
|
*/
|
|
1864
1864
|
mountModeSwitch: (target: HTMLElement, options: ModeSwitchOptions) => ModeSwitchInstance;
|
|
1865
|
+
/** マスタ音量を 0-100 で変更する。 */
|
|
1866
|
+
setMasterVolume: (volume: number) => void;
|
|
1867
|
+
/** マスタ音量を 0-100 で変更する(`setMasterVolume` のエイリアス)。 */
|
|
1868
|
+
setVolume: (volume: number) => void;
|
|
1865
1869
|
/** AudioContext を閉じ、生成物を破棄する。 */
|
|
1866
1870
|
dispose: () => void;
|
|
1867
1871
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1862,6 +1862,10 @@ type DtmStudio = {
|
|
|
1862
1862
|
* getDaw() で現在の DawInstance を取得できる(mountPresetSelect の getDaw に渡せる)。
|
|
1863
1863
|
*/
|
|
1864
1864
|
mountModeSwitch: (target: HTMLElement, options: ModeSwitchOptions) => ModeSwitchInstance;
|
|
1865
|
+
/** マスタ音量を 0-100 で変更する。 */
|
|
1866
|
+
setMasterVolume: (volume: number) => void;
|
|
1867
|
+
/** マスタ音量を 0-100 で変更する(`setMasterVolume` のエイリアス)。 */
|
|
1868
|
+
setVolume: (volume: number) => void;
|
|
1865
1869
|
/** AudioContext を閉じ、生成物を破棄する。 */
|
|
1866
1870
|
dispose: () => void;
|
|
1867
1871
|
};
|
package/dist/index.js
CHANGED
|
@@ -7062,9 +7062,10 @@ var loadDrumFont = (ctx, pitch) => {
|
|
|
7062
7062
|
return p;
|
|
7063
7063
|
};
|
|
7064
7064
|
var BAR_SEP = /[|ll→]/;
|
|
7065
|
+
var toHalfWidth = (str) => str.replace(/[!-~]/g, (ch) => String.fromCharCode(ch.charCodeAt(0) - 65248)).replace(/ /g, " ");
|
|
7065
7066
|
var NON_EVENT_RE = /^[=_]$|^N\.C\.$|^N$/i;
|
|
7066
7067
|
var buildDisplayLines = (chords, eventsCount) => {
|
|
7067
|
-
const rawLines = chords.split("\n").map((l) => l.trim()).filter((l) => l);
|
|
7068
|
+
const rawLines = toHalfWidth(chords).split("\n").map((l) => l.trim()).filter((l) => l);
|
|
7068
7069
|
const displayLines = [];
|
|
7069
7070
|
let eventCounter = 0;
|
|
7070
7071
|
let colorIdx = 0;
|
|
@@ -7798,7 +7799,7 @@ var mountChordPlayer = (target, chords, options = {}) => {
|
|
|
7798
7799
|
if (beatAbsSec >= now - 0.01) {
|
|
7799
7800
|
const isDownbeat = beat % 4 === 0;
|
|
7800
7801
|
const pitch = isDownbeat ? DRUM_KEYS.kick : DRUM_KEYS.hihatClosed;
|
|
7801
|
-
const velocity = isDownbeat ? 0.7 : 0.45;
|
|
7802
|
+
const velocity = (isDownbeat ? 0.7 : 0.45) * (masterVolume / 100);
|
|
7802
7803
|
const wafDrum = _drumCache.get(pitch);
|
|
7803
7804
|
if (wafDrum) {
|
|
7804
7805
|
wafDrum.play({
|
|
@@ -14027,7 +14028,7 @@ var createDtmStudio = async (options = {}) => {
|
|
|
14027
14028
|
masterGain.connect(audioCtx.destination);
|
|
14028
14029
|
const drumGain = audioCtx.createGain();
|
|
14029
14030
|
drumGain.gain.value = options.drumVolume ?? 1;
|
|
14030
|
-
drumGain.connect(
|
|
14031
|
+
drumGain.connect(masterGain);
|
|
14031
14032
|
const resumeAudio = () => {
|
|
14032
14033
|
if (audioCtx.state === "closed") return Promise.resolve();
|
|
14033
14034
|
return audioCtx.resume();
|
|
@@ -14793,6 +14794,10 @@ var createDtmStudio = async (options = {}) => {
|
|
|
14793
14794
|
mountedEditors.length = 0;
|
|
14794
14795
|
void audioCtx.close();
|
|
14795
14796
|
};
|
|
14797
|
+
const setMasterVolume = (volume) => {
|
|
14798
|
+
const g = Math.max(0, Math.min(100, volume)) / 100;
|
|
14799
|
+
masterGain.gain.setValueAtTime(g, audioCtx.currentTime);
|
|
14800
|
+
};
|
|
14796
14801
|
return {
|
|
14797
14802
|
audioContext: audioCtx,
|
|
14798
14803
|
singingVoices,
|
|
@@ -14809,6 +14814,8 @@ var createDtmStudio = async (options = {}) => {
|
|
|
14809
14814
|
defaultPreset,
|
|
14810
14815
|
mountPresetSelect,
|
|
14811
14816
|
mountModeSwitch,
|
|
14817
|
+
setMasterVolume,
|
|
14818
|
+
setVolume: setMasterVolume,
|
|
14812
14819
|
dispose
|
|
14813
14820
|
};
|
|
14814
14821
|
};
|
package/dist/index.mjs
CHANGED
|
@@ -6939,9 +6939,10 @@ var loadDrumFont = (ctx, pitch) => {
|
|
|
6939
6939
|
return p;
|
|
6940
6940
|
};
|
|
6941
6941
|
var BAR_SEP = /[|ll→]/;
|
|
6942
|
+
var toHalfWidth = (str) => str.replace(/[!-~]/g, (ch) => String.fromCharCode(ch.charCodeAt(0) - 65248)).replace(/ /g, " ");
|
|
6942
6943
|
var NON_EVENT_RE = /^[=_]$|^N\.C\.$|^N$/i;
|
|
6943
6944
|
var buildDisplayLines = (chords, eventsCount) => {
|
|
6944
|
-
const rawLines = chords.split("\n").map((l) => l.trim()).filter((l) => l);
|
|
6945
|
+
const rawLines = toHalfWidth(chords).split("\n").map((l) => l.trim()).filter((l) => l);
|
|
6945
6946
|
const displayLines = [];
|
|
6946
6947
|
let eventCounter = 0;
|
|
6947
6948
|
let colorIdx = 0;
|
|
@@ -7675,7 +7676,7 @@ var mountChordPlayer = (target, chords, options = {}) => {
|
|
|
7675
7676
|
if (beatAbsSec >= now - 0.01) {
|
|
7676
7677
|
const isDownbeat = beat % 4 === 0;
|
|
7677
7678
|
const pitch = isDownbeat ? DRUM_KEYS.kick : DRUM_KEYS.hihatClosed;
|
|
7678
|
-
const velocity = isDownbeat ? 0.7 : 0.45;
|
|
7679
|
+
const velocity = (isDownbeat ? 0.7 : 0.45) * (masterVolume / 100);
|
|
7679
7680
|
const wafDrum = _drumCache.get(pitch);
|
|
7680
7681
|
if (wafDrum) {
|
|
7681
7682
|
wafDrum.play({
|
|
@@ -13903,7 +13904,7 @@ var createDtmStudio = async (options = {}) => {
|
|
|
13903
13904
|
masterGain.connect(audioCtx.destination);
|
|
13904
13905
|
const drumGain = audioCtx.createGain();
|
|
13905
13906
|
drumGain.gain.value = options.drumVolume ?? 1;
|
|
13906
|
-
drumGain.connect(
|
|
13907
|
+
drumGain.connect(masterGain);
|
|
13907
13908
|
const resumeAudio = () => {
|
|
13908
13909
|
if (audioCtx.state === "closed") return Promise.resolve();
|
|
13909
13910
|
return audioCtx.resume();
|
|
@@ -14669,6 +14670,10 @@ var createDtmStudio = async (options = {}) => {
|
|
|
14669
14670
|
mountedEditors.length = 0;
|
|
14670
14671
|
void audioCtx.close();
|
|
14671
14672
|
};
|
|
14673
|
+
const setMasterVolume = (volume) => {
|
|
14674
|
+
const g = Math.max(0, Math.min(100, volume)) / 100;
|
|
14675
|
+
masterGain.gain.setValueAtTime(g, audioCtx.currentTime);
|
|
14676
|
+
};
|
|
14672
14677
|
return {
|
|
14673
14678
|
audioContext: audioCtx,
|
|
14674
14679
|
singingVoices,
|
|
@@ -14685,6 +14690,8 @@ var createDtmStudio = async (options = {}) => {
|
|
|
14685
14690
|
defaultPreset,
|
|
14686
14691
|
mountPresetSelect,
|
|
14687
14692
|
mountModeSwitch,
|
|
14693
|
+
setMasterVolume,
|
|
14694
|
+
setVolume: setMasterVolume,
|
|
14688
14695
|
dispose
|
|
14689
14696
|
};
|
|
14690
14697
|
};
|
package/package.json
CHANGED