微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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];                 }             }         }     } }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