マイスさんのページ ユーザー

1.6万文字の記事
  • twitter
  • facebook
  • はてな
  • LINE
これはリビジョン 2639554 の記事です。
内容が古い・もしくは誤っている可能性があります。
最新版をみる

ユーザーボックス
一般会員 このユーザー一般会員です。
Windows このユーザーWindowsを利用しています。
Google Chrome このユーザーGoogle Chromeを利用しています。
ピコ師 このユーザーピコ師として活動しています。
お絵カキコ絵師 このユーザーお絵カキコ絵師として活動することもあります。
マウス このユーザーペンタブを持ってません。

マイスとは、マイスである。

もくじ
  1. 自己紹介
  2. この記事について
  3. 作品一覧
    1. お絵カキコ
    2. ピコカキコ
  4. 大百科についてのメモ
    1. 大百科の文字の色
    2. 見出しのバーの色
    3. 表の圧縮
    4. 記事の幅
    5. スマホからの編集
  5. ピコカキコメモ
    1. ピコカキコ作成に便利なツール・エディタ
    2. 文字数限界
    3. 倍音で音色作り
    4. マクロと置換
    5. マクロに使用できる文字
    6. MMLに絵文字を入れると
    7. 再生時の重さ
    8. 作者の探し方
    9. ピコカキコの投稿頻度について
    10. ピコカキコの重さについて
  6. MIDI→MML変換法
    1. 読む前に
    2. 変更手順
    3. 備考
  7. MML圧縮法
    1. 読む前に
    2. 圧縮手順
    3. 備考
  8. リンク

自己紹介

この記事について

作品一覧

ピコカキコ

No. タイトル スレ
プレイヤー 情報
MIDI/MMLの変化した点

16001 魔女達の舞踏会 ~ Magus 霧雨魔理沙#3594
16001
東方幻想的音楽MIDIから変換 第486回 今週のオススメピコexit_nicochannel
処女
16046 20mシャトルラン 20mシャトルラン#275
16046
元にしたピコカキコ 第499回 今週のオススメピコexit_nicochannel
演奏マクロ設置
16263 魔女達の舞踏会Ver.2.0 魔女達の舞踏会#34
16263
16001のリメイク
MIDI変換法変更/MML形態一新
16313 春の湊に 春の湊に#55
16313
samidare氏のMIDIから変換exit 第506回 今週のオススメピコexit_nicochannel
調整用マクロ設置/圧縮法作成
16404 萃夢想 萃夢想#16
16404
MIDI変換法変更/MML形態変更/ループ設置/演奏マクロ
16890 伝説 DELTARUNE#353
16890
FC音源初めて使用

お絵カキコ

作品番号
タイトル
画像
スレ
情報・備考

1 2 3
ドット絵】びっくり魔理沙 異形の使者『ロミアス ピコカキコ投稿頻度について
【ドット絵】びっくり魔理沙 異形の森の使者『ロミアス』 ピコカキコの投稿頻度について
霧雨魔理沙#3606 ロミアス#83 ピコカキコ#1500
黒歴史
リメイクexit
第503回 今週の扉絵exit_nicochannel
4
羊符「ナイトメア・オブ・キメラ」
羊符「ナイトメア・オブ・キメラ」
ドレミー・スイート#402
5 6
上海アリス幻樂団 バナア 黄昏フロンティア バナー
上海アリス幻樂団 バナア 黄昏フロンティア バナー
上海アリス幻樂団#265 黄昏フロンティア#386
7
DELTARUNE
DELTARUNE
DELTARUNE#195

大百科についてのメモ

表の圧縮

左上 右上
左中 右中
左下 右下
<table>
<tbody>
<tr>
<td style="text-align: center;"><span style="color: #ff0000;">左上</span></td>
<td style="text-align: center;"><span style="color: #ff0000;">右上</span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="color: #ff0000;">左中</span></td>
<td style="text-align: center;"><span style="color: #ff0000;">右中</span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="color: #ff0000;">左下</span></td>
<td style="text-align: center;"><span style="color: #ff0000;">右下</span></td>
</tr>
</tbody>
</table>

<table style="text-align: center; color: #ff0000;">
<tbody>
<tr>
<td>左上</td>
<td>右上</td>
</tr>
<tr>
<td>左中</td>
<td>右中</td>
</tr>
<tr>
<td>左下</td>
<td>右下</td>
</tr>
</tbody>
</table>

