1.midi标准音色表:https://blog.csdn.net/muyao987/article/details/106854562

2.midi cc控制器表:https://blog.csdn.net/muyao987/article/details/106854639

3.midi音符代码表:https://blog.csdn.net/muyao987/article/details/106854737

4.打击乐音色表:https://blog.csdn.net/muyao987/article/details/106854891

参考代码:

from mido import Message, MidiFile, MidiTrack
from play import play_mididef play_note(note, length, track, base_num=0, delay=0, velocity=1.0, channel=0):meta_time = 60 * 60 * 10 / bpmmajor_notes = [0, 2, 2, 1, 2, 2, 2, 1]base_note = 60track.append(Message('note_on', note=base_note + base_num * 12 + sum(major_notes[0:note]), velocity=round(64 * velocity),time=round(delay * meta_time), channel=channel))track.append(Message('note_off', note=base_note + base_num * 12 + sum(major_notes[0:note]), velocity=round(64 * velocity),time=round(meta_time * length), channel=channel))def verse(track):play_note(1, 0.5, track)  # 小play_note(2, 0.5, track)  # 时play_note(1, 1.5, track)  # 候play_note(7, 0.25, track, -1)  # 妈play_note(6, 0.25, track, -1)  # 妈play_note(5, 0.5, track, -1, channel=1)  # 对play_note(3, 0.5, track, channel=1)  # 我play_note(3, 2, track, channel=1)  # 讲play_note(3, 0.5, track)  # 大play_note(4, 0.5, track)play_note(3, 1.5, track)  # 海play_note(2, 0.25, track)  # 就play_note(1, 0.25, track)  # 是play_note(6, 0.5, track, -1, channel=1)  # 我play_note(2, 0.5, track, channel=1)  # 故play_note(2, 2, track, channel=1)  # 乡play_note(7, 0.5, track, -1)  # 海play_note(1, 0.5, track)play_note(7, 1.5, track, -1)  # 边play_note(6, 0.25, track, -1)play_note(5, 0.25, track, -1)play_note(5, 0.5, track, -1, channel=1)  # 出play_note(2, 0.5, track, channel=1)play_note(2, 2, track, channel=1)  # 生play_note(4, 1.5, track)  # 海play_note(3, 0.5, track)  # 里play_note(1, 0.5, track)  # 成play_note(6, 0.5, track, -1)play_note(1, 3, track)  # 长def chorus(track, num):play_note(5, 0.5, track)  # 大play_note(6, 0.5, track)play_note(5, 1.5, track)  # 海play_note(3, 0.5, track)  # 啊play_note(5, 0.5, track, channel=1)  # 大play_note(6, 0.5, track, channel=1)play_note(5, 2, track, channel=1)  # 海play_note(6, 0.5, track)  # 是(就)play_note(5, 0.5, track)  # 我(像)play_note(4, 0.5, track)  # 生(妈)if num == 1:play_note(1, 0.25, track, channel=1)  # 活play_note(1, 0.25, track, channel=1)  # 的if num == 2:play_note(1, 0.5, track, channel=1)  # (妈)play_note(6, 0.5, track, channel=1)  # 地(一)play_note(5, 0.5, track, channel=1)play_note(5, 3, track, channel=1)  # 方(样)play_note(3, 0.5, track)  # 海(走)play_note(4, 0.5, track)  # 风(遍)play_note(3, 1.5, track)  # 吹(天)play_note(2, 0.25, track)  # (涯)play_note(1, 0.25, track)play_note(6, 0.5, track, -1, channel=1)  # 海(海)play_note(2, 0.5, track, channel=1)  # 浪play_note(2, 2, track, channel=1)  # 涌(角)play_note(4, 0.5, track)  # 随(总)play_note(5, 0.5, track)  # 我(在)play_note(4, 0.5, track)  # 漂(我)play_note(3, 0.5, track)  # 流(的)play_note(1, 0.5, track, channel=1)  # 四(身)play_note(6, 0.5, track, -1, channel=1)play_note(1, 3, track, channel=1)  # 方(旁)mid = MidiFile()  # 创建MidiFile对象
track = MidiTrack()  # 创建音轨
mid.tracks.append(track)  # 把音轨加到MidiFile对象中bpm = 75# 向音轨添加
#    Message对象(包括program_change、note_on、note_off等)
#    MetaMessage对象(用以表示MIDI文件的节拍、速度、调式等属性)
track.append(Message('program_change', program=12, time=0))
track.append(Message('note_on', note=64, velocity=64, time=32))
track.append(Message('note_off', note=64, velocity=127, time=32))verse(track)  # 主歌
chorus(track, num=1)  # 副歌1
chorus(track, num=2)  # 副歌2mid.save('new_song.mid')
play_midi('new_song.mid')

【代码参考资料】https://blog.csdn.net/TruedickDing/article/details/101780003

