iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中musicpy如何使用
  • 882
分享到

Python中musicpy如何使用

2023-06-15 18:06:28 882人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

python中musicpy如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。安装首先在musicpy文件夹里打开cmd, 跑一下pip install -

python中musicpy如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

安装

首先在musicpy文件夹里打开cmd, 跑一下pip install -r requirements.txt安装依赖库(如果本来就是pip install musicpy安装的就不需要这一步, 作者也比较推荐直接pip install musicpy就行)

import 这个库: from musicpy import *

作者自己做的介绍与使用教程视频第一期:

https://www.bilibili.com/video/BV1754y197a9/

详细的musicpy数据结构,基础语法以及使用教程,请看作者正在写的Wiki,作者会尽量把所有的细节都讲清楚。

Wiki的地址: Https://GitHub.com/Rainbow-Dreamer/musicpy/wiki

musicpy说明

在musicpy里面,几个基本的类是note(音符), chord(和弦)和scale(音阶)。这几个类是构成音乐代码的基础。

在musicpy这门语言的数据结构设计中,音符类本身是等值为纯数字的,也就是完全可以作为纯数字使用。

和弦类是音符类的集合,也说明和弦类本身等值为一个全部都是数字的集合,也可以作为向量,甚至矩阵来看待(比如多个和弦的连接走向就可以看作多个向量的拼接,因此也就有了行列数,也就是矩阵的形式)。

也因此在这门语言的数据结构设计中,音符类,和弦类,音阶类都是可以进行数学运算的,比如线性代数领域的运算,离散数学领域的运算等等。也可以在这门语言的数据结构的基础上建立一整套乐理逻辑的算法,结合纯数学逻辑来进行多方面的音乐分析研究。

现代音乐领域的很多实验性质的音乐,比如序列主义,偶然音乐,后现代主义音乐(比如极简主义音乐),理论上全部都可以在这门语言的纯数字化的数据结构的基础上进行严格的创作。即使不提实验性质的音乐,这门语言也可以写任何的古典音乐,爵士音乐,流行音乐。

作者每隔两三天就会更新一次这个库的内容,具体的更新内容请大家看这个库里的“更新日志Changelog.txt”,里面有按照日期的每次更新的非常详细的细节与说明。

更新日志的链接:

https://github.com/Rainbow-Dreamer/musicpy/blob/master/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97Changelog.txt

初衷

作者开发这个语言主要的初衷有两点:

第一,比起工程文件和midi文件单纯存储音符,力度,速度等单位化的信息,如果能够按照乐理上的角度来表示一段音乐从作曲上的角度是如何实现的,那就更加有表示的意义了。而且只要不是现代主义无调性音乐,大部分的音乐都是极其具有乐理上的规律性的,这些规律抽象成乐理逻辑语句可以大大地精简化。(比如一个midi文件1000个音符,实际上按照乐理角度可能可以简化到几句代码)。

第二,开发这个语言是为了让作曲AI能够在真正懂得乐理的情况下来作曲(而不是深度学习,喂大量的数据),这个语言也算是一个接口,AI只要把乐理的语法搞懂了,那作曲就会拥有和人一样的思维。我们可以把乐理上的规则,做什么好不做什么好告诉AI,这些东西还是可以量化的,所以这个乐理库也可以作为一个乐理接口,沟通人和AI之间的音乐。因此,比如想让AI学习某个人的作曲风格,那么在乐理上面也同样可以量化这个人的风格,每种风格对应着一些不同的乐理逻辑规则,这些只要写给AI,经过作者这个库,AI就可以实现模仿那个人的风格了。如果是AI自己原创风格,那就是从各种复杂的作曲规则里寻找可能性。

为何不用深度学习?

作者在想不用深度学习,神经网络这些东西,直接教给AI乐理和某个人的风格化的乐理规则,那么AI或许可以做的比深度学习大数据训练出来的更好。因为大数据训练只是给AI模仿数据本身而已,这样其实AI并没有真正地和人类自己一样理解作曲是什么,乐理是什么,所以作者才想通过这个库实现把人的乐理同样教给AI,让AI真正意义上地理解乐理,这样的话,作曲起来就不会生硬了,没有机器和随机的感觉了。所以作者写这个库的初衷之一就是避开深度学习那一套。但是感觉抽象出不同音乐人的乐理规则确实很有难度,作者会加油写好这个算法的qwq 另外其实也可以音乐人自己告诉AI他自己乐理上喜欢怎么写(也就是自己独特的乐理偏好规则),那么AI就会模仿的很到位,因为AI那时候确实懂得乐理了,作曲不可能会有机器感和随机感,此时AI脑子里想的就和音乐人脑子里想的是完全一样的东西。

AI不必完全按照我们给他的乐理逻辑规则来创作,我们可以设置一个“偏好度”的概念给AI,AI在自己作曲时会有一定程度地偏好某种风格,但是除此之外会有自己在“符合正确乐理”的规则里面找到的独特的风格,这样AI就可以说“受到了某些音乐人的影响下自己原创的作曲风格了”。当这个偏好度为0时,AI的作曲将会完全是自己通过乐理寻找到的风格,就像一个人自己学习了乐理之后,开始摸索自己的作曲风格一样。一个懂得乐理的AI很容易找到自己独特的风格来作曲,我们甚至都不需要给他数据来训练,而只要教给AI乐理就行。

如何教AI乐理?