HTMLエディタで表を作ると上のようになってしまうことがよくある。そんな時は下のようにして文字数を減らす。

投稿を受け付けました!

これは投稿後に飛ばされるだけのページなので何度アクセスしようが問題ない。

記事の幅

720pxである。
スマホ版は最小で320px(最も幅の狭い機種)。

スマホからの編集

PC表示にすればスマホからでも編集できる。ただしやりづらい。


ピコカキコメモ

ピコカキコ作成に便利なツール・エディタ

ピコカキコ製作に役立つツール一覧」も参照。

FlMMLWriterexit HTMLピコカキコ再生するエディタ
MMLxrexit FlMMLWriterより多機だが重い
deltadriveexit Windows8.1Windows10アプリケーション
FlMML for Androidexit 名前の通り
4ML Projectexit いくつかのFlMMLソフトウェアが入手できるサイト
PetiteMMexit MIDIMML変換ツール
使い方はこちらexit
flmmlminifierexit MML圧縮して文字数を減らせる
テキストエディタメモ帳など) MMLの保存などに使う

文字数限界

文字数が65535をえると投稿できなくなる。ファイルサイズは一切関係ない。

実例

このピコカキコ(16404)は70.8KBと、64KBを上回っているが、投稿できている。

倍音で音色作り

この世のほぼ全ての音には倍音が存在する。従って、ある楽器の音色を作る時、倍音も作ってやれば、再現度がぐっと上がる。

やり方

  1. 作りたい楽器の音ファイルをGETする
    1. 本物の音じゃなくてもいい(MIDIなど)
    2. 単音が望ましい
  2. それをWaveToneexitで解析する
  3. すると倍音の高さと強さと長さが分かる
  4. 倍音を再現する

次のようになる。

@9-0 @E1,2,96,96,9 @V127 NS cdefgab;
@9-0 @E1,2,64,96,9 @V80 NScdefgab;
@9-0 @E1,2,48,96,9 @V50 NS12 cdefgab;

マクロと置換

マクロ化する場合、テキストエディタの置換機を使うと楽にできる。
メモ帳なら置換は「Ctrl+H」で開ける。

CDEFEDCR EFGAGFER CRCRCRCR C8C8D8D8E8E8F8F8EDCR;
R1R1 CDEFEDCR EFGAGFER CRCRCRCR C8C8D8D8E8E8F8F8EDCR;
R1R1 R1R1 CDEFEDCR EFGAGFER CRCRCRCR C8C8D8D8E8E8F8F8EDCR;
R1R1 R1R1 R1R1 CDEFEDCR EFGAGFER CRCRCRCR C8C8D8D8E8E8F8F8EDCR;


検索する文字列[CDEFEDCR]、置換後の文字列[$A]...で置換

$A $B $C $D;
$R $A $B $C $D;
$R $R $A $B $C $D;
$R $R $R $A $B $C $D;


マクロ定義置く

$A=CDEFEDCR;
$B=EFGAGFER;
$C=CRCRCRCR;
$D=C8C8D8D8E8E8F8F8EDCR;
$R=R1R1;

$A $B $C $D;
$R $A $B $C $D;
$R $R $A $B $C $D;
$R $R $R $A $B $C $D;

注意

マクロ定義より下にしか効を発揮しないが、置換は上下なぞ識別しない。そのため

$FRS1=c8g8$FRS2<g8d8c4;
$FRS2=d+8g8>b8;

のようになってしまうことがある。

マクロに使用できる文字

マクロ名の1文字と2文字以降とで使える文字が違う。

1文字目

53文字

ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
_

2文字目以降

67文字

ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
_
+#()

MMLに絵文字を入れると

MML絵文字を入れると文字化けすることがある。多分文字コード的な理由で発生するのだろう。

実例

これ。ちなみにバグなしバージョンこれexit

対策

絵文字を入れないことである。入れようとする人なんていないだろうが。

作者の探し方

お絵カキコもだいたい同様の手順で探すことが出来る。

  1. MML作者名が書かれていないか探す。
  2. 投稿されたスレへ移動し、投稿コテハンを使っているか、掲示板作者情報いかチェックする。
  3. タイトルあるいは曲名でユーザ記事を「本分(記事)検索」する(「両方」でもいい)。稀に自分の作品を載せていることがある。その際、「総ピコカキコ数」を見る。0なら別人と確定する。1以上なら可性ありである。
  4. それがオススメピコに選ばれている場合、「今週のオススメピコ」を閲覧し、作者名がいか調べる。
  5. その人の作品と思われる他のピコカキコも調べてみる。
  6. あきらめる

