pythonプログラミング で楽譜作成!| music21 ~基本操作④ TinyNotationを学ぼう!
- 2022.02.24
- music21(pythonプログラム)

皆さん、こんにちは!
今回はmusic21のTinyNotationについて一緒に学びましょう
TinyNotationでの楽譜表記
前々回では「convert.parse」を用いる事で「MusicXML」のインポートを行いました。
music21に楽譜を取り込んで解析を行う場合、
①「note.Noteオブジェクトを生成し、streamオブジェクトにappendする」(詳しくは下記の記事を参照)
②「finaleやMuseScoreなどでMusicXMLを作成する」(詳しくは下記の記事を参照)
といった方法がありますが、中途半端に長い曲だと、「①だと時間が掛かるし、②の方法を使うほど時間を掛けたくない」と言ったことがあるかと思います。
それを解決するため、TinyNotationでの楽譜表記方法が開発されています。
↓詳しくは以下をご参照ください。
表記方法を覚える必要はありますが、応用が非常に効くため、是非使えるようになると良いですね!
基本は「converter.parse(‘tinyNotation: xxx’)」
MusicXMLをインポートする際にも利用した「converter.parse()」を用いてオブジェクトを作成します。
from music21 import *
s = converter.parse('tinyNotation: 4/4 C4 D4 E4 F4 G4 A4 B4 c4')
s.show()

拍子
拍子は「tinyNotation: 2/4」と言ったように表記します。
3拍子なら「3/4」、4拍子なら「4/4」、8-6ならば「6/8」と言った感じです。

ピッチと音価
下図のようにかき分けます。
・c4を基準に、c4よりオクターブ上げる場合は、cの後ろに「’」を付けていきます。
・c4より低いピッチは「C4」と表記し、さらに下げる場合は「トーン(CやDなど)」の数を増やします。
※ 注意点としては、Noteオブジェクト生成時は、C4と言えば「国際式」で表記した場合の「Cのピッチ」を表していました。
一方、tinyNotationの場合、C4と表記すると「国際式表記C4の4分音符のNote」を指します。

同じ長さの音符が連続する場合
下記のように、同じ長さの音符が連続する場合は、後続のトーンに着ける数字を省略することができます。
下図の場合、いずれの表記も同意となります。


休符・付点N分・タイ
・休符は「r」で、音符と同じくr4ならば4部休符、r8ならば8部休符です。
→ 数字を省略した場合、前の音符の長さを継承するルールも適用されます。
・付点N分(付点四分音符や付点八分音符など)はトーンの後ろに「.(ドット)」を記載します。
・タイは2つ同じ音符を表記し、一つ目の音符の後ろに「~」を付けます。

シャープ・フラット
基本的な表記は変わりませんが、以下の様なルールがあります。
・シャープの場合は「#」、ダブルシャープの場合は「##」
・ナチュラルの場合は「トーンの後ろにn」
・フラットの場合は「-」、ダブルフラットの場合は「–」
・c#(もしくはc-)の次に「c」とした場合、一つ前の音符の#(または-)は継承しない。
s = converter.parse('tinyNotation: 4/4 c4 c# c c## cn c- c-- c c1')
s.show()

連符
連符を作成したい場合は「trip{}」で表記します。
例:trip{c8 d e} は 8分音符の3連符、trip{f4 g a}は4分音符の3連符です。
s = converter.parse('tinyNotation: 4/4 c4 trip{c8 d e} trip{f4 g a} b-1')
s.show()

歌詞を付ける
歌詞を付ける場合は、ピッチの後ろに「_(アンダーバー)」を付けて文字を付けます。
s = converter.parse('tinyNotation: 4/4 c4_皆さん! d2_こんにちは e4_(^_^)')
s.show()

次のステップへ
今回はmusic21のTinyNotationについてご紹介しました。
この表記方法を覚えると、よりスピーディーに作品生成ができますね!
エラー: データの取得に失敗しました。
-
前の記事
pythonプログラミング で楽譜作成!| music21 ~基本操作③ 2022.02.20
-
次の記事
pythonプログラミング で楽譜作成!| music21 ~ 繰り返し処理 | パート | コード 2022.03.13