Python音乐生成:MIDI相关推荐

  1. python爬取网易云音乐生成王力宏歌曲词云

    python爬取网易云音乐生成王力宏歌曲词云 # -*- coding:utf-8 -*- # 网易云音乐,通过歌手id生成词云 import requests import sys,re,os fr ...

  2. 基于LSTM的音乐生成学习全过程的总结

    基于LSTM的音乐生成学习全过程的总结 由于笔者日常酷爱唱歌,酷爱音乐,再加上现在是计算机专业硕士在读.也是这个假期确定下来要做人工智能音乐的方向,也就开始了我对AI音乐的学习. 从最基本的旋律生成开 ...

  3. 【DL】第 7 章 :用于音乐生成的Transformers和 MuseGAN

    除了视觉艺术和创意写作一样,音乐创作是我们认为人类独有的另一种核心创造力行为. 为了让机器创作出悦耳的音乐,它必须克服我们在上一章中看到的与文本相关的许多技术挑战.特别是,我们的模型必须能够学习并重新 ...

  4. 基于文字情感的民族音乐智能生成项目Bert+Magenta【音乐生成部分】(一)

    magenta环境配置与应用 环境配置 1.安装pycharm 2.安装pip 3.安装conda 4.创建conda虚拟环境 magenta安装 magenta的使用 1.数据集准备 2. 数据转换 ...

  5. 计算机与音乐,计算机音乐与midi

    计算机音乐与midi 程伊兵 稿源:中音网 记得90年代初在四通电脑音乐事业部的时候,大家刚开始接触midi,并且是通过计算机上运行的音序器软件来控制整个midi系统的运作.所以从那时起,大家就都管m ...

  6. 机器学习之语音生成音乐生成

    简介 WaveNet利用神经网络系统对原始音频波形(Raw SoundWave)建模该网络.基于WaveNet生成的音频质量优于目前所有的文本转语音(Text-to-Speech,TTS)系统,将计算 ...

  7. 微信朋友圈新增仅最近一个月可见;OpenAI 发布音乐生成网络 MuseNet

    (给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 [技术资讯] 0.OpenAI 发布音乐生成神经网络 MuseNet OpenAI 发布了深度 ...

  8. 用JS生成MIDI文件(附代码)

    用JS生成MIDI文件 大家好,近期我们的课程需要我们做一个应用,我的的小组打算做一个在线的伴奏制作平台,这意味着我们需要知道如何在线制作音乐以及如何用浏览器播放. 小编我这一节就跟大家讲解下如何用J ...

  9. 【音乐生成】乐谱生成

    文章目录 介绍与研究动机 数据集 方法 实验结果 介绍与研究动机 论文链接:AN EXPLORATION OF GENERATING SHEET MUSIC IMAGES 传统的音乐生成任务的输出格式 ...

最新文章

  1. 粤桂协作消费对接活动 农业大健康·李喜贵:功能性农业合作研究
  2. 角色操作-查询所有角色流程分析
  3. uni-app—从安装到卸载
  4. 《从零开始学Swift》学习笔记(Day 40)——析构函数
  5. Java实现数据批量导入数据库(优化速度-2种方法)
  6. 马化腾很忙:阐释腾讯新定位、与长安合资建车公司,还出了本新书
  7. 5.剑指Offer --- 优化时间和空间效率
  8. Apizza 使用方法
  9. 萤石云设备下线是什么导致的_萤石设备突然看不了,提示不在线怎么办?
  10. 品优购网页搭建过程(HTML5+CSS)
  11. CentOS yum安装mcrypt详细图解教程
  12. Java语言基础Day07(API概述、Scanner、匿名对象、Random、对象数组、ArrayList)
  13. vue引入D3绘制流程图
  14. 数学建模集成电路布线拥堵问题
  15. 深入了解电容(四):钽电容、聚合物有机半导体电容(POSCAP,ECAS)和薄膜电容
  16. 解决Linux下部署使用JasperReport的项目的错误:net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '宋体' i
  17. 逻辑回归模型在R中实践
  18. 未来智能,触摸未来 ---记2016华为开发者大赛沙龙上海站
  19. 机动车发生交通事故造成人身伤亡,财产损失的,赔偿责任如何承担?
  20. 人工智能A7论坛2017年迄今最新人工智能资源盘点

热门文章

  1. SQL -- distinct 函数的用法
  2. 正则语法+JavaScript的正则使用
  3. 实验六 基于WinPcap的ARP欺骗实验
  4. 如何使用计算机蓝牙设备管理器,如何将蓝牙添加到您的计算机 | MOS86
  5. 攒机笔记二十三:触控商务本
  6. java下载文件名称各种浏览器兼容问题
  7. 【项目实战课】基于Pytorch的的SENet人种图像分类实战
  8. 水产行业数字化B2B电商平台实现精细化管理,驱动企业业绩增长
  9. 我目前所见过的最难的IQ测试题
  10. 计算机用户组 xp,工作组看不到其他计算机,xp查看工作组计算机