ピコカキコの投稿頻度について

FlMMLWriterexitを利用して調した。
7000,9500,11000は削除されていたので、7001,9501,11001で代用している。

No. プレイヤー 日付 所要日数 時間/500 タイトル スレ
1
1
2008/09/01()00:20:30 0 0 タイトルなし) グルメレース#76 
500
500
2008/10/05(日) 01:47:33 34 1.632 Lvうp ピコカキコ#292 
1000
1000
2009/01/08(木) 21:26:02 64 3.072 スカンプーの鳴きポケモン 【ピコ】製作がカブらないようにするための記事【ポケモン図鑑】#82 
1500
1500
2009/03/23() 22:44:3 74 3.552 シティコネクション ステージBGM1(その3) しふと#13 
2000
2000
2009/07/04(土) 21:10:28 103 4.944 時の旅人  合唱#6
2500
2500
2009/10/12() 23:37:47 100 4.8 熱き決闘者たち  遊戯王#107
3000
3000
2009/11/10(火) 17:04:00 29 1.392 祝!ピコカキコ3000曲!  ピコカキコ#512
3500
3500
2010/02/28(日) 23:45:16 110 5.28 ダブルリング - EXTRA STAGE 1(修正版) PCエンジン#35
4000
4000
2010/05/30(日) 13:21:03 91 4.368 ドラえもんに出てくるゲームファンファーレ2 ピコカキコ#606
4500
4500
2010/08/13() 01:58:00 75 3.6 プロムナード  ピコカキコ#760
5000
5000
2010/10/03(日) 22:05:59 51 2.448 634ジヘッド(修正版)  【ピコ】製作がカブらないようにするための記事【ポケモン図鑑】#711
5500
5500
2011/01/27(木) 21:42:51 116 5.568 色々いじくった  鉄道唱歌#9
6000
6000
2011/04/14(木) 18:34:00 77 3.696 ヒッティングマーチ2番 阪神タイガース#230
6500
6500
2011/07/17(日) 14:04:56 94 4.512 AKINOKI とぅこの挿絵#306
7001
7001
2011/10/26() 00:04:11 101 4.848 スロット777 >>3が理解できることが不幸#777819
7500
7500
2012/01/31(火) 21:15:27 66 3.168  [1PMUSIC TYPE B(FCヨッシーのクッキー ヨッシーのクッキー#15
8000
8000
2012/05/18() 03:55:31 108 5.184 See you again [Name Entry]  サイバリオン#31
8500
8500
2012/09/29(土) 20:57:05 134 6.432 ~~フラッグ?  これなんて曲だっけ?#1280
9000
9000
2013/01/01(火) 21:29:11 94 4.512 ライトフォワード スーザ#53
9501
9501
2013/03/20() 02:24:33 78 3.744 Odeon - ERNESTO NAZARETH (1910)  自分でうpした動画にピコカキコしまくってみる#351
10000
10000
2013/05/26(日) 03:09:57 67 3.216 高木浩之 西武 応援歌  応援歌のピコカキコ一覧#526
10500
10500
2013/07/28(日) 21:04:44 63 3.024 星のカービィ Green Greens たまごたまご#1
11001
11001
2013/10/23() 22:55:48 87 4.176 東海道五十三次 ステージ1 テスト記事#1671
11500
11500
2014/02/03() 12:12:58 103 4.944  西武 応援歌 応援歌のピコカキコ一覧#877
12000
12000
2014/04/14() 12:27:25 70 3.36 フリーゲームに使われてた これなんて曲だっけ?#2000
12500
12500
2014/07/15(火) 00:33:59 92 4.416 ♪まろうじんのテーマいちほ)  日滝#2 
13000
13000
2014/11/24() 03:54:24 132 6.336 Popularity - GEORGE M. COHAN (1906)  自分でうpした動画にピコカキコしまくってみる#584
13500
13500
2015/05/11() 17:52:57 168 8.064 ヤクルト チャンステーマ3(ALL!FOR!WIN!) 太鼓&ループ訂正 応援歌のピコカキコ一覧#1282
14000
14000
2016/01/21(木) 14:27:41 255 12.24 a >>3が理解できることが不幸#3253781
14500
14500
2016/11/21() 03:15:40 305 14.64 数字は7のみ】LUV TO ME (disco mix ピコカキコ:縛りプレイ#73
15000
15000
2017/10/18() 07:59:13 331 15.888 ピカ割り込み ピコカキコ:基礎コース(1級)#62
15500
15500
2017/11/29() 09:05:15 42 2.016 ミス  ゲスト#280
16000
16000
2018/03/26() 22:43:15 117 5.616 ヨッシーパネポン - ヨッシーテーマ パネルでポン#300
16500
16500
2018/10/11(木) 21:04:06 197 9.456 を慕いて ピコカキコ練習広場#89

グラフ

なお、このグラフには16500以降が含まれていない(古いため)。

ピコカキコの投稿頻度について

ピコカキコの重さについて

読む前に:名称

便宜上定義した。

名称 意味
処理値 ピコカキコの処理中に表示されるの数値。重さの安になる。
コマンド @E1@F、@NSなど、音色の性質を変える記述。
定義 WAVを使う音色において、波形を定義する記述。
WAV10 0,12345678」など。

調査方法

ピコカキコ重い時に発生する処理の処理値を元に調べる。

調査1

これexit再生して調

名前 処理値
/:40 C2:/ 26
/:20 C2R2:/ 26
/:5  C2R2R1R1R1:/ 42
/:20 R1:/ 100

調査2

コマンドなしexitコマンドありexit較して調
重くなっているはずなのに関わらず処理値がほぼ同じなのは総トラック数が違うため(コマンドなし:64 コマンドあり:32)

処理値 順位
名前 (有) (有)
@0 34 33 6 6
WAV9(短) 37 37 5 4
WAV9(長) 36 39 4 5
WAV10 43 42 3 3
WAV13(短) 45 42 2 2
WAV13(長) 46 46 1 1
FMトラック数2) 28 22 7 7
FMトラック数4) 17 12 8 8

