flash钢琴简谱转换程序
昨天玩了個flash版鋼琴http://www.51240.com/gangqin/,感覺挺不錯的,覺得沒簡譜不好彈,就做了個flash的簡譜轉換程序,把簡譜轉為flash鋼琴的按鍵鍵位,好了
 上代碼,swf鋼琴文件在這里http://dl.dbank.com/c0clm72xpd
 ///轉換案例《天空之城》
 /*
 671'71'3'736561'5334341'31'1'7#4#477671'71'3'736561'53341'71'2'2'3'1'1'76#57#561'2'3'2'3'5'2'1'71'3'7(3'和聲)671'71'2'1'554'3'2'1'3'3'6'6'5'5'3'2'1'1'2'1'2'5'3'3'6'6'5'5'3'2'1'1'2'1'2'76
 
 
 MNONOQNJMLMOL
 JJKJKOJOON#K#KNN
 MNONOQNJMLMOL
 JJKONOPPQOONM#LN#LM
 OPQPQSPONOQN(Q和聲)
 MNONOPOLLRQPOQQTTSSQPO
 OPOPSQQTTSSQPO
 OPOPNMMNONOQNJMLMOL
 JJKJKOJOON#K#KNN
 MNONOQNJMLMOL
 JJKONOPPQOONM#LN#LM
 OPQPQSPONOQN(Q和聲)
 MNONOPOLLRQPOQQTTSSQPO
 OPOPSQQTTSSQPOOPOPNM
 */
 
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Text;
 using System.Windows.Forms;
 
 
 namespace WindowsApplication2
 {
 ? ? public partial class Form1 : Form
 ? ? {
 ? ? ? ? public Form1()
 ? ? ? ? {
 ? ? ? ? ? ? InitializeComponent();
 ? ? ? ? }
 //flash鋼琴音節轉換 a-g低音 h-n中音 o-u高音 v-z超高音
 //1-A 1-H 1-O 1-V?
 //2-B 2-I 2-P 2-W?
 //3-C 3-J 3-Q 3-X?
 //4-D 4-K 4-R 4-Y?
 //5-E 5-L 5-S 5-Z?
 //6-F 6-M 6-T 6-?
 //7-G 7-N 7-U 7-?
 ? ? ? ? private static char chbase0 = 'H';
 ? ? ? ? private static char chbase = 'O';
 ? ? ? ? private static char chbase2 = 'V';
 ? ? ? ? private static char chbase3 = 'V';
 ? ? ? ? private void button1_Click(object sender, EventArgs e)
 ? ? ? ? {
 ? ? ? ? ? ? string strshuziyinjie=richTextBox1.Text;
 
 
 
 
 ? ? ? ? ? ? //前序處理模塊 ?形如153456+41234+4+3+2+1
 ? ? ? ? ? ? if(char.IsDigit(strshuziyinjie[0]))//第0個字符
 ? ? ? ? ? ? ? ? richTextBox2.Text+=Convert.ToChar(Convert.ToInt16(chbase)+(strshuziyinjie[0]-'1'));//數字轉字母
 
 
 ? ? ? ? ? ? for(int i=1; i<strshuziyinjie.Length; i++)
 ? ? ? ? ? ? {
 ? ? ? ? ? ? ? ? if(char.IsDigit(strshuziyinjie[i]))
 ? ? ? ? ? ? ? ? {
 ? ? ? ? ? ? ? ? ? ? if(strshuziyinjie[i-1].Equals('+'))//前一個字符是'+',則轉為高音節 如+7
 ? ? ? ? ? ? ? ? ? ? ? ? richTextBox2.Text += Convert.ToChar(Convert.ToInt16(chbase2) + (strshuziyinjie[i] - '1'));//數字轉字母
 ? ? ? ? ? ? ? ? ? ? else
 ? ? ? ? ? ? ? ? ? ? ? ? richTextBox2.Text += Convert.ToChar(Convert.ToInt16(chbase) + (strshuziyinjie[i] - '1'));//數字轉字母
 ? ? ? ? ? ? ? ? }
 
 
 ? ? ? ? ? ? ? ? if (strshuziyinjie[i].Equals(' '))
 ? ? ? ? ? ? ? ? ? ? richTextBox2.Text += ' ';
 ? ? ? ? ? ? }
 
 
 ? ? ? ? ? ? //671'71'3'7 \\ 36561'5 \\ 334341'3 \\ 1'1'7#4#477 \\ 671'71'3'7 \\ 36561'5 \\ 3341'71'2'2'3'1' \\ 1'76#57#56 \\ 1'2'3'2'3'5'2' \\ 1'71'3'7(3'和聲) \\ 671'71'2'1'55\\ 4'3'2'1'3'\\3'6'6'5'5'3'2'1' \\ 1'2'1'2'5'3' \\3'6'6'5'5'3'2'1'\\ 1'2'1'2'76
 
 
 
 
 
 
 
 
 ? ? ? ? ? ?
 
 
 
 
 
 
 
 
 ? ? ? ? ? ??
 ? ? ? ? }
 
 
 ? ? ? ? private void button2_Click(object sender, EventArgs e)
 ? ? ? ? {
 ? ? ? ? ? ? string strshuziyinjie = richTextBox1.Text;
 ? ? ? ? ? ? //后續處理模塊 形如 1-2-4-53423+4+2+3+4+56+4
 ? ? ? ? ? ? for (int i = 0; i < strshuziyinjie.Length - 1; i++)
 ? ? ? ? ? ? {
 ? ? ? ? ? ? ? ? if (char.IsDigit(strshuziyinjie[i]))
 ? ? ? ? ? ? ? ? {
 ? ? ? ? ? ? ? ? ? ? if (strshuziyinjie[i + 1].Equals('+'))//后一個字符是'+',則轉為高音節如7+
 ? ? ? ? ? ? ? ? ? ? ? ? richTextBox2.Text += Convert.ToChar(Convert.ToInt16(chbase2) + (strshuziyinjie[i] - '1'));//數字轉字母
 ? ? ? ? ? ? ? ? ? ? else if (strshuziyinjie[i + 1].Equals('-'))//后一個字符是'-' 則轉為低音如5-
 ? ? ? ? ? ? ? ? ? ? ? ? richTextBox2.Text += Convert.ToChar(Convert.ToInt16(chbase0) + (strshuziyinjie[i] - '1'));//數字轉字母
 ? ? ? ? ? ? ? ? ? ? else
 ? ? ? ? ? ? ? ? ? ? ? ? richTextBox2.Text += Convert.ToChar(Convert.ToInt16(chbase) + (strshuziyinjie[i] - '1'));//數字轉字母
 ? ? ? ? ? ? ? ? }
 ? ? ? ? ? ? ? ? else if (!strshuziyinjie[i].Equals('+') && !strshuziyinjie[i].Equals('-'))
 ? ? ? ? ? ? ? ? ? ? richTextBox2.Text += strshuziyinjie[i];
 
 
 ? ? ? ? ? ? }
 
 
 ? ? ? ? ? ? if (char.IsDigit(strshuziyinjie[strshuziyinjie.Length - 1]))//第 strshuziyinjie.Length-1個字符
 ? ? ? ? ? ? ? ? richTextBox2.Text += Convert.ToChar(Convert.ToInt16(chbase) + (strshuziyinjie[strshuziyinjie.Length - 1] - '1'));//數字轉字
 
 
 ? ? ? ? }
 
 
 
 
 ? ? ? ? private void button3_Click(object sender, EventArgs e)
 ? ? ? ? {
 ? ? ? ? ? ? string strshuziyinjie = richTextBox1.Text;
 ? ? ? ? ? ? 增高7個音階模塊
 ? ? ? ? ? ? for (int i = 0; i < strshuziyinjie.Length; i++)
 ? ? ? ? ? ? {
 ? ? ? ? ? ? ? ? if (char.IsLetter(strshuziyinjie[i]))
 ? ? ? ? ? ? ? ? {
 ? ? ? ? ? ? ? ? ? ? richTextBox2.Text += Convert.ToChar(strshuziyinjie[i] + 7);
 ? ? ? ? ? ? ? ? }
 ? ? ? ? ? ? ? ? else
 ? ? ? ? ? ? ? ? {
 ? ? ? ? ? ? ? ? ? ? richTextBox2.Text += strshuziyinjie[i];
 ? ? ? ? ? ? ? ? }
 ? ? ? ? ? ? }
 ? ? ? ? }
 ? ? }
 }
 
總結
以上是生活随笔為你收集整理的flash钢琴简谱转换程序的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: usb口与串口区别
- 下一篇: 2021未来杯区块链应用创新大赛正式启动
