牛逼了!菜鸟也能用Python演奏一段钢琴曲

 

小编一直有着一个钢琴弹奏的梦想,但是苦于没有这样的基础,所以很难在实际生活中弹奏出一曲美妙的钢琴曲,不过,为...

小编一直有着一个钢琴弹奏的梦想,但是苦于没有这样的基础,所以很难在实际生活中弹奏出一曲美妙的钢琴曲,不过,为了实现自己的钢琴梦,我决定用python来帮我实现。

今天,小编就带领大家利用python来实现钢琴的弹奏,力图让大家在读完本篇文章后,也能利用我们的程序实现简单的钢琴演奏。最后的结果演示里,也为大家奉上彩蛋。闲话少说,咱们直奔主题。
01.编辑乐谱
首先,我们要弹奏一首乐曲,总得看得懂这个乐谱吧,小编虽然也不是很懂的乐谱,但是临时抱拂脚,也算是基本懂一点简谱了。下图是小编找到的关于《黑人抬棺》的钢琴简谱中截取的一段。



为了简单理解,上面一共是4拍,其中数字1到7分别是代表的do到si。带下划线的两个5代表的是一拍,单个的下划线表示的是二分之一拍。数字上面的点表示的是高八度,然后有几个点就依次累加即可。#键代表的是将音符升高半音。以上就是小编对于简谱的一些简单的理解,如果有音乐方面的高人,还请在后面补充,方便大家更好的理解。现在我们以上面的乐理知识为基础,看看如何利用python来弹奏乐曲吧。

02.设定钢琴键发音
我们在本地文件夹中保存了每个钢琴键的发音,然后接下来,我们以一首《新年好》为例,介绍一下程序是如何运行的。

对于弹琴的按键发音功能,我们用到的是mp3play来加载mp3文件,然后进行播放,程序和效果如下:



03.实现连续发音
一个按键完成了,那么对于多个独立的按键,我们怎么实现他们的连续发音呢,这里就要用到线程了,程序如下:



上述的程序便是我们的核心程序,我来给大家解释一下:

1).首先,对于opern元组里的每一个元组变量,其第一个值代表的是哪一个钢琴键,第二个变量代表的是在按下一个键时需要延时的时间,用来控制歌曲的节拍。

2).然后,我们一个个的开启线程,便可以模拟按键来弹奏音乐了。

3).这里的线程就好比我们弹奏钢琴时按不同的键,因为不同的键是相互独立,不影响的,而这里使用线程就是达到这样的目的。

最后小编为大家展示一下弹奏的效果,分别是《新年好》以及最近很火的《黑人抬棺》的钢琴演奏



(记得一定要花30秒听一下哦)
怎么样,是不是有内味了呢,相信大家通过这篇文章,也能够很快的上手python的钢琴弹奏,大家可以从简单的乐曲入手,试着去演奏一下,过一把钢琴演奏家的瘾。

本篇源码视频正在录制当中,会在我们的B站首发,欢迎大家去围观!

最后推荐一下我们菜鸟学Python在B站的学习资料,菜鸟学Python在B站的官方名字为 “菜鸟玩Python”。目前已经录制了7个视频,累计有1.2万阅读。生动的讲解实战源码

  • 用Python做一个弹球游戏
  • 10行Python代码实现美图秀秀
  • 用Python做一个元宵节灯谜
  • 我用Python集齐五福
  • 50行代码,用Python批量做海量小姐姐的素描图
  • 用Python做一个缩放自如的圣诞老人
  • 用Python分析“青春有你2”109位小姐姐



点击阅读原文,看菜鸟玩Python B站实战案例


    关注 菜鸟学Python


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册