牛逼了!菜鸟也能用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演奏一段钢琴曲相关推荐
- 牛逼的python代码_牛逼啊!一个随时随地写Python代码的神器
现在学Python的人越来越多,很多小伙伴都非常有激情,利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的.最好能编程并运行,有没有什么好的神器可 ...
- python数据分析神器_牛逼啊!一个随时随地写Python代码的神器
作者: Leoxin 公众号:菜鸟学Python 现在学Python的人越来越多,很多小伙伴都非常有激情.利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练 ...
- java打字游戏代码_牛逼啊!一个随时随地写Python代码的神器
现在学Python的人越来越多,很多小伙伴都非常有激情.利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的.最好能编程并运行,有没有什么好的神器可 ...
- 在手机上写python_牛逼啊!一个随时随地写Python代码的神器
2.运行非常方便 比如我们写一个简单的Python程序, 写一个推导列表. 这神器竟然还有代码提示功能,怕我们打字太累,直接会获取一些关键字,比如p打头的关键字,会给出一堆,这样可以省去打字的麻烦.而 ...
- 牛逼啊!一个随时随地写Python代码的神器
今天就推荐一个IOS手机上能写Python代码的App 叫Pythonista. 强大的Pythonista 1.功能强大 有一些小程序也是可以运行Python但是比较简单,这款神器是专业级别.里面有 ...
- 一个随时写python代码的神器_牛逼啊!一个随时随地写Python代码的神器
现在学Python的人越来越多,很多小伙伴都非常有激情.利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的.最好能编程并运行,有没有什么好的神器可 ...
- 这款Python视频剪辑神器,牛逼!
你知道吗,用moviepy一行代码就能够快速剪辑视频中某个区间的片段: clip = VideoFileClip("videoplayback.mp4").subclip(50,6 ...
- python项目2019_2019 年 11 月精选 GitHub 上 几个牛逼 Python 的项目
熟悉小帅b的朋友们都知道,小帅b每个月都会精选几个比较不错的 GitHub 项目给大家参考参考,这不 2019 年只剩下最后一个月了,忍不住想问一句: 你被裁了么?你又胖了么? ok,咱们进入正题: ...
- python最适合做什么生意-面试了57位数据分析师,我发现牛逼的人都有这4个特质...
原标题:面试了57位数据分析师,我发现牛逼的人都有这4个特质 现在的职场竞争越来越激烈,不学上一两门新技能,保持自己知识更新,很容易被年轻后辈超越.有些人选择学一门外语,有些人选择学习职场上为人处事的 ...
最新文章
- 岗位推荐 | 百度招聘计算机视觉、深度学习算法工程师(可实习)
- Pandas0.25来了,别错过这10大好用的新功能
- read和write函数的使用
- properties配置文件的加密
- mysql常见的运算符及使用
- Java案例:文件切割与合并
- 【期刊会议系列】IEEE系列模板下载指南
- PHP学习之字符串操作
- Node art-template 和 prase-pody配置
- “黑吃黑”webshell箱子
- 【工程应用】用Redis存储特征
- PX4使用FPV DShot电调
- vue实现横向无限滚动
- 嵌入式微处理器详述(1)---什么是嵌入式微处理器
- echarts x 起始_echarts中如何在dataZoom 最左侧和最右侧始终显示起始和结束的值
- 手机运行android虚拟机,手机也能装虚拟机?实测虚拟机APP坑爹or真有料
- 如何解压tar.gz文件或是.gz文件
- 微型计算机题,微机课练习题
- python编写聊天刷屏代码【非程序】
- ubuntu launch standal one sdk manager 无反应