音乐编码之道:Python与AI大模型的创作奇迹
文章平均质量分 85
在本专栏中,我们将深入了解Python音乐分析库music21,探索其丰富的功能和应用,从音符、和弦到音乐结构,让您能够更深入地理解和分析音乐作品。
我们还将介绍文字打谱软件lilypond,教您如何使用这一强大工具将音乐创意转化为精美的乐谱,让您的音乐想法得以完美呈现。
qq_31339083
这个作者很懒,什么都没留下…
展开
-
音乐编码之道(二十)|music21音乐分析利器导出链Derivation Chain
在这一章中,我们介绍了导出(Derivation)的概念和使用方法。导出是指根据已有的音乐对象创建新的音乐对象的过程。通过导出,我们可以跟踪音乐对象之间的关系和变化,并在需要时进行回溯。导出的主要用途之一是获取音乐对象的完整历史记录。通过使用导出链(Derivation chain),我们可以追溯一个音乐对象是如何从原始对象派生出来的。这对于理解和分析音乐的结构和变化非常有帮助。另一个用途是在派生的音乐对象上进行进一步的操作和修改。通过导出链,我们可以获取派生对象的所有先前版本,并对它们进行修改或分原创 2023-12-26 10:35:37 · 560 阅读 · 0 评论 -
音乐编码之道(十九)|用ABC OR Lilypond 格式输入乐谱 music21 - TinyNotation
最后是状态条件。这些条件影响多个令牌,并且通常用花括号括起来(“TieState”是一种工作方式不同但太高级无法在这里讨论的状态)。现在我们将定义end()作为无茎状态的开始。我们通过将术语“nostem”添加到TinyNotationConverter的"nostem"字典中来实现。原创 2023-12-26 10:12:56 · 1122 阅读 · 0 评论 -
音乐编码之道(十八)| 调与调号
注意,我们只给出了C到B的字母名称的字符串。True这些荒谬的调号在一些程序(如Lilypond)中显示,并导出到MusicXML,但在大多数MusicXML阅读器中不显示。我们稍后会看到如何使用音阶。注意Note 'C’被视为C自然音,因此需要在前面加上自然记号。然而,音符F#不需要自然记号来显示。在调用流的过程中,复制了音符并将F#的.show()设置为,并为C音符创建了一个具有自然记号和显示状态为True的变化音。False但我们也可以调用或者如果我们有一个(不是任何Measure。原创 2023-12-25 10:42:31 · 935 阅读 · 0 评论 -
音乐编码之道(十七)|music21拍号和节拍
到目前为止,我们所处理的音乐几乎都是4/4拍号的。这并不是因为我们特别喜欢常规拍号,而是因为如我们在第4章中所提到的,4/4拍号是music21库中对象的默认拍号,对于没有应用其他拍号的对象来说。一般来说,Stream对象存在于对象(Stream的子类)中。然而,在某些情况下,Measure对象可以直接存在于Stream中。作为的子类,TimeSignature对象具有偏移量,并可以在Stream中的任意位置定位。原创 2023-12-25 10:25:00 · 1044 阅读 · 0 评论 -
音乐编码之道(十六)|深入了解Music21Object类
所有的(即元素)都有一个属性,它是一个.sites对象,保存了关于该元素存储在哪些地方的信息。流的顺序是保证插入到站点中的顺序。.sites还有更多功能,但主要面向开发人员。稍后我们会回到站点。从 C 中获得了自己的生命。可以在其 f 中向上搜索并找到,但 c 无法在其导出中找到 c;它是一个设计成单向连接的连接。设置导出可以手动完成,但这是一个高级主题,我们会在稍后讨论。原创 2023-12-23 17:45:53 · 771 阅读 · 0 评论 -
音乐编码之道(十五)| 创建Music21Object对象
值得注意的是,每个Music21Object对象上都有一个.classSet(v.2.1+),它给出了所有基类的字符串名称,每个类的完全限定字符串名称,以及类对象。当然,并不是Python中的每个对象都是Music21Object对象,但有点令人惊讶的是,并不是music21中的每个对象都是"Music21Object"。到目前为止,我们所使用的几乎所有对象,如Note对象、Chord对象、Stream对象等,都是一个被称为Music21Object的对象的子类,暂且将其称为Music21Object。原创 2023-12-23 17:22:47 · 872 阅读 · 1 评论 -
音乐编码之道(十四)|music21自带的乐谱(语料)库&乐谱高级搜索
music21的一个重要功能是帮助用户检查大量的音乐作品,或者_语料库_。music21附带了一个庞大的语料库,称为_core_语料库。当你下载music21后,你可以立即开始使用语料库目录中的文件,包括巴赫的完整赞美诗、许多海顿和贝多芬的弦乐四重奏、蒙特威尔第的三本世俗合唱曲集、来自埃森和各种ABC数据库的成千上万首民歌等等。核心语料库具有数千个作品。所有这些作品(或者至少所有的集合)都在_语料库参考_上列出。原创 2023-12-23 16:43:11 · 776 阅读 · 0 评论 -
音乐编码之道(十三)|实战-使用music21分析巴赫的BWV 66.6和弦
好吧,这已经够长时间没有做一些实际的工作了!让我们看看到目前为止可能做到什么。原创 2023-12-23 16:24:05 · 342 阅读 · 0 评论 -
音乐编码之道(十二)|music21多声部合并利器-和弦化
是一个我们在 music21 中创造的虚构词,用来表示将非和弦的音乐转化为和弦的过程。和弦化是一个强大的工具,可以将具有多个声部的复杂乐谱简化为一个声部中的和弦序列,从而代表乐谱中发生的一切。现在,我们使用chordify()方法对其进行和弦化。TA-DA!现在乐谱中的每个音符都用一个和弦来表示,每个元素移动的瞬间也被表示出来。有时,这个和弦化的过程被称为“切片”,即将乐谱切得非常细,使得每个发生变化的瞬间都得到充分的代表。现在,我们可以看看这个乐曲中是否有任何(完全记谱的)属七和弦。原创 2023-12-23 13:08:42 · 884 阅读 · 0 评论 -
音乐编码之道(十一)|music21处理 Music XML、mid、abc 等多种乐谱格式
Music21可以导入和导出许多不同的音乐数据格式,包括MusicXML和MIDI。这些格式中的许多作品都作为music21的corpus模块的一部分进行分发(请参阅music21.corpus);查看在music21 Corpus中发现的作品列表以查看它们。一般来说,要从磁盘加载文件,请调用music21,它可以处理导入所有支持的格式。(有关文件和数据格式的完整文档,请参阅music21.converter)。如果要将corpus中的文件转换,只需使用好的,假设你在看到一些问题。原创 2023-12-23 12:16:27 · 1261 阅读 · 0 评论 -
音乐编码之道(十)|music21输入和弦
处理后调和和弦有很多方法。如果你对二十世纪的音乐不感兴趣,可以跳到下一章,但是这里有一些有趣的东西。和弦的是一个列表,列表中包含的数量。elliottCarterChord 是一个独特的和弦,它的嗯,它几乎是独特的:还有一个具有相同的的和弦。那个和弦被称为它的Z关系或Z对。4-15AA和A#在同一个空间上,这使得阅读变得困难。如果你使用的音级超过11,它们将被视为MIDI编号,其中60 = 中音,72 = C5,等等。同音拼写将自动选择。好的,现在你已经学会了音符和和弦的基础知识(还有更多!原创 2023-12-23 12:04:52 · 567 阅读 · 0 评论 -
音乐编码之道(九)|music21层次结构,递归和展平
我们在第4章结束时( 流(一) )有一个包含在另一个Streams对象中的流。Stream到目前为止,找出所包含的流中的内容的唯一方法是使用方法,并使用show()参数。如第4章所述,有一种方法可以访问内部音符,例如通过F#格式,但在music21中有更好的方法来做到这一点,为此我们需要了解Stream的子类和一般的子类。(如果您已经从其他编程经验中了解此类知识,请跳过此部分)原创 2023-12-23 11:47:19 · 382 阅读 · 0 评论 -
音乐编码之道(七)|music21 列表,流(I)和输出
Stream对象及其子类(Score、Part、Measure)是存储音乐21对象的基本容器,如StreamNoteChordClef。容器类似于Python列表(或其他一些语言中的数组)。存储在Stream中的对象一般按时间间隔排列;每个存储的对象都有一个偏移量,通常表示它距离Stream开头的四分之一音符数。例如,在一个4/4拍的两个二分音符中,第一个音符的偏移量为0.0,第二个音符的偏移量为2.0。此外,Stream可以存储其他Stream,允许各种嵌套、有序和定时的结构。原创 2023-12-23 11:18:14 · 880 阅读 · 0 评论 -
音乐编码之道(六)|music21音高,时值
现在你已经创建了一些Notes对象,现在是时候深入一些,了解什么是真正的Note,即 music21.pitch 和 music21.duration 对象的内容了。原创 2023-12-23 09:53:53 · 830 阅读 · 0 评论 -
音乐编码之道(五)|music21创建、打印、播放音符
乐谱,顾名思义,由一系列音符组成,这些音符在一条五线谱上按顺序或同时放置。除此之外还有其他一些元素,如谱号、调号、连音线等等,但音乐的核心是音符;因此,要在music21中取得进展,您需要了解工具包对音符的处理方式以及如何与其一起工作。前往IDLE或在命令行中输入“python”(Mac上的终端或Windows上的“运行:cmd”),让我们开始吧。原创 2023-12-23 00:37:09 · 1352 阅读 · 0 评论 -
音乐编码之道(四)|music21输出第一行乐谱
如果你要使用music21,你需要在电脑上安装它和Python。对于每种类型的电脑,安装步骤略有不同,因此请点击下面的链接,然后返回系统。对于很多人来说,安装是最困难的一步。Mac用户:Windows用户(也会安装Python):Unix/Linux用户或具有特殊需求的Mac用户:当新版本的music21发布时,你可以通过使用最初安装它的相同方法进行升级。原创 2023-12-23 00:14:17 · 559 阅读 · 0 评论 -
音乐编码之道(三)|在GNU/Linux和其他操作系统上安装 music21
GNU/Linux, FreeBSD等通常在 music21 上工作。许多人,包括 music21 的主要开发人员,在世界各地的各种部署的GNU/Linux、Unix、AWS-Unix、Android、iOS等系统上运行它。然而,除了最新的Mac和Windows操作系统以外,没有其他系统受到官方支持。选择使用类Unix系统意味着你应该是你的操作系统上的高级用户,能够处理与每个类Unix系统相关的库、链接、外部文件等问题。music21列表不应该用于安装/配置问题。原创 2023-12-23 00:00:07 · 363 阅读 · 0 评论 -
音乐编码之道(二)|在Windows中安装music21
Python是一种简单但功能强大的编程语言, music21 是用Python编写的,你将在其中编写自己的程序来使用 music21。Windows用户应下载并安装Python版本3.10或更高。要获取Windows版Python,请访问并点击“Windows installer”链接。这可能是第一个链接。将文件保存到桌面上,然后在那里点击它。要测试Python是否已正确安装,请转到开始菜单并运行(在旧版Windows中点击“运行”,或在搜索框中输入)一个名为 IDLE 的程序。原创 2023-12-22 23:55:04 · 692 阅读 · 0 评论 -
音乐编码之道(一)|在MacOS上安装music21
由于苹果在不同版本的OS X中经常更改系统细节,因此安装 music21 可能是体验中最困难的部分。一旦你设置好了,其他的应该就不那么痛苦了。相信我们,它应该能正常工作。原创 2023-12-22 23:39:17 · 808 阅读 · 0 评论