章 10 · 部 II · 技法
楽譜
Postext が本の中に楽譜を組む方法:ABC、MusicXML、MEI、Humdrum のテキストで書いた記譜を段の幅で浄書し、段や頁をまたいで続く段(システム)に分けること、番号付き譜例をリソースとして扱うこと、楽譜スタイル、各出力、音楽出版社が楽譜を持ち込む手順
かんたんな説明
このページでは、Postext の本に楽譜を入れる方法を説明します。音楽は、音楽家や楽譜作成ソフトがすでに使っている形式のテキストで書き、Postext がそこから五線、音符、歌詞を描きます。長い曲は楽譜の行に分けられ、段落と同じように次の段や頁へ続きます。譜例は図と同じように番号とキャプションを付けることもできます。すべての楽譜の見た目(五線の大きさ、音楽フォント、小節番号)は設定で一度決めるだけです。最後に、音楽出版社が Postext と組む方法と、残っている制限を説明します。
音楽は本の中のテキスト。見た目は設定で決まります。
Postext の楽譜は、描くのではなく記譜として書きます。章の中のフェンスブロックに4種類のテキスト形式のいずれかで音楽を書くと、エンジンが Music Encoding Initiative の浄書ライブラリ Verovio で浄書します。楽譜はその段の幅で浄書され、段(システム)、つまり読者が左から右へ読む楽譜の行に分けられます。各段は独立したブロックとして配置されるので、頁の残りに収まらない楽譜は次の段の頭から続き、段の途中で切れることはありません。五線の大きさ、音楽フォント、小節番号、間隔は設定の scoreStyle セクションで決まり、設定を一つ変えるだけで本全体の楽譜の見た目が変わります。
楽譜は必要なときだけ使う機能です。記譜ブロックのない文書はこれまでどおり組まれ、浄書エンジン(約3.7MB)は楽譜のある本でだけ読み込まれます。
#形式
| ブロック | 形式 | 向いている用途 |
|---|---|---|
```abc | ABC 2.1 | 旋律や単旋律の譜例、音符の下に歌詞の付く歌。簡潔で手書きしやすい形式です。浄書エンジンは ABC の曲の1声部だけを読みます。複数のパートはほかの形式で書いてください。 |
```musicxml | MusicXML 4.0 | Dorico、Sibelius、Finale、MuseScore から書き出したあらゆる楽譜。長いのでリソースファイルにしておくのが向いています。 |
```mei | MEI | 校訂版や学術版、古楽。 |
```humdrum、```kern | Humdrum (kern) | コラールや四声体和声、分析の譜例。声部ごとにタブ区切りの列を1つ、低い声部から並べます。 |
ただの ```xml ブロックはコードリストのままです。{listing} を付けた記譜ブロックもコードリストになり、チュートリアルで曲のソースを見せるのに使えます。
#本文中の楽譜
完全終止では、上声が主音で終わります。
```humdrum {alt="ト長調のコラールの楽句。完全終止で終わる"}
**kern **kern **kern **kern
*clefF4 *clefGv2 *clefG2 *clefG2
*k[f#] *k[f#] *k[f#] *k[f#]
*M4/4 *M4/4 *M4/4 *M4/4
4GG 4B 4d 4b
4D 4d 4f# 4a
= = = =
1GG 1B 1d 1g
== == == ==
*- *- *- *-
```
半終止は属和音で止まります。歌詞付きの旋律を ABC で書いた例:
```abc
X:1
T:Evening hymn
M:3/4
L:1/4
K:F
c | A2 B | c2 A | G2 F | E2 c | A2 B | c2 A | G2 E | F2 |]
w: Now the day is o-ver, night is draw-ing nigh, sha-dows of the eve-ning steal a-cross the sky.
```ブロックには2つの属性があります。
alt="…":楽譜が何であるかを、スクリーンリーダー、タグ付き PDF、EPUB に伝えます。省略すると、記譜に書かれた曲名と作曲者(ABC のT:とC:、MusicXML の<work-title>と<creator type="composer">)が読み上げられます。曲名は印刷されないので、本文かキャプションに書いてください。style="…":本の名前付き楽譜スタイル(scoreStyles)。たとえば囲みの中の譜例用に五線を小さくしたスタイルです。
本文中の楽譜は、別行立ての数式と同じく番号もキャプションも付きません。上下にはスタイルの余白、段と段の間には段の間隔が入り、後に続く本文はベースライン・グリッドに戻ります。
#番号付き譜例
本文が参照する譜例(「譜例3.2を参照」)は score 種のリソースで、図と同じように組まれます。番号とキャプションが付き、フロートするかその場に置かれ、:ref で参照します。
{
"id": "ex-cadence",
"typeId": "example",
"kind": "score",
"caption": "ト長調の完全終止",
"score": { "format": "musicxml", "source": "<?xml version=\"1.0\"?>…", "styleId": "small" }
}:ref{id="ex-cadence"} の終止が楽句を閉じます。
::resource{id="ex-cadence"}種類が example のリソースは、Postext に組み込まれた譜例型で、文書の言語に合わせて番号が付きます:Example、Ejemplo、Exemple、Notenbeispiel、Esempio、Exemplo、谱例、譜例、مثال。リソースが使うと、この型が本のリソースの種類に加わります。別の名前にしたいときは独自の型を定義してください。バンドル(preset.json)では、テキストを持たせる代わりに記譜ファイルを指すこともできます。
{ "id": "ex-cadence", "typeId": "example", "kind": "score", "file": "resources/ex-cadence.musicxml" }.abc、.musicxml、.mei、.krn で終わるファイルは、kind の値にかかわらず楽譜として読まれます。コマンドラインは --resources フォルダーの同じファイルを譜例として読み、Sandbox のリソースパネルでは 新規 › 新しい楽譜 か、ファイルをドロップして作成できます。
楽譜リソースは分割されません。フロートするか、1つのブロックとして置かれます。1頁より長い曲は記譜ブロックに書けば、段と段の間で分かれます。
#楽譜の見た目
すべての楽譜は scoreStyle に従います。重ねた名前付きスタイルは、設定した項目だけを変えます。
const config: PostextConfig = {
scoreStyle: {
staffSize: { value: 5.5, unit: 'mm' },
musicFont: 'Leland',
barNumbers: 'system',
minSystemsAtBreak: 2,
},
scoreStyles: [
{ id: 'small', name: '小さい譜例', staffSize: { value: 4.5, unit: 'mm' }, barNumbers: 'none' },
],
};- 五線の大きさ:五線の高さ。学校の教科書は6〜7mm、教本や教材は5〜6mm、本文中の譜例は4〜5mmが目安です。
- 音楽フォント:Bravura(伝統的な彫版風)、Leland(やや軽い)、Petaluma(手書き風)、Leipzig、Gootville。
- テキストのフォント:歌詞、テンポ表示、発想記号。未設定なら本文のフォントです。浄書エンジンの Times より幅の広い語は小さく組まれるので、音節が重なることはありません。
- 間隔、小節番号、段の間隔、余白、インク。
- まとめる段数(
minSystemsAtBreak):楽譜が段の下に残す、または次へ送る最小の段数。2にすると1段だけが取り残されることはなく、4段未満の楽譜はまとめて送られます。
すべての項目とその型、既定値は設定 › 楽譜スタイルにあります。Sandbox では デザイン › 図と表 › 楽譜 と 楽譜スタイル で編集します。
#各出力
- Canvas と HTML:各段をベクターのパスと文字で、楽譜のインクの色で描きます。HTML ビューアーは代替テキストで楽譜に名前を付けます。
- PDF:ベクター描画で、文字は本に埋め込んだフォントで組まれます。タグ付き PDF では、各楽譜が代替テキスト付きの
Figureになります。 - EPUB:リフロー型 EPUB では、各段を読む列と同じ幅のインライン SVG で示し、1枚の画像として読み上げます。固定レイアウト EPUB は印刷用の頁をそのまま保ちます。
- Word:書き出した文書は記譜ブロックを書いたまま、コードリストと同じように保持するので、文書を読み込み直すと楽譜が戻ります。
#音楽出版社との作業
Postext は音楽のまわりの本を組み、音楽そのものは引き続き楽譜作成ソフトで書きます。
- Dorico、Sibelius、Finale、MuseScore で楽譜を浄書または校正し、譜例ごとに MusicXML(
.musicxml、非圧縮)で書き出します。 - ファイルを本のリソースに入れ、種類を
exampleにします。短い単旋律の譜例は、章の中に ABC で直接書いてもかまいません。 - 五線の大きさを測り、社の書式の音楽フォントに
scoreStyleで合わせます。囲みや欄外の譜例には名前付きスタイルを使います。 - 本を組んで改頁を確認します。1段に入る小節数は、段の幅、五線の大きさ、間隔で決まります。
postext-port スキルは、音楽の教科書、教本、歌集を移すときに同じ手順をたどります。
#制限
- 段は段の幅いっぱいに埋められます。記譜に書かれた段の区切りはまだ保たれません。
- ABC の読み込みは1声部だけです。
- 圧縮された MusicXML(
.mxl)は先に展開してください。 - 楽譜の完全な版(オーケストラのスコア、パート譜、小節単位で計画した譜めくり)は楽譜作成ソフトの仕事で、本の組版ソフトの仕事ではありません。