python写出的程序如何给别人使用-如何用PYTHON代码写出音乐
什么是MIDI
博主本人虽然五音不全,而且唱歌还很难听,但是还是非常喜欢听歌的。我一直在做这样的尝试,就是通过人工智能算法实现机器自动的作词和编曲(在这里预告下,通过深度学习写歌词已经实现了,之后会分享给大家),本文我们主要聊下如何写曲。
说到用代码写曲子,有一个东西大家一定要了解就是MIDI。MIDI是一种乐器数字接口,是编曲界最广泛的音乐标准格式。MIDI并不是真正意义上的音乐文件,大家可以把它理解成乐谱,需要有环境编译MIDI文件,才可以生成音乐。这个关系有点像代码和编译器的关系。市面上可以解析MIDI文件的软件有很多种,本文将用到MuseScore2的软件,以下就是这个软件的截图,界面中的五线谱就是MIDI文件的呈现。这个乐谱是可以播放的,并且可以导出为MP3格式的音乐文件。
下面我们就介绍下生成MIDI文件所使用的Python库。
python-midi库介绍
市面上差不多有十多种python库可以编写MIDI格式的文件,本文会推荐大家使用PYTHON-MIDI。我觉得python-midi的优势是不光可以自己写程序生成MIDI,而且还可以对MIDI文件进行解析。这样的功能配合机器学习算法,或许可以帮助我们实现机器的自动编曲,当然这是后话。先来看下如何安装python-midi。
2.在程序目录下执行以下命令安装,
python setup.py install
3.如果想执行某个以mid为后缀的MIDI文件,只要执行以下命令即可:
mididump.py test.mid
接下来介绍下如何写代码生成midi文件。
实操
在python-midi库中,每个乐谱用Pattern对象表示,乐谱中的每个音轨(通常音乐都有很多轨道组成,每种乐器是一个轨道)用Track对象表示。每个音符的开端用midi.NoteOnEvent表示,结束用midi.NoteOffEvent表示,可以在参数中定义每个字符的音长和音高。示例代码如下:
生成的是一个简单的音阶:
更多有趣的音乐生成代码和样例可以关注我的微信公众号进行下载,进入公众号,输入“music”显示下载链接,谢谢。
python写出的程序如何给别人使用-如何用PYTHON代码写出音乐相关推荐
- 【程序员股民系列】如何用python, pandas, numpy, matplotlib绘制每日个股成交额图
上次分享了一段代码用于绘制每日行业交易额的图: [程序员股民系列]如何用python, pandas, numpy, matplotlib绘制每日行业成交额图 分析粒度略粗,只到行业这一层,把代码稍微 ...
- python写出的程序如何给别人使用-涨姿势!这些小技巧让小白也可以写出更优雅的Python代码!...
原标题:涨姿势!这些小技巧让小白也可以写出更优雅的Python代码! 一.前言 我前两天回答了两个Python相关的问题,收到了很多赞,从答案被收藏的情况来看,确实对不少人都很有帮助,所以我也很开心. ...
- python写出的程序如何给别人使用-python如何写出表白程序
用python编表白程序的方法: 1.创建GUI窗口,实现代码的调用. 2.编写点击触发函数,实现表白程序. 具体代码如下:from tkinter import * from tkinter imp ...
- python写出的程序如何给别人使用-利用这10个工具,你可以写出更好的Python代码...
我每天都使用这些实用程序来使我的Python代码可显示. 它们是免费且易于使用的. 编写漂亮的Python比看起来难. 作为发布工作流程的一部分,我使用以下工具使代码可显示并消除可避免的错误. 1.B ...
- python exit()什么意思_Python基础学习教程:如何用Python来写pm2.5空气质量查询程序...
今天就教大家用之前有跟大家分享过的python基础学习教程完成首个MVP,如何用CLI(command-line interface,命令行界面)来执行第一个空气质量查询程序. 知识点 如何进行txt ...
- 直击面试现场:神级程序员仅100秒,60行代码写出俄罗斯方块,成为全公司焦点!...
小编我今天逛论坛看到一位HR帖子直播公司面试情况,该公司是做棋牌APP的,现在正在招聘前端工程师和运营人员,HR直播的是前端这块的,有写游戏的也有做网站项目的,写特效的都有很多,但是这位HR却看上了一 ...
- python俄罗斯方块小游戏实验报告,童年的记忆——如何用python写一个俄罗斯方块小游戏!...
谈到记忆里的小游戏,俄罗斯方块是大家一定会想到的一款游戏,自己写出来的应该玩起来更有感觉,然后就写了一个俄罗斯方块的游戏 给大家分享一下这个游戏的源码 先用python创建一个py文件 定义这次程序所 ...
- 安卓手机python开发环境_使用Python开发Android应用程序:第一节 在手机上配置Python运行环境...
本节目录: 1.下载和安装 Scripting Layer for Android (SL4A) 2.下载和安装 Python for android 3.第一个HelloWorld程序 1.下载和安 ...
- python写乘法口诀表好记方法_如何用python编写乘法口诀表
如何用python编写乘法口诀表?首先要明确一下思路,我们可以确定x,y两个变量,弄清楚其变化的规律,再使用循环嵌套实现.下面是如何用Python编写乘法口诀表的具体方法. 第一种:使用for遍历循环 ...
最新文章
- 【Paper】2018_Group Consensus for Discrete-Time Heterogeneous Multiagent Systems with Input and Commun
- 【Python】学习笔记总结8(经典算法)
- Angular - - $cacheFactory
- 【OpenCV 例程200篇】28. 图像的旋转(直角旋转)
- 知识图谱的概念、应用与构建
- Failed to connect to github.com port 443 after 21505 ms: Timed out
- MySQL基于日志还原数据
- JAVA中Long与Integer
- 2022年考研计算机组成原理_6 总线
- C语言-1-初识C语言(三)
- Windows 10 word无法创建工作文件,找不到临时环境变量
- [LINUX服務器搭建套餐]2.安裝mysql
- android手机截屏代码,Android手机截屏代码
- Mapped Statements collection does not contain value for错误可能
- 生产计划排产软件三大操作流程
- 贪吃的九头龙-----树形dp
- 电信怎么关闭信息接受服务器,怎么关闭短信接收功能
- 短视频App系统开发方案-短视频源码开发
- 类似婚礼纪的Java项目_「婚礼纪」婚礼纪 java面试 - seo实验室
- RAC-OCR,VIP,VOTEING DISK
热门文章
- Google TPU 揭密——看TPU的架构框图,矩阵加乘、Pool等处理模块,CISC指令集,必然需要编译器...
- Data Mining and Machine Learning in Cybersecurity PDF
- ES批量索引写入时的ID自动生成算法
- 每天一个Linux命令-find
- flask Blueprint蓝图
- 约束优化方法之拉格朗日乘子法与KKT条件
- 将HTML导出生成word文档
- 转载-对js中new、prototype的理解
- CSS 特效 (教程还是英文的好)
- 洛谷 P2746 [USACO5.3]校园网Network of Schools