調査結果

調査1
  • R1の間隔が大きいほど軽くなる。
  • 間隔が小さすぎるとほとんど軽くならない
  • 間隔が大きすぎると処理値が100になる(非常に軽くなる)
調査2

MIDI→MML変換法

読む前に:名称

説明の便宜上定義した。

共通

名称 意味
MIDI変換 MIDIMML変換のこと。
ドラム ドラムトラック
メロディ ドラムではないトラック
音符 ある1つの音を表すもの。音の高さと長さという2つの情報を持つ。MMLなら「cdefgab」のどれか1つ。MIDIならピアノロール1つ分。
フレーズ 音符のまとまり。音符の複数形。

MIDI

名称 意味
トラック MIDIトラック
トラックに含まれる音符全て。
分離 から特定フレーズを切り取り、別のトラック(特に新規作成したトラック)へ貼り付けること。
和音成分 和音を構成している個々の音符/フレーズ
和音 和音の中で、N番の高さの和音成分。
和音 和音和音成分の個数。
単音 大和音数1のトラックのこと。一切分離する必要がない。

MML

名称 意味
TRACK MMLトラック
TRACKS TRACK全部のこと。
NOTRACKS MMLのうち、TRACKSではない部分全て。

読む前に:前提

変換概説

  • MIDI変換ツールは正確に変換してくれるのは単音のみである(和音は正確にされない)。
  • 和音位ごとに分離することで(単音にすることで)和音再現する

変更手順

  1. MIDIを用意
  2. 各ドラムを分離
  3. トラックの並び替え
  4. 旋律が同じトラック/和音成分を削除
  5. 各和音を和音位ごとに分離
  6. SMFに書き出しMMLに変換
  7. TRACKSの微修正
  8. TRACKをマクロ化
  9. NOTRACKSを作成

準備

Step1:MIDIを用意

MIDI変換するからには当然ながら元となるMIDIが必要になる。
他人のMIDIから変換する場合、使用が許可されているものを使う、許可を取るなど、配慮が必要。
自分で作ったものなら配慮不要。

Step2:各ドラムを分離

ドラムトラックでは、ピアノロールの左側にドラム名が縦に並んだ部分がある。
ドラム名をクリックすると、そのドラムの音符を全て選択することができる。
例えば「Bass Drum」をクリックしたならBass Drumだけを選択することができる。
これを利用して全てのドラムを分離する。

