音乐编码之道(十七)|music21拍号和节拍

本文详细介绍了如何使用Python库music21处理音乐中的拍号和节拍。通过示例展示了创建TimeSignature对象、改变拍号、获取音符的拍子位置等操作,并解释了在乐谱中拍号和节拍的影响。
摘要由CSDN通过智能技术生成

音乐编码之道(十七)|music21拍号和节拍

到目前为止,我们所处理的音乐几乎都是4/4拍号的。这并不是因为我们特别喜欢常规拍号,而是因为如我们在第4章中所提到的,4/4拍号是music21库中TimeSignature对象的默认拍号,对于没有应用其他拍号的对象来说。

一般来说,Stream对象存在于TimeSignature对象(Stream的子类)中。然而,在某些情况下,Measure对象可以直接存在于Stream中。

作为TimeSignature的子类,TimeSignature对象具有偏移量,并可以在Stream中的任意位置定位。当放置在一个小节中时,TimeSignature对象通常放置在开始位置,即偏移量为零的位置。小节的属性Music21Object可以用于设置或获取偏移量为零的TimeSignature。如果一个小节没有TimeSignature,该属性timeSignature将返回None。

我们需要使用其他拍号的所有内容都包含在timeSignature模块中,当您键入meter时,该模块将被导入。该模块中有很多东西,但我们最关心的是from music21 import *对象。让我们创建一些音符和一个TimeSignature对象。

这里还有一个简单的方法来获取这个字符串,调用

现在我们有了对象,让我们创建一个使用这些音符和TimeSignature对象的

stream1 = stream.Stream()

for thisThing in [tsThreeFour, noteC, noteD, noteE, noteF]:
    stream1.append(thisThing)

stream1方法来查看:

stream1.show('text')

为什么时间签名和第一个音符都从偏移量0.0开始?因为默认情况下,时间签名对象没有长度:

{
   0.0} <music21.meter.TimeSignature 3/4>
{
   0.0} <music21.note.Note C>
{
   2.0} <music21.note.Note D>
{
   3.0} <music21.note.Note E>
{
   4.0} <music21.note.Note F>

0.0 in the Stream? That’s because by default TimeSignature objects have no length:

offset

tsThreeFour.duration.quarterLength

如果我们

0.0

the show() without using Stream, we see that there are two measures of 3/4:

show('text') ../_images/usersGuide_14_timeSignatures_12_0.png

The

stream1.show()

对象有助于显示模块了解如何将流分割为TimeSignature对象。如果我们从具有小节的Measure创建一个新的流Stream,我们可以直接看到这个过程使用stream1命令:

makeMeasures()

{
   0.0}<music21.stream.Measure1offset=0.0>{
   0.0}<music21.clef.TrebleClef>{
   0.0}<music21.meter.TimeSignature3/4>{
   0.0}<music21.note.NoteC>{
   2.0}<music21.note.NoteD>{
   3.0}<music21.stream.Measure2offset=3.0>{
   0.0}<music21.note.NoteE>{
   1.0}<music21.note.NoteF>{
   3.0}   
          
           
           
           
        
           
           
          <音乐21.bar.终止线类型=最终> 

顺便说一下,makeMeasures命令还将一个TrebleClef放入了

{
   0.0} <music21.stream.Measure 1 offset=0.0>
     {
   0.0} <music21.clef.TrebleClef>
     {
   0.0} <music21.meter.TimeSignature 3/4>
     {
   0.0} <music21.note.Note C>
     {
   2.0} <music21.note.Note D>
{
   3.0} <music21.stream.Measure 2 offset=3.0>
     {
   0.0} <music21.note.Note E>
     {
   1.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_31339083

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值