MML reference: Portamento2

定義(Define)

        {note1 (Accidentals1)(length)(Tai/Slur|,Gatetime)(octave)note2(Accidentals2)}

        {note1 (Accidentals1)(octave)note2(Accidentals2)}(length)(Tai/Slur|,Gatetime)

引数(Inputs)

音名以外は省略可能です。
length, Tai/Slur,Gatetimeの記述位置は、開始音程の直後及び、`}'の直後の何れでも可です。

Note1

ポルタメントの開始音程です。

a …
A, La, ラ
b …
H, Si, シ
c …
C, Do, ド
d …
D, Re, レ
e …
E, Mi, ミ
f …
F, Fa, ファ
g …
G, Sol, ソ

Accidentals1

ポルタメントの開始音程の臨時記号です(省略可)。

+ …
♯ Sharp
# …
♯ Sharp
- …
♭ Flat
= …
♮ Natural

Note2

ポルタメント先の音程です。
note1と同様に指定してください。

Accidentals2

ポルタメント先の音程の臨時記号です(省略可)。
Accidentals1と同様に指定してください。

octave

ポルタメント先への相対オクターブです(省略可)。
複数指定きます。

> …
オクターブを1つ上げます。
< …
オクターブを1つ下げます。
` …
ポルタメント先だけ、オクターブを1つ上げます。
" …
ポルタメント先だけ、オクターブを1つ下げます。

Length

音長。
length分音符となります。
.を付与することで付点の音長を表現可能です。
この.は複数指定可能です。
付点のみを付けた場合は、lコマンドで指定した数値に付点が付いた音長となります。

数値の頭に%を記述した場合は、length[Tick]の長さとなります。

また、演算子 + 及び - を用いて音長の加減算が可能です。

lengthを省略時は、lコマンドで指定した数値が適用されます。

Tai/Slur

&を記述する事で、タイ(次の音と繋げる)・スラー(次の音と滑らかに繋げる)を意味します。
音源ドライバー内部では、この音符ではKey-Off処理をせず、次の音符ではKey-On処理をしません。

Gatetime

ゲートタイム(実際に発音する長さ)を指定します。
指定した場合、q, uコマンドのゲートタイムに優先されます。
0はゲートタイム無効で、lengthの長さで発音します。

引数lengthと同様の指定が可能です。

内容(Contents)

指定の音長でポルタメントをかけます。

注意(Notes)

MMLコンパイラの疑似命令で、このコマンドはコンパイル時にPコマンドに変換します。
Pコマンドでは、フレーム単位で指定となりますが、本コマンドにおいて音長(tick)単位の記述を可能とするため、
MMLファイルとして以前に記述されたテンポコマンド(他のトラックを含む)の数値から、長さの算出を行います。

『変化量(半音単位)×16』より、『フレーム長』が大きい場合は、Pコマンドdepthを1か-1に固定し、rateを可変します。
『変化量(半音単位)×16』より、『フレーム長』が小さい場合は、Pコマンドrateを1に固定し、depthを可変します。

例(Sample)

※以下4つのポルタメントは、全て同じ意味です。

    {c#2&>c#} c#2     /* Octave Portamento */
    {c#2>c#}& c#2     /* Octave Portamento */
    {c#&>c#}2 c#2     /* Octave Portamento */
    {c#>c#}2& c#2     /* Octave Portamento */