music21 层级解析(了解次结构方可将任意曲谱与mid互相转换)

这段代码创建了一个音乐乐谱并将其保存为 MIDI
文件,其中包含一个乐器和多个小节。每个小节中包含四个音符或和弦,然后将小节添加到乐谱中。最后,将乐谱写入 MIDI 文件。

首先,通过导入 music21 库来使用它的功能。

import music21

然后,创建一个乐谱对象。

score = music21.stream.Score()

接下来,创建一个乐器对象,并将其添加到乐谱中。

one_part = music21.stream.Part()
score.append(one_part)

然后,创建一系列小节,并将其添加到乐谱中。每个小节包含四个音符或和弦。

for i in range(100):one_measure = music21.stream.Measure(number=i)for j in range(4):one_chord = music21.chord.Chord([music21.note.Note("E3", duration=music21.duration.Duration(1)),music21.note.Note("C4", duration=music21.duration.Duration(1))])one_measure.append(one_chord)one_part.append(one_measure)

最后,将乐谱写入 MIDI 文件。

score.write("midi", "s.mid")

这是一个简单的示例,可以根据需要进行修改和扩展。可以使用 music21 库的其他功能来创建不同的音符、和弦、乐器等,并调整乐谱的各个方面

import music21# 整个乐谱
score = music21.stream.Score()
# 一个乐器
one_part = music21.stream.Part()
for i in range(100):  # 100 段# 一个小节one_measure = music21.stream.Measure(number=i)for j in range(4): # 4 音符# 不同的音符one_note = music21.note.Note("F5#", duration=music21.duration.Duration(1))one_chord = music21.chord.Chord([music21.note.Note("E3", duration=music21.duration.Duration(1)),music21.note.Note("C4", duration=music21.duration.Duration(1))])one_rest = music21.note.Rest(duration=music21.duration.Duration(1))one_measure.append(one_chord)one_part.append(one_measure)one_part.show("text")
score.append(one_part)
score.write("midi", "s.mid")

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18306.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于.Net Core实现的飞书所有文档一键导出服务(支持多系统)

feishu-doc-export 一个支持Windows、Mac、Linux系统的飞书文档一键导出服务,仅需一行命令即可将飞书知识库的全部文档同步到本地电脑。导出速度嘎嘎快,实测700多个文档导出只需25分钟,且程序是后台挂机运行,不影响正常工作。 动…

用html+javascript打造公文一键排版系统4:一级标题排版

完成公文标题的排版后,我们要进行对正文中的标题进行处理。 一般正文中的标题分为四级,文中结构层次序数依次可以用“一、”“(一)”“1.”“(1)”标注;一般第一层用黑体字、第二层用楷体字加粗…

《UNUX环境高级编程》(8)进程控制

1、引言 2、进程标识 每个进程都用一个唯一的非负整数标识,即为进程id:pid。进程ID是可以复用的,当一个进程终止时,其进程ID就可以用来标识其他进程。系统中有一些专用进程: 进程ID为0的是调度进程,也称交…

lua 请求ftp服务器数据,下载文件

1、装入ftp库 2、调用ftp的get()方法 3、get()方法参数格式: 4、将返回到的数据写入文件中 例如,本次获取专利数据系统 http://patdata1.cnipa.gov.cn/ 的ftp站点数据 local ftp require("socket.ftp")--此处我没填端口号 file,err ftp.g…

postgrep 9.4 断电后启动不了

journalctl -xe1、问题1:pg_ctl: another server might be running pg_ctl: another server might be running 解决方法:删除原来没有删除的pid文件 rm /opt/PostgreSQL/9.4/data/postmaster.pid 2、问题2 postgres文件丢失 - Unit postgresql-9.4.ser…

使用echarts+echarts-gl绘制3d地图,实现地图轮播效果

记录一下大屏开发中使用到的echarts-gl大屏的页面根据需求前前后后改了几个版本了,地图的样式也改了又改这里记录一下,因为echarts属性用到的比较多也比较杂,防止以后需要用到忘记了 目录 初始效果 效果图: 适应大屏风格的发光…

Centos7离线模式安装Redis6.2.13详细步骤(rpm方式)

本篇文章主要介绍在CentOS7服务器中安装Redis6.2.13,前提是需要有gcc的环境,那么在此我也会向大家介绍gcc的详细安装过程,参考了很多其它相关博客,但有些博主的文章可能是搬运的,导致我在实操时出现报错,那…

机器学习28:《推荐系统-I》概述

在互联网领域,推荐系统(Recommendation Systems)的应用非常广泛。在音视频方面,如抖音、快手、哔哩等;在电商平台方面,如京东、淘宝、拼多多等。推荐有助于帮助用户快速发现潜在感兴趣的内容(音…

设计模式之二:观察者模式

假定我们需要为Weather-O-Rama公司建立一个气象站系统,除已有的WeatherData有数据源类,还需要更新三个布告板的显示:目前状况(温度、湿度、气压)、气象统计和天气预报。 1 以下是一个可能的实现 class WeatherData { …

C++类相关概念

1. 函数形参默认值 (1) 建议函数(不仅仅是构造函数)形参默认值只在函数声明中指定; (函数声明和定义写在同一个文件中,则函数声明、定义两者之一或两者都可指定形参默认值,两者都指…

云原生监控——VictoriaMetrics

1.简介 VictoriaMetrics是一个快速高效且可扩展的监控解决方案和时序数据库,可以作为Prometheus的长期远端存储,具备的特性有: 支持prometheus查询api,同时实现了一个metricsql 查询语言支持全局查询视图,支持多prom…

在OK3588的Ubuntu系统上安装Firefox浏览器

文章目录 概要配置上网环境安装的具体命令 概要 因为Ubuntu系统里面没有安装浏览器,为了方便使用,提高工作效率,我们安装一下Firefox浏览器。 Firefox是一款适用于Ubuntu系统的免费和开源的Web浏览器。由Mozilla Foundation和其子公司Mozil…