|  | @@ -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>
 |