如何用PYTHON代码写出音乐

标签: python
5073人阅读 评论(0) 收藏 举报
分类:

如何用PYTHON代码写出音乐

什么是MIDI

博主本人虽然五音不全,而且唱歌还很难听,但是还是非常喜欢听歌的。我一直在做这样的尝试,就是通过人工智能算法实现机器自动的作词和编曲(在这里预告下,通过深度学习写歌词已经实现了,之后会分享给大家),本文我们主要聊下如何写曲。

说到用代码写曲子,有一个东西大家一定要了解就是MIDI。MIDI是一种乐器数字接口,是编曲界最广泛的音乐标准格式。MIDI并不是真正意义上的音乐文件,大家可以把它理解成乐谱,需要有环境编译MIDI文件,才可以生成音乐。这个关系有点像代码和编译器的关系。市面上可以解析MIDI文件的软件有很多种,本文将用到MuseScore2的软件,以下就是这个软件的截图,界面中的五线谱就是MIDI文件的呈现。这个乐谱是可以播放的,并且可以导出为MP3格式的音乐文件。

下面我们就介绍下生成MIDI文件所使用的PYTHON库。

python-midi库介绍

市面上差不多有十多种PYTHON库可以编写MIDI格式的文件,本文会推荐大家使用PYTHON-MIDI。我觉得python-midi的优势是不光可以自己写程序生成MIDI,而且还可以对MIDI文件进行解析。这样的功能配合机器学习算法,或许可以帮助我们实现机器的自动编曲,当然这是后话。先来看下如何安装python-midi。

1.首先进入https://github.com/vishnubob/python-midi#Installation,将整个项目克隆下来。

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写了一个简单的云音乐播放器,下面把主要代码贴上来,其中用到了github上他人写的一个汉字转拼音的库,大家可以在github上找到。 #co...
  • wanlichangkong666
  • wanlichangkong666
  • 2017-05-12 15:49:14
  • 2995

python利用网易云音乐接口搭建的音乐推荐,根据单曲歌名推荐相关用户喜爱的歌曲

一、网易云音乐的相关接口 这边我想要的数据接口有: * 网易的搜索功能,根据歌名获取歌曲的id * 歌曲相关的评论用户接口 * 用户的相关数据包括歌单或听歌记录,这边听歌记录的接口好像不能用,所以我就...
  • SeaIsGod
  • SeaIsGod
  • 2017-07-29 17:34:27
  • 1291

python实现简单的音乐播放功能

对于热门语言深感兴趣 ,激励自己多多学习和实践,自己也决定做个开头,一步步来实现音乐播放器功能。刚开始的设计,只是实现了简单的音乐播放、暂停、退出功能。至于还有些功能键的添加, 以及树形结构来添加播放...
  • qq_15508113
  • qq_15508113
  • 2015-11-27 15:47:11
  • 7645

用python3制作音乐的探索

我发现了一个开源模块很适合入门:【PySynth 】 很有趣,很欣赏,很喜欢。这里记录一下我的研究笔记。...
  • qq_37408031
  • qq_37408031
  • 2017-11-15 18:04:45
  • 392

python实现的音乐播放器

  • 2013年08月06日 19:24
  • 34.55MB
  • 下载

python播放音乐

转自:http://my.oschina.net/lenglingx/blog/183101 下面是播放音乐的实例,只有3句话就行。 pygame.mixer.init()      pygame....
  • a6225301
  • a6225301
  • 2015-07-28 12:15:26
  • 4670

常用的python模块及安装方法

adodb:我们领导推荐的数据库连接组件 bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah cherrypy:一个WEB framewor...
  • dj1174232716
  • dj1174232716
  • 2014-11-08 16:14:20
  • 1113

python下载音乐文件

需要下载安装 BeautifulSoup,下载地址: beautifulsoup4-4.3.2.tar.gz。 下载完成后解压:进入目录打开cmd,执行以下两个操作即可完成安装: (1)pytho...
  • lishk314
  • lishk314
  • 2015-03-27 15:56:12
  • 2662

Python快速学习第七天

本文内容全部出自《Python基础教程》第二版 在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别。前面几章中已经出现过一些这样的名称(如__future__),这种拼...
  • tanggao1314
  • tanggao1314
  • 2016-08-16 14:52:10
  • 1861

MIDI歌曲解析

MIDI歌曲解析   序言    本文主要讲解MIDI文件的解析,前5章主要介绍MIDI歌曲规范,并引用大量的实例加深理解,学会查看MIDI歌曲的构成,使读者对如何写MIDI格式...
  • shao941122
  • shao941122
  • 2015-05-28 16:20:14
  • 5563
    统计

    主要讲述算法和业务的结合,适合初学者

    机器学习实践应用

    京东地址

    作者公众号:凡人机器学习

    凡人机器学习

    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 89万+
    积分: 1万+
    排名: 1617
    博客专栏