那么怎么教给AI乐理呢?在音乐上面,暂时不考虑现代主义音乐的范畴,那么绝大部分的音乐都是遵循着一些很基本的乐理规则的。这里的规则指的是,怎么样写乐理上ok,怎么样写犯了乐理上的错误。比如写和声的时候,四部同向往往是要避免的,尤其是在编曲时写管弦乐的部分。比如写一个和弦,如果和弦里面的音出现小二度(或者小九度)会听着比较打架。比如当AI自己决定一首曲子要从A大调开始写,那么他应该从A大调音阶里按照级数来选取和弦,有可能适当地离调一下,加几个副属和弦,写完主歌部分可能按照五度圈转个调,或者大三度/小三度转调,同主音大小调转调等等。我们需要做的事情就是告诉AI作曲的时候怎么写是正确的,更进一步的,怎么写听着比较有水平。

AI学好了乐理,不会忘记,也比较难犯错,因此可以写出真正属于AI自己的音乐。他们会真正懂得音乐是什么,乐理是什么。因为这个库的语言做的事情就是把乐理抽象成逻辑语句,那么我们每次给AI“上课”,就是把人自己的乐理概念用这个库的语言来表述,然后写进AI的数据库里。通过这种方式,AI真正的学习到了乐理。这样的作曲AI,不需要深度学习,不需要训练集,不需要大数据,而与之相比,那些深度学习训练出来的作曲AI实际上根本就不懂乐理是什么,也没有音乐的概念,他们只是从海量的训练数据里面照葫芦画瓢而已。还有一个重点是,既然可以用具体的逻辑来描述的事情,其实是不需要机器学习的。如果是文字识别,图像分类这些比较难以用抽象的逻辑来描述的事情,那才是深度学习的用武之地。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网Python频道,感谢您对编程网的支持。

--结束END--

本文标题: Python中musicpy如何使用

本文链接: https://www.lsjlt.com/news/281283.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中musicpy如何使用
    Python中musicpy如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。安装首先在musicpy文件夹里打开cmd, 跑一下pip install -...
    99+
    2023-06-15
  • python中如何使用中文
    小编给大家分享一下python中如何使用中文,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用中文(以及其它非ASCII编码)在...
    99+
    2024-04-02
  • Python中Stackless如何使用
    本篇文章为大家展示了Python中Stackless如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用Stackless Python的内置模块stackless也可以完成多线程编程,使用起...
    99+
    2023-06-17
  • Python中QSlider如何使用
    这篇文章给大家介绍Python中QSlider如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、Qslider控件控件介绍和使用qslider解释为滑块控件,用于方便左右滑动。往往这类滑动更多用于屏幕可以触碰的...
    99+
    2023-06-20
  • python中pywifi如何使用
    这篇文章主要讲解了“python中pywifi如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中pywifi如何使用”吧!写在前面无线AP(Access Point):即无...
    99+
    2023-07-05
  • Python中stuct_time如何使用
    本篇文章给大家分享的是有关Python中stuct_time如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、Python stuct_time中模块使用整理提供了各种...
    99+
    2023-06-17
  • Python中Condition如何使用
    Python中Condition如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Condition 算是 Lock 和 Event 的杂交版本,除了作为 ...
    99+
    2023-06-17
  • Python中aiohttp如何使用
    这篇“Python中aiohttp如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中aiohttp如何使用...
    99+
    2023-07-05
  • Python中如何使用threading
    Python中如何使用threading,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  Python 版本是3.7.4  前面的文章记录了网络请求(urllib,requ...
    99+
    2023-06-02
  • Python中super如何使用
    这期内容当中小编将会给大家带来有关Python中super如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。举一个很常见的例子:>>> class Foo:def bar(self,...
    99+
    2023-06-04
  • Python中sys.arg如何使用
    这篇文章将为大家详细讲解有关Python中sys.arg如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用sys.argv[]的一简单实例,import sys,os&nb...
    99+
    2023-06-17
  • Python中collections.Counter()如何使用
    今天就跟大家聊聊有关Python中collections.Counter()如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Counter类Counter类的目的是用来跟踪值出...
    99+
    2023-06-20
  • Python 中Sympy如何使用
    Python 中Sympy如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、表达式与表达式求值:#--------多项式求解--------#定义变量x=sympy.S...
    99+
    2023-06-20
  • python中如何使用uuid
    这篇文章主要为大家展示了“python中如何使用uuid”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中如何使用uuid”这篇文章吧。uuid通过Python 标准库的 uuid 模...
    99+
    2023-06-27
  • python中assert如何使用
    在Python中,assert语句用于检查一个条件是否为真。如果条件为假,assert语句将引发一个AssertionError异常...
    99+
    2023-09-28
    python
  • Python中Mock如何使用
    Python中Mock如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 1. 前言微服务架构下,由于各类服务开发进度的不一致,导致联调工作经常会存在不确定性...
    99+
    2023-06-15
  • python中如何使用defaultdict
    小编给大家分享一下python中如何使用defaultdict,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开...
    99+
    2023-06-14
  • python中类如何使用
    这期内容当中小编将会给大家带来有关python中类如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、类的成员类的成员包括:属性和方法。属性可以分为:静态属性和实例属性方法可以分为:普通方法、类方法...
    99+
    2023-06-15
  • Python中Sqlite3如何使用
    今天就跟大家聊聊有关Python中Sqlite3如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 使用大量操作如果你需要在数据库中一次性插入很多行,那么你真不应该使用 ex...
    99+
    2023-06-17
  • python中如何使用Shuffle
    这篇文章主要介绍python中如何使用Shuffle,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Shuffle该算法会打乱列表元素的顺序,它主要会通过 Fisher-Yates 算法对新列表进行排序:from&nb...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作