| 
					
				 | 
			
			
				@@ -12,7 +12,7 @@ import { showConfirmDialog, showToast } from "vant"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import Keys from "../component/keys"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { Collapse, CollapseItem } from "@varlet/ui"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { IAbc, IMeasure, INote, INoteActive } from "../types"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { ABC_DATA, createMeasure, createNote, renderMeasures } from "./runtime"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { ABC_DATA, createMeasure, createNote, moveNoteKey, renderMeasures } from "./runtime"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import TheIcon from "/src/components/The-icon"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { cloneDeep } from "lodash"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import TheSpeed from "./component/the-speed"; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -298,6 +298,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				key: "K:C", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				visualTranspose: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				transposeKey: "K:C", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				subjectCode: "acoustic_grand_piano", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				measures: initMusic(30), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} as IAbc, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -895,15 +896,24 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		/** 移调 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		const handleMoveKey = (item: (typeof ABC_DATA.key)[0]) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if (data.moveKeyType === "down") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				abcData.abc.visualTranspose = item.step < 0 ? item.step : item.step - 12; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} else if (data.moveKeyType === "up") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				abcData.abc.visualTranspose = item.step >= 0 ? item.step : item.step + 12; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				abcData.abc.visualTranspose = item.step; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 将所有的音符移调 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for (let i = 0; i < abcData.abc.measures.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				const measure = abcData.abc.measures[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				for (let j = 0; j < measure.notes.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					const note = measure.notes[j]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (note.content == "z") continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					note.content = moveNoteKey(note.accidental + note.content, item.step, data.moveKeyType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			// console.log(abcData.abc.visualTranspose, item.step, item.value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			abcData.abc.transposeKey = item.value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// if (data.moveKeyType === "down") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 	abcData.abc.visualTranspose = item.step < 0 ? item.step : item.step - 12; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// } else if (data.moveKeyType === "up") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 	abcData.abc.visualTranspose = item.step >= 0 ? item.step : item.step + 12; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 	abcData.abc.visualTranspose = item.step; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// // console.log(abcData.abc.visualTranspose, item.step, item.value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			abcData.abc.key = item.value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			popup.moveKeyShow = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			handleResetRender(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -973,6 +983,9 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					abcData.abc.speed = abc.speed || "Q:1/4=60"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					abcData.abc.visualTranspose = abc.visualTranspose || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					abcData.abc.transposeKey = abc.transposeKey || "K:C"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					abcData.abc.subjectCode = abc.subjectCode || "acoustic_grand_piano"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					const _instruments = ABCJS.synth.instrumentIndexToName.indexOf(abcData.abc.subjectCode as any) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					abcData.synthOptions.program = _instruments > -1 ? _instruments : 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					abcData.abc.measures = abc.measures || initMusic(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					console.log("🚀 ~ abcData.abc:", abcData.abc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1334,10 +1347,10 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 											options={instruments.value} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 											v-model:value={abcData.synthOptions.program} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 											onUpdate:value={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+												togglePlay("pause"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 												popup.selectSubjectShow = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 												getAudioSource(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 												handleResetRender(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-												togglePlay("pause"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 												togglePlay("reset"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 											}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										></NSelect> 
			 |