python讨论qq群:996113038


导语

最近发过很多关于画画的python的推文,也发过一些实现动画的python程序。唯独没有发过关于音乐的推文。要知道,python无所不能,上知天文,下知地理。琴棋书画,样样精通。

那好,今天就给大家写一个python制作电子钢琴的程序。

相比很多土豪,小编是个穷人。但是和很多朋友一样,小编也特别热爱艺术。尤其是音乐,对于巴洛克时期流派,古典乐派和浪漫派有过很深入的研究(吹吹牛)。

但是小编是个穷人,买不起昂贵的钢琴,怎么办呢?

来吧,我们用python打造一个电子琴。


代码及相关资源获取

1:关注“python趣味爱好者”公众号,回复“ 钢琴”获取源代吗

2:加入群聊:996113038。在群文件中下载源代码以及相关资料。


开发工具

python3.6.4

相关第三方库:

tkinter

os

pygame

random

time


效果演示:下面是用python演奏的乐曲


基本原理

以前,小编用matlab打造过一个弹奏《雨碎江南》的程序。当时是matlab自己发出各种频率的声音。模拟1234567七个音符。当然,由于各种原因,这种音乐不够纯。让人感觉很难受。这一次我们用python打造我们的电子琴,直接选取的录制好的真实的钢琴的音符。

存储在一个数据库文件里面。在弹奏的时候读取这些音频文件。进行组合以后播放。懂音乐可以听出来,这些音乐特别纯。

犹如一泓清泉从山间缓缓流淌,叮咚叮咚。


往期精选

python实现“粒子动画”

python爬取唐诗三百首


部分代码

我们要做的很简单,就是把这些音符排列组合。不断发出各种声响。模拟钢琴弹奏。

当然了,我们还需要一个图像用户界面,用于鼠标点击钢琴上面的“键”。

from tkinter import *
master = Tk()
canvas_width = 800
canvas_height = 60
canvas  = Canvas(master, width=canvas_width, height = canvas_height)

还需要获取鼠标的操作,我们专门定义了一个鼠标类,确定鼠标所在的位置,用来判断鼠标点击的哪里?

def mouseRight(event):localx = event.x#localy = event.yidx = localx // gapxpiano_play(idx)

至于播放音符声音,我们也很简单用到了sound.play()。

当然了,我们要提前读取ogg文件。这样才能播放出指定的声音。

        mixer.init()path='./ogg'sound = self.__soundList[idx]sound.play()

另外,我们导入time模块的原因就是确定每个音符演奏的时间,因为这个节奏在音乐中是非常重要的。

感谢大家观看,有钱的老板可以打赏一下小编哦!

扫描下方二维码,关注公众号

参考资料:

封面来源:

https://images.pexels.com/photos/2592179/pexels-photo-2592179.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500

参考来源:https://codeload.github.com/Fijon/musicgame/zip/master