Step3:トラックの並び替え

トラックの順番がそのままTRACKの順番になる。わかりやすい順に並べる。

Step4:旋律が同じトラック/和音成分を削除

少しでも変換後の文字数を減らすために削除する。必須ではない。「旋が同じ」は、高さを変えただけのものも含む。

変換後の操作

ある旋αが使われているトラックA、αよりも1オクターブ低いだけの旋βが使われているトラックBがあったとする。
が同じとはいっても、トラックが違うので、次のようにする。

/*トラックA*/
$NeiroA $Phraseα;
/*トラックB*/
$NeiroB @NS-12 $Phraseα;

Step5:旋律を和音位ごとに分離

和音位ごとに分離する。全てのトラックは単音になる。
「選択範囲の絞り込み」を使えば簡単に分離できる。

選択範囲の絞り込みとは

選択した部分を更に絞り込める機イベントリストピアノロール左の文字が並んでいる部分)で右クリックして[選択範囲の絞り込み]を選ぶと出現。MIDI変換では、右上の[ノートイベントのみ][和音の一番高い音のみ][和音の一番低い音のみ]を使用する。

方法

  1. トラックの音符を全て選択
  2. [選択範囲の絞り込み]を出す
  3. [ノートのみ][高い音のみ]または[ノートのみ][低い音のみ]にチェックを入れて[OK]を押す
    1. これで特定和音位のみが選択される
  4. 3.で選択されたフレーズを切り取る
  5. 新しいトラックを作る
  6. そこに4.で切り取ったフレーズを貼り付ける
  7. 1.~6.をそのトラックから和音がなくなるまで繰り返す

Step6:SMFに書き出しMMLに変換

[ファイル]⇒[SMF書き出し]でSMFに書き出す。それをPetiteMM.batドラッグドロップする。するとMIDI変換される。

Step7:TRACKSの微修正

「^」を「&」に置換

PetiteMMで生成されたMMLは、「&」(タイ、スラー)が「^」になっている。テキストエディタの置換によって全て「&」にする。

一番下のTRACKに「;」を追加

一番下のTRACKには「;」がないため追加する。

ドラムのMMLから「+」を削除

ドラムは音符の高さが変わっても音の高さが変わらない(音色は変わる)。よってドラムの「+」はど意味がない。文字数が増えるだけなので置換で消す。

Step8:TRACKをマクロ化

TRACKはあまりにも長すぎて作成時不便である。なのでマクロにして使いやすくする。

マクロ名について

MIDI変換では、複数のTRACKで1つのトラックを表している。従って、トラックのうち、どのTRACKがどの和音位であるかが分からければいけない。つまりマクロ名に工夫が必要である。

自分は、次のようなマクロ名にしている。

$[トラック名][和音位]

和音位は、高い順にABC...を入れる。
例えば、和音数4のピアノトラックのTRACKのマクロ名はこうなる。

$PianoA=;
$PianoB=;
$PianoC=;
$PianoD=;

手順

  1. マクロ名だけ先に作成
  2. それを各TRACKの上へ貼り付けていく
    1. 「;」で検索テキストエディタの機の方 )すると
      1. 全てのTRACKの最下部には「;」が存在するから

Step9:NOTRACKSを作成

音色、演奏、音量、パンポットを追加する。場合によってはミュートもつける。
TRACKがあまりにも長すぎるからマクロを工夫しなければならない。

ボリュームとパンポット

MIDIに書かれている。それを元に追加する。
ボリュームは、小さい場合はある程度大きくする(例:100120)。

例1

/*========== TRACKS ==========*/
$TRACK1A=(略);
$TRACK1B=(略);
$TRACK2A=(略);
$TRACK2B=(略);

/*========== テンポ ==========*/
/:1 T120 :/;
/:0 T999999/:0 r1:/ T120 :/;

/*========== ミュート ==========*/
$MUTE1 = /:1;
$MUTE2 = /:1;

/*========== 音色 ==========*/
$NEIRO1 = @3 @W30 @E1,0,5,90,170,0,20 @F1,90,40,0 @E2,0,0,50,20;
$NEIRO2@1 Q16 @Q6 @E1,0,10,96,8 @E2,0,10,30,0 @F1,20,102,92;

