- 博客(24)
- 收藏
- 关注
原创 音乐编码之道(二十二)|music21 高级时值(复杂和分音符)
上次我们遇到对象是在第3章,那时我们还不了解流(Streams)或其他一千种酷炫的功能,所以现在回顾一下时值对象并深入了解一下它们的工作原理是个好主意。我们会记得所有Duration都有一个对象存储在它们的Duration…并且所有时值都有.type和.dots属性。标准type对于非常好奇的人,尝试将点的数量设置为,然后看看type和dots会发生什么。(一个小彩蛋…)许多持续时间的值可以用所有这些类型和点来表示,但并非全部。我们可以通过转向三连音来获得更多的值。
2023-12-27 10:52:03
1201
原创 音乐编码之道(二十一)|Music21 音程
音程,或者说是两个音高之间的音程距离,是音乐理论的基本概念,至少可以追溯到古希腊时期,因此也是中的基本概念。不同形式的音乐理论分析,如调性理论、模式理论和半音音乐(无调性)理论使用不同类型的音程。因此,music21中有一系列可用于不同情境的音程类。它们都位于 interval 模块中,该模块还包含一些方便的工具,用于创建和比较音程。用户指南的本章解释了如何创建和使用音程对象。
2023-12-27 10:47:36
1046
原创 音乐编码之道(二十)|music21音乐分析利器导出链Derivation Chain
在这一章中,我们介绍了导出(Derivation)的概念和使用方法。导出是指根据已有的音乐对象创建新的音乐对象的过程。通过导出,我们可以跟踪音乐对象之间的关系和变化,并在需要时进行回溯。导出的主要用途之一是获取音乐对象的完整历史记录。通过使用导出链(Derivation chain),我们可以追溯一个音乐对象是如何从原始对象派生出来的。这对于理解和分析音乐的结构和变化非常有帮助。另一个用途是在派生的音乐对象上进行进一步的操作和修改。通过导出链,我们可以获取派生对象的所有先前版本,并对它们进行修改或分
2023-12-26 10:35:37
609
原创 音乐编码之道(十九)|用ABC OR Lilypond 格式输入乐谱 music21 - TinyNotation
最后是状态条件。这些条件影响多个令牌,并且通常用花括号括起来(“TieState”是一种工作方式不同但太高级无法在这里讨论的状态)。现在我们将定义end()作为无茎状态的开始。我们通过将术语“nostem”添加到TinyNotationConverter的"nostem"字典中来实现。
2023-12-26 10:12:56
1321
原创 音乐编码之道(十八)| 调与调号
注意,我们只给出了C到B的字母名称的字符串。True这些荒谬的调号在一些程序(如Lilypond)中显示,并导出到MusicXML,但在大多数MusicXML阅读器中不显示。我们稍后会看到如何使用音阶。注意Note 'C’被视为C自然音,因此需要在前面加上自然记号。然而,音符F#不需要自然记号来显示。在调用流的过程中,复制了音符并将F#的.show()设置为,并为C音符创建了一个具有自然记号和显示状态为True的变化音。False但我们也可以调用或者如果我们有一个(不是任何Measure。
2023-12-25 10:42:31
1035
原创 音乐编码之道(十七)|music21拍号和节拍
到目前为止,我们所处理的音乐几乎都是4/4拍号的。这并不是因为我们特别喜欢常规拍号,而是因为如我们在第4章中所提到的,4/4拍号是music21库中对象的默认拍号,对于没有应用其他拍号的对象来说。一般来说,Stream对象存在于对象(Stream的子类)中。然而,在某些情况下,Measure对象可以直接存在于Stream中。作为的子类,TimeSignature对象具有偏移量,并可以在Stream中的任意位置定位。
2023-12-25 10:25:00
1256
原创 音乐编码之道(十六)|深入了解Music21Object类
所有的(即元素)都有一个属性,它是一个.sites对象,保存了关于该元素存储在哪些地方的信息。流的顺序是保证插入到站点中的顺序。.sites还有更多功能,但主要面向开发人员。稍后我们会回到站点。从 C 中获得了自己的生命。可以在其 f 中向上搜索并找到,但 c 无法在其导出中找到 c;它是一个设计成单向连接的连接。设置导出可以手动完成,但这是一个高级主题,我们会在稍后讨论。
2023-12-23 17:45:53
822
原创 音乐编码之道(十五)| 创建Music21Object对象
值得注意的是,每个Music21Object对象上都有一个.classSet(v.2.1+),它给出了所有基类的字符串名称,每个类的完全限定字符串名称,以及类对象。当然,并不是Python中的每个对象都是Music21Object对象,但有点令人惊讶的是,并不是music21中的每个对象都是"Music21Object"。到目前为止,我们所使用的几乎所有对象,如Note对象、Chord对象、Stream对象等,都是一个被称为Music21Object的对象的子类,暂且将其称为Music21Object。
2023-12-23 17:22:47
952
1
原创 音乐编码之道(十四)|music21自带的乐谱(语料)库&乐谱高级搜索
music21的一个重要功能是帮助用户检查大量的音乐作品,或者_语料库_。music21附带了一个庞大的语料库,称为_core_语料库。当你下载music21后,你可以立即开始使用语料库目录中的文件,包括巴赫的完整赞美诗、许多海顿和贝多芬的弦乐四重奏、蒙特威尔第的三本世俗合唱曲集、来自埃森和各种ABC数据库的成千上万首民歌等等。核心语料库具有数千个作品。所有这些作品(或者至少所有的集合)都在_语料库参考_上列出。
2023-12-23 16:43:11
904
原创 音乐编码之道(十三)|实战-使用music21分析巴赫的BWV 66.6和弦
好吧,这已经够长时间没有做一些实际的工作了!让我们看看到目前为止可能做到什么。
2023-12-23 16:24:05
392
原创 音乐编码之道(十二)|music21多声部合并利器-和弦化
是一个我们在 music21 中创造的虚构词,用来表示将非和弦的音乐转化为和弦的过程。和弦化是一个强大的工具,可以将具有多个声部的复杂乐谱简化为一个声部中的和弦序列,从而代表乐谱中发生的一切。现在,我们使用chordify()方法对其进行和弦化。TA-DA!现在乐谱中的每个音符都用一个和弦来表示,每个元素移动的瞬间也被表示出来。有时,这个和弦化的过程被称为“切片”,即将乐谱切得非常细,使得每个发生变化的瞬间都得到充分的代表。现在,我们可以看看这个乐曲中是否有任何(完全记谱的)属七和弦。
2023-12-23 13:08:42
987
原创 音乐编码之道(十一)|music21处理 Music XML、mid、abc 等多种乐谱格式
Music21可以导入和导出许多不同的音乐数据格式,包括MusicXML和MIDI。这些格式中的许多作品都作为music21的corpus模块的一部分进行分发(请参阅music21.corpus);查看在music21 Corpus中发现的作品列表以查看它们。一般来说,要从磁盘加载文件,请调用music21,它可以处理导入所有支持的格式。(有关文件和数据格式的完整文档,请参阅music21.converter)。如果要将corpus中的文件转换,只需使用好的,假设你在看到一些问题。
2023-12-23 12:16:27
1910
原创 音乐编码之道(十)|music21输入和弦
处理后调和和弦有很多方法。如果你对二十世纪的音乐不感兴趣,可以跳到下一章,但是这里有一些有趣的东西。和弦的是一个列表,列表中包含的数量。elliottCarterChord 是一个独特的和弦,它的嗯,它几乎是独特的:还有一个具有相同的的和弦。那个和弦被称为它的Z关系或Z对。4-15AA和A#在同一个空间上,这使得阅读变得困难。如果你使用的音级超过11,它们将被视为MIDI编号,其中60 = 中音,72 = C5,等等。同音拼写将自动选择。好的,现在你已经学会了音符和和弦的基础知识(还有更多!
2023-12-23 12:04:52
661
原创 音乐编码之道(九)|music21层次结构,递归和展平
我们在第4章结束时( 流(一) )有一个包含在另一个Streams对象中的流。Stream到目前为止,找出所包含的流中的内容的唯一方法是使用方法,并使用show()参数。如第4章所述,有一种方法可以访问内部音符,例如通过F#格式,但在music21中有更好的方法来做到这一点,为此我们需要了解Stream的子类和一般的子类。(如果您已经从其他编程经验中了解此类知识,请跳过此部分)
2023-12-23 11:47:19
479
原创 音乐编码之道(八)|music21 列表的列表、函数和递归
在上一章中,我们讨论了Python列表,Score对象与列表的相似之处,以及如何将Stream对象放入Note中,查看它们的偏移量,并以MusicXML格式或文本格式显示Stream的.show()。我们通过将一个Stream放入另一个Stream中来结束,但是我们发现无法访问内部Stream中的元素,这似乎是一个很好的技巧。在本章中,我们将讨论如何利用嵌套Stream的强大功能。我们将从递归列表的讨论开始(因为Streams很像列表)。有些具备编程经验的人可能想跳过下一节。
2023-12-23 11:34:02
859
原创 音乐编码之道(七)|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
977
原创 音乐编码之道(六)|music21音高,时值
现在你已经创建了一些Notes对象,现在是时候深入一些,了解什么是真正的Note,即 music21.pitch 和 music21.duration 对象的内容了。
2023-12-23 09:53:53
980
原创 音乐编码之道(五)|music21创建、打印、播放音符
乐谱,顾名思义,由一系列音符组成,这些音符在一条五线谱上按顺序或同时放置。除此之外还有其他一些元素,如谱号、调号、连音线等等,但音乐的核心是音符;因此,要在music21中取得进展,您需要了解工具包对音符的处理方式以及如何与其一起工作。前往IDLE或在命令行中输入“python”(Mac上的终端或Windows上的“运行:cmd”),让我们开始吧。
2023-12-23 00:37:09
1603
原创 音乐编码之道(四)|music21输出第一行乐谱
如果你要使用music21,你需要在电脑上安装它和Python。对于每种类型的电脑,安装步骤略有不同,因此请点击下面的链接,然后返回系统。对于很多人来说,安装是最困难的一步。Mac用户:Windows用户(也会安装Python):Unix/Linux用户或具有特殊需求的Mac用户:当新版本的music21发布时,你可以通过使用最初安装它的相同方法进行升级。
2023-12-23 00:14:17
728
原创 音乐编码之道(三)|在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
465
原创 音乐编码之道(二)|在Windows中安装music21
Python是一种简单但功能强大的编程语言, music21 是用Python编写的,你将在其中编写自己的程序来使用 music21。Windows用户应下载并安装Python版本3.10或更高。要获取Windows版Python,请访问并点击“Windows installer”链接。这可能是第一个链接。将文件保存到桌面上,然后在那里点击它。要测试Python是否已正确安装,请转到开始菜单并运行(在旧版Windows中点击“运行”,或在搜索框中输入)一个名为 IDLE 的程序。
2023-12-22 23:55:04
1237
原创 音乐编码之道(一)|在MacOS上安装music21
由于苹果在不同版本的OS X中经常更改系统细节,因此安装 music21 可能是体验中最困难的部分。一旦你设置好了,其他的应该就不那么痛苦了。相信我们,它应该能正常工作。
2023-12-22 23:39:17
995
原创 视频下载工具:yt-dlp 中文教程
ℹ️ 查看 help(yt_dlp.postprocessor.PostProcessor)self.to_screen('正在处理')# ℹ️ "when" 可以取 yt_dlp.utils.POSTPROCESS_WHEN 中的任何值""" 选择最佳的视频和最佳的音频,不会导致mkv格式。注意:这只是一个示例,不处理所有情况 """# 格式已经按照最差到最好的顺序排序# acodec='none' 表示没有音频# 找到兼容的音频扩展名# vcodec='none' 表示没有视频。
2023-08-09 19:36:43
7764
原创 kindeditor-4 img 绝对路径问题
今天用到kindeditor,需要文章中的为绝对路径解决方案:(没兴趣看解决过程的可以直接这么干)1.用‘\’转译‘/’过程:1.根据网上教程追踪到_formatUrl()方法加入console.log() 发现,在选中图片的时候并没有调用该方法检查元素以后返现事绝对路径继而继续追踪到insertimage()方法继续追踪_escape(
2016-09-14 14:05:37
485
m3u8视频下载工具:yt-dlp中文文档
2023-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人