python制作“电子钢琴”相关推荐

  1. Python实现电子钢琴及封装

    电子钢琴(python) 1.软件介绍 通过键盘26个A-Z字符,弹奏曲谱. 2.准备材料 26个mp3音调文件 由26个英文字符组成的乐谱 3.核心流程 1.通过ctypes包播放mp3文件 cty ...

  2. 用 Python 制作GUI钢琴~几行代码就能完成一个游戏项目

    制作GUI钢琴 导语 实现思路 Python实现 导语 哈喽哈喽,下午好,我是小圆 ~ 今天这篇文章,又给你们准备了一个有趣的小游戏~ 前一段时间刷b站,看到一些up主制作的Matlab钢琴很火,很好 ...

  3. Python制作GUI钢琴,几行代码完成一个游戏项目

    嗨嗨,大家好 今天找到了一个有意思的游戏,来分享给你们 就是用Python做一个简易版的钢琴小游戏 本篇文章就来分享一下思路与代码 实现思路 在写代码之前,还是先整理下思路,用Python实现的话,只 ...

  4. 用python制作电子时钟包装_使用电子水墨屏和树莓派制作的时钟,Epaper_clock

    所用的硬件 树莓派3 微雪4.3寸串口电子墨水屏 DHT22温湿度传感模块 硬件连接 屏幕 树莓派 DIN TX(GPIO14) DOUT RX(GPIO15) GND GND VCC 3V DHT2 ...

  5. java制作电子钢琴_java 设计 模拟钢琴 完整源码

    //Piano.java import java.applet.*; import java.awt.*; import java.awt.event.*; public Piano extends ...

  6. 用 Python 制作 GUI 钢琴~几行代码就能完成一个游戏项目

    导语 哈喽哈喽~铁汁萌!!今天这期呢小编又准备了一个好玩又适合学习的游戏项目给大家!!

  7. 用Python制作简易播放器(电子钢琴) mac系统

    用Python制作简易播放器(电子钢琴) 开发环境:Python3.7 Mac OS 思路: 先根据需要设计GUI的样式,并思考需要定义什么功能 把功能写出来 把功能填入GUI之中 用曲子测试完整的程 ...

  8. 用python写个电子钟_[TPYBoard - Micropython之会python就能做硬件 3] 制作电子时钟

    欢迎加入讨论群 64770604 一.本次实验所需器材 1.TPYboard V102板 一块 2.DS3231模块 一块 3.NOKIA 5110 LCD 屏 一块 4.杜邦线:若干 ===感谢某宝 ...

  9. python自己做电子词典_利用PyQt5制作电子词典

    详细代码参考github,如果喜欢,欢迎star和fork. 利用PyQt5制作电子词典 年前(2018年12月22日)Crossin编程教室发布了一个制作电子词典的小作业,自己懒懒散散的做了一个,大 ...

  10. python提取电子发票_Python办公自动化—电子发票台账制作自动化(1)

    近年来,税务局在大力推进增值税发票的电子化,目前增值税普通发票的电子版已经很常见了,长三角某些地区的增值税电子专票也在试点中,相信全面电子化的日子为期不远了. 由于报销凭证财务档案主要还是纸质形态,所 ...

最新文章

  1. 手機電視挑戰傳統視聽習慣
  2. Linux内存管理之高端内存映射
  3. 直播 | AAAI 2021:如何缓解GNN预训练和微调之间的优化误差?
  4. Java中调用Oracle中的存储过程的单元测试代码
  5. K8S——单master节点和基于单master节点的双master节点二进制部署(本机实验,防止卡顿,所以多master就不做3台了)
  6. eclipse启动发生Failed to load JNI shared library
  7. 信息学奥赛一本通 1956:【11NOIP普及组】表达式的值 | 洛谷 P1310 [NOIP2011 普及组] 表达式的值
  8. leaflet-webpack 入门开发系列二加载不同在线地图切换显示(附源码下载)
  9. c++中的explicit关键字及隐式类型转换
  10. paddlex,2.1.0识别预测代码(包含视频的)
  11. 机器学习之线性回归缩减维度
  12. u盘数据恢复的原理_U盘数据恢复其实很简单
  13. SkeyeVSS综合安防视频云服务提供网页无插件直播、录像、检索、回放、报警综合解决方案
  14. Anycloud平台LOGO生成方法
  15. php之form,PHP之表单处理
  16. 亮屏流程 - 安卓R
  17. elasticsearch删除过期数据
  18. stm32中断优先级
  19. 通过颜色来生成一个纯色图片
  20. Unity+C#开发笔记(一)| 如何动态加载预制件 | ╭(●`∀´●)╯╰(●’◡’●)╮

热门文章

  1. Java Applet及其应用
  2. 天黑时间跟经度还是纬度有关_时差的具体由来,时差由纬度还是经度决定?
  3. 学习信息安全技术心得
  4. 微软高性能缓存AppFabric (一) 安装
  5. 易语言5.9 免狗完美版下载+安装教程
  6. Windows 7安装超级终端连接COM口设备
  7. 购买了ESET NOD32 授权
  8. 诛仙服务器技能修改,诛仙私服422服务端个人修改版带补丁+虚拟机+教程+工具[模板源码]...
  9. Jmeter的基础讲解
  10. lomboz连接mysql数据库_『在线等』 lomboz-eclipse连接mysql,连接失败