|
@@ -60,6 +60,7 @@ export default defineComponent({
|
|
|
|
|
|
/** 生成评测曲谱数据 */
|
|
|
const formatTimes = () => {
|
|
|
+ const difftime = state.times[0]?.difftime || 0;
|
|
|
let starTime = 0;
|
|
|
let ListenMode = false;
|
|
|
let dontEvaluatingMode = false;
|
|
@@ -73,7 +74,7 @@ export default defineComponent({
|
|
|
times = state.times.filter((n: any, index: number) => {
|
|
|
return index >= startIndex && index <= endIndex;
|
|
|
});
|
|
|
- starTime = times[0].time;
|
|
|
+ starTime = times[0].sourceRelativeTime || times[0].relativeTime;
|
|
|
console.log("🚀 ~ times", times);
|
|
|
}
|
|
|
let measureIndex = -1;
|
|
@@ -82,8 +83,9 @@ export default defineComponent({
|
|
|
const item = times[index];
|
|
|
const note = getNoteByMeasuresSlursStart(item);
|
|
|
const rate = state.speed / state.originSpeed;
|
|
|
- const start = item.time - starTime;
|
|
|
- const end = item.endtime - starTime;
|
|
|
+
|
|
|
+ const start = difftime + (item.sourceRelativeTime || item.relativeTime) - starTime;
|
|
|
+ const end = difftime + (item.sourceRelaEndtime || item.relaEndtime) - starTime;
|
|
|
const isStaccato = note.noteElement.voiceEntry.isStaccato();
|
|
|
const noteRate = isStaccato ? 0.5 : 1;
|
|
|
if (note.formatLyricsEntries.contains("Play") || note.formatLyricsEntries.contains("Play...")) {
|
|
@@ -109,19 +111,19 @@ export default defineComponent({
|
|
|
// console.log(note.measureOpenIndex, item.measureOpenIndex, note);
|
|
|
// console.log("skip", skip)
|
|
|
if (note.measureOpenIndex != recordMeasure) {
|
|
|
- measureIndex++;
|
|
|
- recordMeasure = note.measureOpenIndex;
|
|
|
- }
|
|
|
+ measureIndex++
|
|
|
+ recordMeasure = note.measureOpenIndex
|
|
|
+ }
|
|
|
const data = {
|
|
|
- timeStamp: start / rate,
|
|
|
- duration: (end / rate - start / rate) * noteRate,
|
|
|
+ timeStamp: (start * 1000) / rate,
|
|
|
+ duration: ((end * 1000) / rate - (start * 1000) / rate) * noteRate,
|
|
|
frequency: item.frequency,
|
|
|
nextFrequency: item.nextFrequency,
|
|
|
prevFrequency: item.prevFrequency,
|
|
|
// 重复的情况index会自然累加,render的index是谱面渲染的index
|
|
|
measureIndex: measureIndex,
|
|
|
measureRenderIndex: item.measureListIndex,
|
|
|
- dontEvaluating: ListenMode || dontEvaluatingMode,
|
|
|
+ dontEvaluating: ListenMode || dontEvaluatingMode || item.skipMode,
|
|
|
musicalNotesIndex: index,
|
|
|
denominator: note.noteElement?.Length.denominator,
|
|
|
isOrnament: !!note?.voiceEntry?.ornamentContainer,
|