Skip to content

Commit

Permalink
concatからpushに変更、spliceを使用してデータを書き換える形に変更
Browse files Browse the repository at this point in the history
  • Loading branch information
sigprogramming committed Apr 22, 2024
1 parent 4fffb7f commit a0c3260
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 20 deletions.
12 changes: 6 additions & 6 deletions src/components/Sing/SequencerPitch.vue
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ const updateOriginalPitchDataSectionMap = async () => {
const frameRate = editFrameRate.value; // f0(元のピッチ)は編集フレームレートで表示する
const singingGuidesValue = singingGuides.value;
let tempData: number[] = [];
const tempData: number[] = [];
for (const singingGuide of singingGuidesValue) {
// TODO: 補間を行うようにする
if (singingGuide.frameRate !== frameRate) {
Expand All @@ -283,10 +283,10 @@ const updateOriginalPitchDataSectionMap = async () => {
// 無声子音区間以外のf0をtempDataにコピーする
if (tempData.length < endFrame) {
const arrayToConcat = new Array(endFrame - tempData.length).fill(
const valuesToPush = new Array(endFrame - tempData.length).fill(
VALUE_INDICATING_NO_DATA,
);
tempData = tempData.concat(arrayToConcat);
tempData.push(...valuesToPush);
}
for (let i = 0; i < f0.length; i++) {
const phoneme = framePhonemes[i];
Expand All @@ -308,20 +308,20 @@ const updatePitchEditDataSectionMap = async () => {
// 1次元のデータからデータ区間のマップを生成して、pitchEditDataSectionMapに設定する
const frameRate = editFrameRate.value;
const tempData = [...pitchEditData.value];
// プレビュー中のピッチ編集があれば、適用する
let tempData = [...pitchEditData.value];
if (previewPitchEdit.value != undefined) {
const previewPitchEditType = previewPitchEdit.value.type;
if (previewPitchEditType === "draw") {
const previewData = previewPitchEdit.value.data;
const previewStartFrame = previewPitchEdit.value.startFrame;
const previewEndFrame = previewStartFrame + previewData.length;
if (tempData.length < previewEndFrame) {
const arrayToConcat = new Array(previewEndFrame - tempData.length).fill(
const valuesToPush = new Array(previewEndFrame - tempData.length).fill(
VALUE_INDICATING_NO_DATA,
);
tempData = tempData.concat(arrayToConcat);
tempData.push(...valuesToPush);
}
for (let i = 0; i < previewData.length; i++) {
tempData[previewStartFrame + i] = previewData[i];
Expand Down
20 changes: 6 additions & 14 deletions src/store/singing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -521,18 +521,14 @@ export const singingStore = createPartialStore<SingingStoreTypes>({
{ data, startFrame }: { data: number[]; startFrame: number },
) {
const pitchEditData = state.tracks[selectedTrackIndex].pitchEditData;
let tempData = [...pitchEditData];
const endFrame = startFrame + data.length;
if (tempData.length < endFrame) {
const arrayToConcat = new Array(endFrame - tempData.length).fill(
if (pitchEditData.length < endFrame) {
const valuesToPush = new Array(endFrame - pitchEditData.length).fill(
VALUE_INDICATING_NO_DATA,
);
tempData = tempData.concat(arrayToConcat);
valuesToPush.push(...valuesToPush);
}
for (let i = 0; i < data.length; i++) {
tempData[startFrame + i] = data[i];
}
state.tracks[selectedTrackIndex].pitchEditData = tempData;
pitchEditData.splice(startFrame, data.length, ...data);
},
},

Expand All @@ -542,12 +538,8 @@ export const singingStore = createPartialStore<SingingStoreTypes>({
{ startFrame, frameLength }: { startFrame: number; frameLength: number },
) {
const pitchEditData = state.tracks[selectedTrackIndex].pitchEditData;
const tempData = [...pitchEditData];
const endFrame = Math.min(startFrame + frameLength, tempData.length);
for (let i = startFrame; i < endFrame; i++) {
tempData[i] = VALUE_INDICATING_NO_DATA;
}
state.tracks[selectedTrackIndex].pitchEditData = tempData;
const endFrame = Math.min(startFrame + frameLength, pitchEditData.length);
pitchEditData.fill(VALUE_INDICATING_NO_DATA, startFrame, endFrame);
},
},

Expand Down

0 comments on commit a0c3260

Please sign in to comment.