|
@@ -780,17 +780,28 @@ export const formatXML = (xml: string, xmlUrl?: string): string => {
|
|
};
|
|
};
|
|
|
|
|
|
/** 转换简谱的全休止符和二分休止符 */
|
|
/** 转换简谱的全休止符和二分休止符 */
|
|
-// export const transferJianNote = (measure: any, divisions, beats) => {
|
|
|
|
-// const notes = measure.getElementsByTagName("note")
|
|
|
|
-// for (const note of notes) {
|
|
|
|
-// const noteType = note.getElementsByTagName("type")?.[0]?.textContent || '';
|
|
|
|
-// if (noteType === 'whole') {
|
|
|
|
-// measure.removeChild(note);
|
|
|
|
-// } else if (noteType === 'half') {
|
|
|
|
-// measure.removeChild(note);
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
|
|
+export const transferJianNote = (measure: any, divisions: number, beats: number) => {
|
|
|
|
+ const notes = measure.getElementsByTagName("note")
|
|
|
|
+ for (const note of notes) {
|
|
|
|
+ const noteType = note.getElementsByTagName("type")?.[0]?.textContent || '';
|
|
|
|
+ if (noteType === 'whole') {
|
|
|
|
+ let quarterNoteNumber = 1;
|
|
|
|
+ while (quarterNoteNumber <= beats) {
|
|
|
|
+ const newnote = document.createElement('note');
|
|
|
|
+ newnote.innerHTML = `
|
|
|
|
+ <rest></rest>
|
|
|
|
+ <duration>${divisions}</duration>
|
|
|
|
+ <voice>1</voice>
|
|
|
|
+ <type>quarter</type>`
|
|
|
|
+ measure.insertBefore(newnote, note);
|
|
|
|
+ quarterNoteNumber += 1;
|
|
|
|
+ };
|
|
|
|
+ measure.removeChild(note);
|
|
|
|
+ } else if (noteType === 'half') {
|
|
|
|
+ // measure.removeChild(note);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
|
|
/** 获取所有音符的时值,以及格式化音符 */
|
|
/** 获取所有音符的时值,以及格式化音符 */
|
|
export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|