/*========== 演奏 ==========*/
$MUTE1 $NEIRO1 @V127 @P64 $TRACK1A:/;
$MUTE1 $NEIRO1 @V127 @P64 $TRACK1B:/;
$MUTE2 $NEIRO2 @V110 @P64 $TRACK2A:/;
$MUTE2 $NEIRO2 @V110 @P64 $TRACK2B:/;

/*========== WAVE9 ==========*/
#WAV9(略)

/*========== WAVE13 ==========*/
#WAV13(略)

ごく一部を除き全ての操作をTRACKより下で行える。

例2

/*========== テンポ ==========*/
/:1 T120 :/;
/:0 T999999/:0 r1:/ T120 :/;

/*========== ミュート ==========*/
$MUTE1 = /:1;
$MUTE2 = /:1;

/*========== 音色 ==========*/
$NEIRO1 = @3 @W30 @E1,0,5,90,170,0,20 @F1,90,40,0 @E2,0,0,50,20;
$NEIRO2@1 Q16 @Q6 @E1,0,10,96,8 @E2,0,10,30,0 @F1,20,102,92;

/*========== PLAYER ==========*/
$PLAYER1A = $MUTE1 $NEIRO1 @V127 @P64;
$PLAYER1B = $MUTE1 $NEIRO1 @V127 @P64;
$PLAYER2A = $MUTE2 $NEIRO2 @V110 @P64;
$PLAYER2B = $MUTE2 $NEIRO2 @V110 @P64;

/*========== WAVE9 ==========*/
#WAV9(略)

/*========== WAVE13 ==========*/
#WAV13(略)

/*========== TRACKS ==========*/
$TRACK1A=(略);
$TRACK1B=(略);
$TRACK2A=(略);
$TRACK2B=(略);

/*========== 演奏 ==========*/
$PLAYER1A $TRACK1A:/;
$PLAYER1B $TRACK1B:/;
$PLAYER2A $TRACK2A:/;
$PLAYER2B $TRACK2B:/;

ピコカキコどをTRACKより上で操作できるようになっている。

備考

重さ

重くなりやすい。和音再現するからである。低スペックPCだと粉砕される。
音色を軽くする、ディレイを使わない、重要ではない/必要のないトラック削除するなど軽くする工夫が必要になる。

ループさせる方法

End of Track(「トラックの終端」のDominoでの呼び名)を全トラックで統一すればループできるようになる。

方法
  1. 演奏開始位置をトラックの終端にしたい位置に設定する
  2. イベント]から[End of Trackの調節]を選ぶ
  3. End of Trackが統一される

ただしループ開始地点が曲の最初ではない場合もうちょっと操作が必要。

音量

  • PetiteMMは音量情報まで変換してくれない。トラックの音量変化も一切なし。
  • 部分的に音量が狂うことがよくある
  • 音色の音量によってTRACKの音量が変わってしまう。

上記の理由で、MMLにすると音量が変わってしまう。音量調節は必須である。
できるだけMIDIの音量を再現できるよう、何度もボリュームの数値を変更しなければならない。

部分的な音量の狂い

これは相対音量定(「(」と「)」)によって調節する。TRACKの中に置いて使用するため配置が面倒臭い。

マクロを使うと調節が楽になる(マクロを使わなかった場合いちいちTRACKの該当箇所へ移動しなければならない)。

