@onjmin/dtm 0.1.13 → 0.1.14
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 +7 -2
- package/dist/index.d.ts +7 -2
- package/dist/index.js +8 -9
- package/dist/index.mjs +8 -9
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -861,8 +861,13 @@ declare const getMidiBPM: (midi: unknown) => number;
|
|
|
861
861
|
*/
|
|
862
862
|
declare const extractMidiPlacements: (midi: unknown, selectedTrackIndices: number[]) => MidiExtraction;
|
|
863
863
|
/**
|
|
864
|
-
*
|
|
865
|
-
*
|
|
864
|
+
* advancedモード用:選択された MIDI トラックを選択順に DAW トラックへ上から詰める
|
|
865
|
+
* (k番目に選んだトラック → trackIds[k])。自動分類なし。
|
|
866
|
+
*
|
|
867
|
+
* MIDIの実トラック番号ではなく「選択順の位置」で割り当てるため、先頭のテンポ/コンダクタ
|
|
868
|
+
* トラックや、空・ドラムだけのトラックが混ざっていても DAW レーンがずれない
|
|
869
|
+
* (これらは選択リストに出ない/選ばれないので位置を消費しない)。
|
|
870
|
+
* ドラム(ch10 = channel 9)のノートはスキップする。
|
|
866
871
|
*/
|
|
867
872
|
declare const extractMidiPlacementsByTrack: (midi: unknown, selectedIndices: number[], trackIds: string[]) => MidiExtraction;
|
|
868
873
|
type ExportMidiOptions = {
|
package/dist/index.d.ts
CHANGED
|
@@ -861,8 +861,13 @@ declare const getMidiBPM: (midi: unknown) => number;
|
|
|
861
861
|
*/
|
|
862
862
|
declare const extractMidiPlacements: (midi: unknown, selectedTrackIndices: number[]) => MidiExtraction;
|
|
863
863
|
/**
|
|
864
|
-
*
|
|
865
|
-
*
|
|
864
|
+
* advancedモード用:選択された MIDI トラックを選択順に DAW トラックへ上から詰める
|
|
865
|
+
* (k番目に選んだトラック → trackIds[k])。自動分類なし。
|
|
866
|
+
*
|
|
867
|
+
* MIDIの実トラック番号ではなく「選択順の位置」で割り当てるため、先頭のテンポ/コンダクタ
|
|
868
|
+
* トラックや、空・ドラムだけのトラックが混ざっていても DAW レーンがずれない
|
|
869
|
+
* (これらは選択リストに出ない/選ばれないので位置を消費しない)。
|
|
870
|
+
* ドラム(ch10 = channel 9)のノートはスキップする。
|
|
866
871
|
*/
|
|
867
872
|
declare const extractMidiPlacementsByTrack: (midi: unknown, selectedIndices: number[], trackIds: string[]) => MidiExtraction;
|
|
868
873
|
type ExportMidiOptions = {
|
package/dist/index.js
CHANGED
|
@@ -3077,13 +3077,11 @@ var extractMidiPlacementsByTrack = (midi, selectedIndices, trackIds) => {
|
|
|
3077
3077
|
const bpm = getMidiBPM(midi);
|
|
3078
3078
|
const ticksPerStep = ticksPerBeat / STEPS_PER_BEAT;
|
|
3079
3079
|
const placements = [];
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
if (!selectedSet.has(midiIdx)) continue;
|
|
3083
|
-
if (midiIdx >= trackIds.length) continue;
|
|
3084
|
-
const trackId = trackIds[midiIdx];
|
|
3080
|
+
selectedIndices.forEach((midiIdx, lane) => {
|
|
3081
|
+
if (lane >= trackIds.length) return;
|
|
3085
3082
|
const trackData = track[midiIdx];
|
|
3086
|
-
if (!trackData)
|
|
3083
|
+
if (!trackData) return;
|
|
3084
|
+
const trackId = trackIds[lane];
|
|
3087
3085
|
const active = [];
|
|
3088
3086
|
let currentTime = 0;
|
|
3089
3087
|
for (const event of trackData.event) {
|
|
@@ -3118,7 +3116,7 @@ var extractMidiPlacementsByTrack = (midi, selectedIndices, trackIds) => {
|
|
|
3118
3116
|
velocity: note.velocity
|
|
3119
3117
|
});
|
|
3120
3118
|
}
|
|
3121
|
-
}
|
|
3119
|
+
});
|
|
3122
3120
|
return { placements, bpm };
|
|
3123
3121
|
};
|
|
3124
3122
|
var to2byte = (n) => [(n & 65280) >> 8, n & 255];
|
|
@@ -3159,6 +3157,7 @@ var exportMIDI = (options) => {
|
|
|
3159
3157
|
const midiTracks = [];
|
|
3160
3158
|
tracks.forEach((track, ch) => {
|
|
3161
3159
|
if (track.notes.length === 0) return;
|
|
3160
|
+
const channel = ch < 9 ? ch : ch + 1 & 15;
|
|
3162
3161
|
const events = [];
|
|
3163
3162
|
for (const n of track.notes) {
|
|
3164
3163
|
const startTick = Math.round(n.startStep * tickPerStep);
|
|
@@ -3168,8 +3167,8 @@ var exportMIDI = (options) => {
|
|
|
3168
3167
|
const vel = Math.round(
|
|
3169
3168
|
(n.velocity ?? DEFAULT_VELOCITY) * (track.volume ?? 100) / 100
|
|
3170
3169
|
);
|
|
3171
|
-
events.push({ t: startTick, m: [144 |
|
|
3172
|
-
events.push({ t: endTick, m: [144 |
|
|
3170
|
+
events.push({ t: startTick, m: [144 | channel, n.pitch, vel] });
|
|
3171
|
+
events.push({ t: endTick, m: [144 | channel, n.pitch, 0] });
|
|
3173
3172
|
}
|
|
3174
3173
|
events.sort((a, b) => a.t - b.t);
|
|
3175
3174
|
midiTracks.push(events);
|
package/dist/index.mjs
CHANGED
|
@@ -2972,13 +2972,11 @@ var extractMidiPlacementsByTrack = (midi, selectedIndices, trackIds) => {
|
|
|
2972
2972
|
const bpm = getMidiBPM(midi);
|
|
2973
2973
|
const ticksPerStep = ticksPerBeat / STEPS_PER_BEAT;
|
|
2974
2974
|
const placements = [];
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
if (!selectedSet.has(midiIdx)) continue;
|
|
2978
|
-
if (midiIdx >= trackIds.length) continue;
|
|
2979
|
-
const trackId = trackIds[midiIdx];
|
|
2975
|
+
selectedIndices.forEach((midiIdx, lane) => {
|
|
2976
|
+
if (lane >= trackIds.length) return;
|
|
2980
2977
|
const trackData = track[midiIdx];
|
|
2981
|
-
if (!trackData)
|
|
2978
|
+
if (!trackData) return;
|
|
2979
|
+
const trackId = trackIds[lane];
|
|
2982
2980
|
const active = [];
|
|
2983
2981
|
let currentTime = 0;
|
|
2984
2982
|
for (const event of trackData.event) {
|
|
@@ -3013,7 +3011,7 @@ var extractMidiPlacementsByTrack = (midi, selectedIndices, trackIds) => {
|
|
|
3013
3011
|
velocity: note.velocity
|
|
3014
3012
|
});
|
|
3015
3013
|
}
|
|
3016
|
-
}
|
|
3014
|
+
});
|
|
3017
3015
|
return { placements, bpm };
|
|
3018
3016
|
};
|
|
3019
3017
|
var to2byte = (n) => [(n & 65280) >> 8, n & 255];
|
|
@@ -3054,6 +3052,7 @@ var exportMIDI = (options) => {
|
|
|
3054
3052
|
const midiTracks = [];
|
|
3055
3053
|
tracks.forEach((track, ch) => {
|
|
3056
3054
|
if (track.notes.length === 0) return;
|
|
3055
|
+
const channel = ch < 9 ? ch : ch + 1 & 15;
|
|
3057
3056
|
const events = [];
|
|
3058
3057
|
for (const n of track.notes) {
|
|
3059
3058
|
const startTick = Math.round(n.startStep * tickPerStep);
|
|
@@ -3063,8 +3062,8 @@ var exportMIDI = (options) => {
|
|
|
3063
3062
|
const vel = Math.round(
|
|
3064
3063
|
(n.velocity ?? DEFAULT_VELOCITY) * (track.volume ?? 100) / 100
|
|
3065
3064
|
);
|
|
3066
|
-
events.push({ t: startTick, m: [144 |
|
|
3067
|
-
events.push({ t: endTick, m: [144 |
|
|
3065
|
+
events.push({ t: startTick, m: [144 | channel, n.pitch, vel] });
|
|
3066
|
+
events.push({ t: endTick, m: [144 | channel, n.pitch, 0] });
|
|
3068
3067
|
}
|
|
3069
3068
|
events.sort((a, b) => a.t - b.t);
|
|
3070
3069
|
midiTracks.push(events);
|
package/package.json
CHANGED