小编一直有着一个钢琴弹奏的梦想,但是苦于没有这样的基础,所以很难在实际生活中弹奏出一曲美妙的钢琴曲,不过,为了实现自己的钢琴梦,我决定用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演奏一段钢琴曲相关推荐

  1. 牛逼的python代码_牛逼啊!一个随时随地写Python代码的神器

    现在学Python的人越来越多,很多小伙伴都非常有激情,利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的.最好能编程并运行,有没有什么好的神器可 ...

  2. python数据分析神器_牛逼啊!一个随时随地写Python代码的神器

    作者: Leoxin 公众号:菜鸟学Python 现在学Python的人越来越多,很多小伙伴都非常有激情.利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练 ...

  3. java打字游戏代码_牛逼啊!一个随时随地写Python代码的神器

    现在学Python的人越来越多,很多小伙伴都非常有激情.利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的.最好能编程并运行,有没有什么好的神器可 ...

  4. 在手机上写python_牛逼啊!一个随时随地写Python代码的神器

    2.运行非常方便 比如我们写一个简单的Python程序, 写一个推导列表. 这神器竟然还有代码提示功能,怕我们打字太累,直接会获取一些关键字,比如p打头的关键字,会给出一堆,这样可以省去打字的麻烦.而 ...

  5. 牛逼啊!一个随时随地写Python代码的神器

    今天就推荐一个IOS手机上能写Python代码的App 叫Pythonista. 强大的Pythonista 1.功能强大 有一些小程序也是可以运行Python但是比较简单,这款神器是专业级别.里面有 ...

  6. 一个随时写python代码的神器_牛逼啊!一个随时随地写Python代码的神器

    现在学Python的人越来越多,很多小伙伴都非常有激情.利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的.最好能编程并运行,有没有什么好的神器可 ...

  7. 这款Python视频剪辑神器,牛逼!

    你知道吗,用moviepy一行代码就能够快速剪辑视频中某个区间的片段: clip = VideoFileClip("videoplayback.mp4").subclip(50,6 ...

  8. python项目2019_2019 年 11 月精选 GitHub 上 几个牛逼 Python 的项目

    熟悉小帅b的朋友们都知道,小帅b每个月都会精选几个比较不错的 GitHub 项目给大家参考参考,这不 2019 年只剩下最后一个月了,忍不住想问一句: 你被裁了么?你又胖了么? ok,咱们进入正题: ...

  9. python最适合做什么生意-面试了57位数据分析师,我发现牛逼的人都有这4个特质...

    原标题:面试了57位数据分析师,我发现牛逼的人都有这4个特质 现在的职场竞争越来越激烈,不学上一两门新技能,保持自己知识更新,很容易被年轻后辈超越.有些人选择学一门外语,有些人选择学习职场上为人处事的 ...

最新文章

  1. 岗位推荐 | 百度招聘计算机视觉、深度学习算法工程师(可实习)
  2. Pandas0.25来了,别错过这10大好用的新功能
  3. read和write函数的使用
  4. properties配置文件的加密
  5. mysql常见的运算符及使用
  6. Java案例:文件切割与合并
  7. 【期刊会议系列】IEEE系列模板下载指南
  8. PHP学习之字符串操作
  9. Node art-template 和 prase-pody配置
  10. “黑吃黑”webshell箱子
  11. 【工程应用】用Redis存储特征
  12. PX4使用FPV DShot电调
  13. vue实现横向无限滚动
  14. 嵌入式微处理器详述(1)---什么是嵌入式微处理器
  15. echarts x 起始_echarts中如何在dataZoom 最左侧和最右侧始终显示起始和结束的值
  16. 手机运行android虚拟机,手机也能装虚拟机?实测虚拟机APP坑爹or真有料
  17. 如何解压tar.gz文件或是.gz文件
  18. 微型计算机题,微机课练习题
  19. python编写聊天刷屏代码【非程序】
  20. ubuntu launch standal one sdk manager 无反应

热门文章

  1. 使用Mandelbulb3D渲染三维分形
  2. 瞪羚优化算法(Gazelle Optimization Algorithm,GOA)
  3. 微信小程序-开发实战(二)
  4. mybatis--动态语句查询
  5. 计算机毕业设计Java-ssm博弈论学习网站源码+系统+数据库+lw文档
  6. PalmOS开发教程-13
  7. 从拍拍贷Q2财报看网贷行业未来走向 | 一点财经
  8. 数据分析从零到精通第四课 在产品需求、开发、运营和迭代中进行数据分析
  9. 智力大冲浪 【贪心】
  10. Can be divided by 3?