/*========== 調節 ==========*/
$ONRYO1A = ))))))))))))))))))))))))))))));
$ONRYO1B = ((((((((((((((((((((((((((((((;

/*========== TRACK ==========*/
$TRACK_1_A=
o6f+8c+8e16.r32e16f+6r48c+16e8f+16c+16e16
a12c+12a12g+12>b12<g+12f+12>a12<f+12c+16r8f+8.
$ONRYO1A
>b8<c+16e6r48>a8b8<c+16r16g+16.r32
a16.r32c+16.r32b16.r32c+16a8r16e16f+16r16e16r8
c+16.r32e16.r32f+6r48c+16.r32c+16e16.r32f+16.r32>b16.r32
a16.r32g+16.r32<e16.f32f+16.r32c+16.r32>b16.r32a16.r32g+16.r32
$ONRYO1B
a16.r32g+16.r32f+16.<c32c+8>a16.r32g+16.r32f+16g+16<e16>b16
a16.r32g+16.r32f+16.r32c+16.r32g+16.r32f+16.r32e16.r32>b16.r32

テンプレ

Step8は作業がかなり多い。これを少しでも軽減するためにある程度MMLテンプレを作成しておくと良い。

圧縮

TRACKS文字数が膨大なので圧縮しなければならないケースが多い。


MML圧縮法

読む前に:名称

なお、この項には「MIDI→MML変換法」の「読む前に:名称」で定義した単も使われている。

名称 意味
置換 テキストエディタの置換機。またそれによって置換すること。
置換ミス 置換でミスすること。
置換数 置換できる個数。
減少数 置換した時に減らすことのできる文字数。
音高 音の高さ。「C16」における「C」の部分。
音価 音の長さ。「C16」における「16」の部分。
分離 テキストから特定文字を切り取り、別のテキスト(特に新規作成したテキスト)へ貼り付けること。
マクロ定義 マクロ定義している部分。例:$MACRO=cdefgab;
マクロ定義ファイル マクロ定義を置くためのテキストファイル
N文字マクロ 文字数がNであるマクロのこと。例えば「$MUTE」は5文字マクロ
WAV WAV9とWAV10とWAV13のこと。

読む前に:前提

圧縮概説

圧縮手順

  1. 曲に関係ないものを削除する
  2. マクロ名を短縮
  3. TRACKSを分離
  4. @NSを使いドラムの音高を統一
  5. 「L」によって1種類分音価削除
  6. 全ての改行を削除
  7. マクロ定義用ファイルを作成
  8. R1を置換
  9. 3文字以上の音符を2文字マクロで置換
  10. ドラムのフレーズをマクロ化
  11. メロディのフレーズをマクロ化
  12. 結合する
  13. 結合したMMLから改行を消す

Step1:曲に関係ないものを削除する

削除しても曲(再生した時に流れる音楽)に変化がないものを削除する。

ミュート用マクロを削除

$MUTE1 = /:1;
$MUTE2 = /:1;

$MUTE1 $NEIRO1 @V127 @P64 $TRACK1A:/;
$MUTE1 $NEIRO1 @V127 @P64 $TRACK1B:/;
$MUTE2 $NEIRO2 @V110 @P64 $TRACK2A:/;
$MUTE2 $NEIRO2 @V110 @P64 $TRACK2B:/;

/**/を削除

/*========== 音色 ==========*/
/*----- ピアノ -----*/
$NEIRO1 = @3 @W30 @E1,0,5,90,170,0,20 @F1,90,40,0 @E2,0,0,50,20;

圧縮後も残しておきたいものを除き全て削除する。

Step2:マクロ名を短縮

$NEIRO1 @V127 @P64 $TRACK1A:/;
$NEIRO1 @V127 @P64 $TRACK1B:/;
$NEIRO2 @V110 @P64 $TRACK2A:/;
$NEIRO2 @V110 @P64 $TRACK2B:/;

$N1 @V127 @P64 $T1A:/;
$N1 @V127 @P64 $T1B:/;
$N2 @V110 @P64 $T2A:/;
$N2 @V110 @P64 $T2B:/;

置換によって駄に長いマクロ名を短縮する。
「2A」のような部分は削除しない。

Step3:TRACKSを分離

$N = @3 @W30 @E1,0,5,90,170,0,20 @F1,90,40,0 @E2,0,0,50,20;

$T1A=(略);
$T2A=(略);
$T2B=(略);

$N1 @V127 @P64 $T1A:/;
$N1 @V127 @P64 $T1B:/;
$N2 @V110 @P64 $T2A:/;
$N2 @V110 @P64 $T2B:/;

NOTRACKSを残したままTRACKSを置換すると置換ミスが発生するので(特にWAV9)。
TRACKSを分離するよりもNOTRACKSを分離する方がい(TRACKSが長すぎるから)。

Step4:@NSを使いドラムの音高を統一

$D1=c1c1c1c1;
$D2=e2e2e2e2e2e2e2e2;
$D3=g4g4g4g4g4g4g4g4g4g4g4g4g4g4g4g4;

$D1=c1c1c1c1;
$D2=@NS+4 c2c2c2c2c2c2c2c2;
$D3=@NS+7 c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4;

ドラムの音高は1TRACKに1種類しかないため、@NSを使えば全てのTRACKの音高を統一することができる。bとeに#がないことに注意する。

Step5:「L」によって1種類分音価削除

$T1A=f+16r16<d+16>f+16f16r16<c+16>f16f+16r16<d+8>a+16<d+16f8;
$T2A=f+8g+16f+16r16f+16f8c+8>a+8<c+16d+4&d+16;
$D3=c16r16c16r16c16r16c16c16c16r16c16r16c16c16c16c16;

$T1A=f+r<d+>f+fr<c+>ff+r<d+8>a+<d+f8;
$T2A=f+8g+f+rf+f8c+8>a+8<c+d+4&d+;
$D3=crcrcrcccrcrcccc;

最も減少数が多くなる音価を削除する。

減少数の計算

[置換数]*[文字数]=[減少数]

例えば音価「16」の置換数が5000だった場合減少数は5000*2で10000

Step6:全ての改行を削除

改行削除ツールを使う。[改行 削除]でググれば出る。

Step7:マクロ定義用ファイルを作成

マクロと置換」の「注意」で書いた現を回避するため。
置換する度にここにマクロ定義を置く。

以降の置換の手順

 1. 置換する前にマクロ定義ファイルに[置換後(マクロ名)]=[置換前(マクロ内容)];を置く

$A=a+8<f+16r16>a+16;
$B=r16>g+8<f16r16>;

 2. 置換する

$A<f+8$Ba+16<a+8r16
>$A<f+8>a+16g+8<f16r16>g+16<f8r16
>f+8<d+16r16>f+16<d+8$Bg+16<f8r16
>$A<f+8>a+16$A<f+8r16
>a+8<a+16r16>a+16<f+8$Ba+16<f+8r16

Step8:R1を置換

MIDI変換したMMLにはr1が大変多い。
よって削除する

削除手順

  1. [r1r1]⇒[$A]で置換
  2. [$A$A]⇒[$B]で置換
  3. [$B$B]⇒[$C]で置換
  4. この要領で置換できなくなるまで置換

Step9:3文字以上の音符を2文字マクロで置換

かたっぱしから置換する。
音符によっては1000以上文字数を減らせることもある。

3文字以上の音符の例

Step10:ドラムのフレーズをマクロ化

Step4で全て同じ音高になったので大量に置換できる。
多く使われているフレーズガンガン置換する。

Step11:メロディのフレーズをマクロ化

これは3文字以上のマクロで行ってもさほど減少数にはない。
置換数が同じでもできるだけ文字数が多くなるようにする。

置換数と文字数

a+8<f+16r16>a+16<f+8r16>g+8<f16r16>a+16<a+8r16
>a+8<f+16r16>a+16<f+8>a+16g+8<f16r16>g+16<f8r16
>f+8<d+16r16>f+16<d+8r16>g+8<f16r16>g+16<f8r16
>a+8<f+16r16>a+16<f+8>a+16a+8<f+16r16>a+16<f+8r16
>a+8<a+16r16>a+16<f+8r16>g+8<f16r16>a+16<f+8r16

例えばこのTRACKにおいて

a+8<f+16

a+8<f+16r16>a+16

検索される場所が被っており、置換数も同じである。
しかし後者で置換した方がより減らせる。

Step12:結合する

マクロ定義用ファイルからマクロ定義を貼り付ける

Step7で作ったマクロ定義ファイルからマクロ定義をTRACKSへ貼り付ける。

NOTRACKSを元に戻す

Step3で分離したNOTRACKS復活させる。

Step13:結合したMMLから改行を消す

Step13-1:MMLからWAVを分離

WAV改行を消すと使えなくなるから。

Step13-2:改行を削除

Step6で使った改行削除ツールを使う。
ついでに空白削除する(これもググれば出る)。

Step13-3:WAVを元に戻す

すぐに終わる。

Step13-4:消せる分だけWAVの改行を消す

人力で消す。ついでに消せるだけ空白を消す。

備考

手っ取り早く圧縮したい人は

変更手順から楽に多く減らせるものを抽出した。この中から適当に選んで圧縮する。文字数がそんなに多くないのであればこれで充分である。

置換ミス

置換でミスすると旋がおかしくなる。
これは圧縮するにおいて常に考えねばならない危険である。

定期的チェック

置換ミスをしていないか確認するため、定期的に曲を再生して変になっているところがないかチェックする。

バックアップ

万が一置換ミスしてもやり直せるようにバックアップをこまめに取る。


リンク

記事編集

お絵カキコ

ピコカキコ

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2024/04/20(土) 13:00

ほめられた記事

最終更新:2024/04/20(土) 13:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP