動作環境
Firefox 59, Chrome 64 にて動作を確認しています。
使い方
書きかけメモです。
-
「SMF (*.mid,*midi)」と書かれたボタンを押し、変換したいファイルを選ぶ。
-
出力したいトラックの「Output Poly」欄でそのトラックに割り当てるMMLでのチャンネル数を指定する。
プチコン3号/BIGの仕様上合計16チャンネルが上限だが、超えていてもMMLの出力は行われる。
-
必要であれば Volume(音量) と Trasnpose(移調) と Detune(ピッチ) の値を変更し、出力するMMLを調節する。
-
出力結果を不思議な力でプチコンに送る。
-
プチコン上で再生し、好みに合わせて調節する。
曲先頭で音量とオクターブが「V100O4」で初期化されるので、その部分を調節すると一括で変更できる。
なお出力時にコメントで追加されるticksは、192分音符の数で表した曲の長さ。48(=4分音符のticks数)で割ると拍数に、192(=4/4で全音符のticks数)で割ると4/4での小節数になる。
-
完成:)
仕様・制限
- SMF Format 1、タイムベースがテンポベースのフォーマットのみ対応
- MMLの出力は16チャンネルを超えていても可能。実機では再生できない(分割・修正すればできなくはない)
- 曲先頭で「V100O4」で音量・オクターブを初期化、その後は相対指定で音量・オクターブは変更される。
- 音色変更コマンドは発声直前、音量・デチューンは音が鳴っている間のみ発行される。
- ピッチベンドは&コマンドと@Dコマンドを組み合わせて再現している。このため余韻部分のピッチベンドは一般的なMIDI音源とは違う挙動になる。
- モジュレーションは@MOF/@MONのみ発行されるため、MML上で@MPコマンドなどを追加する必要がある。
受け付けるイベント
- CC#1 Modulation (0..63:@MOF, 64..127:@MON に変換)
- CC#7 Volume
- CC#10 Panpot
- CC#11 Expression
- CC#32 Bank(LSB)
- CC#64 Sustain Pedal (0..63:off, 64..127:on)
- CC#111 (ループ先頭。トラックの終わりがループ終端になる)
- Pitch Bend
- Pitch Bend Sensitivity (RPN:00H 00H)
- Program Change (CC#32を使って 0〜511)
- Set Tempo