MIDIFileReaderとは、obj拡張子のAviutlスクリプトの1つである。
設定項目[]
MIDIファイル読み込み[]
トラック | 最小値 | 最大値 | 初期値 | 刻み単位 |
---|---|---|---|---|
毎初期 | 0 | 1 | 0 | 1 |
表示 ピアノロール[]
トラック | 最小値 | 最大値 | 初期値 | 刻み単位 |
---|---|---|---|---|
幅 | 0 | 2048 | 640 | 1 |
高さ | 0 | 2048 | 480 | 1 |
速度 | 0 | 2000 | 100 | |
トラック | 0 | 32 | 0 | 1 |
Dialog | ||||
色 | ||||
再生位置表示 | ON | |||
中心位置 | 0 | |||
ノートオフ透明度 | 30 | |||
減衰 | OFF | |||
小節線 | OFF | |||
小節線 フォント | "MS ゴシック" | |||
小節線 文字サイズ | 16 | |||
小節線 文字位置 | 100 | |||
小節線 透明度 | 75 | |||
拍線 透明度 | 90 | |||
オクターブ線 透明度 | 90 | |||
音階線 透明度 | 100 | |||
マーカー サイズ | 16 |
色[]
空欄にすると色が自動で設定されます
表示 ピアノロール3D[]
トラック | 最小値 | 最大値 | 初期値 | 刻み単位 |
---|---|---|---|---|
サイズ | 0 | 512 | 32 | 1 |
幅 | 0 | 10000 | 3000 | |
速度 | 0 | 2000 | 500 | |
トラック | 0 | 32 | 0 | 1 |
Dialog | ||||
色 | ||||
再生位置表示 | ON | |||
中心位置 | 0 | |||
ノートオフ透明度 | 50 | |||
減衰 | OFF | |||
トラックのパディング | 32 |
表示 鍵盤[]
トラック | 最小値 | 最大値 | 初期値 | 刻み単位 |
---|---|---|---|---|
モード | 1 | 2 | 1 | 1 |
トラック | 0 | 32 | 0 | 1 |
Dialog | ||||
画像ファイル | "keybord.png" | |||
キー 上限 | 96 | |||
キー 下限 | 24 |
表示 鍵盤(等間隔)[]
トラック | 最小値 | 最大値 | 初期値 | 刻み単位 |
---|---|---|---|---|
モード | 1 | 2 | 1 | 1 |
トラック | 0 | 32 | 0 | 1 |
Dialog | ||||
画像ファイル | "keybord.png" | |||
オクターブ 上限 | 2 | |||
オクターブ 下限 | 7 |
表示 動画再生(速度指定)[]
トラック | 最小値 | 最大値 | 初期値 | 刻み単位 |
---|---|---|---|---|
開始位置 | 0 | 1000 | 0 | 0.01 |
再生速度 | -2000 | 2000 | 100 | 0.01 |
待機位置 | -1 | 1000 | 0 | 0.01 |
トラック | 0 | 32 | 2 | 1 |
アルファチャンネルを読み込む |
表示 動画再生(フレーム指定)[]
トラック | 最小値 | 最大値 | 初期値 | 刻み単位 |
---|---|---|---|---|
開始位置 | 0 | 10000 | 0 | 1 |
終了位置 | 0 | 10000 | 100 | 1 |
待機位置 | -1 | 10000 | 0 | 1 |
トラック | 0 | 32 | 2 | 1 |
アルファチャンネルを読み込む |
表示 歌詞[]
トラック | 最小値 | 最大値 | 初期値 | 刻み単位 |
---|---|---|---|---|
イン | 0 | 10 | 0.5 | 0.01 |
アウト | 0 | 10 | 0.5 | 0.01 |
表示秒 | 0 | 100 | 10 | 0.01 |
次歌詞データまで表示させ続ける | ||||
Dialog | ||||
フォント | "MS UI Gothic" | |||
サイズ | 34 | |||
装飾[0-4] | 0 | |||
色1 | 0xffffff | |||
色2 | 0x000000 | |||
表示速度 | 0 | |||
基準位置[1-9] | 4 |
--[in|vtime|out/ntime] "view" sec [ next lyric ]
使い方[]
まずは「MIDIファイル読み込み」で読み込みます。他のスクリプトはその後でないと動きません。
生成されるテーブルと追加関数[]
MFR[]
- [track]
- [note]
- .channel : チャンネル番号
- .notenum : ノート番号
- .noteon : ノートオン時のデルタタイム
- .noteoff : ノートオフ時のデルタタイム
- .noteontime : ノートオン時の経過秒
- .noteofftime : ノートオフ時の経過秒
- .velocity : ベロシティ
- .pitch : ピッチベンド
- [index]
- .time : 変化するデルタタイム
- .ttime : timeを秒に変換したもの
- .pitch : ピッチ(半音単位)
- [index]
- .trackname : トラックエンド時のデルタタイム
- .trackend : トラックエンド時のデルタタイム
- [note]
- .bpm
- [index]
- .bpm : 変化後のBPM値
- .time : 変化するデルタタイム
- .ttime : timeを秒に変換したもの
- [index]
- .beat
- [index]
- .beat : 変化後の拍子(分子)
- .denom : 変化後の拍子(分母)
- .time : 変化するデルタタイム
- .ttime : timeを秒に変換したもの
- [index]
- .beatx
- [measure]
- .time : 小節の先頭の時間(デルタタイム)
- .beat : 拍子(分子)
- .denom : 拍子(分母)
- .totalbeat : 今までの累計拍数
- .ttime : timeを秒に変換したもの
- [measure]
- .lyric
- [index] : テキスト系イベント
- .track : データのあるトラック
- .time : イベントのあるデルタタイム
- .text : 歌詞
- .ttime : timeを秒に変換したもの
- .index : ソート用
- [index] : テキスト系イベント
- .marker
- [index] : テキスト系イベント
- .track : データのあるトラック
- .time : イベントのあるデルタタイム
- .text : マーカー
- .ttime : timeを秒に変換したもの
- .index : ソート用
- [index] : テキスト系イベント
- .text
- [index] : テキスト系イベント
- .track : データのあるトラック
- .time : イベントのあるデルタタイム
- .text : テキスト
- .index : ソート用
- [index] : テキスト系イベント
- .resolution : 分解能(四分音符のデルタタイム)
- .time : 現在の時間(拡張スクリプトにより付加)
MFR.getTime(dtime)[]
デルタタイムを秒に変換します
MFR.getDTime(time)[]
秒をデルタタイムに変換します
MFR.getBeat(time)[]
秒をビートに変換します
MFR.getMeasure(time)[]
秒を小節に変換します
MFR.getBPM(time)[]
現在のBPMを取得します
MFR.getFirstNote(track,time)[]
timeにより指定された時間に鳴っている音のうち、もっともインデックスが小さいものを返します
- テーブルのインデックスが各トラック番号になります
MFR.getNoteonTable(track,time)[]
以下のような構造を持つテーブルの配列を返します
- track : トラック番号
- data : データの位置(note[]に対応)
- notenum : ノート番号
- velocity : ベロシティ
MFR.getPassedNoteCount(track,time)[]
time以前に鳴ったノートの個数を返します
MFR.getFirstPitch(track,time)[]
timeにより指定された時間に適用されているピッチベンドのインデックスを返します
- テーブルのインデックスが各トラック番号になります
MFR.getLyricTable(time)[]
指定時間における最新の歌詞テーブルを取得します
- 戻り値2つ目にMFR.lyricに対応するインデックスが返ります
MFR.getLyric(time)[]
指定時間における最新の歌詞を取得します
MFR.getInfo()[]
簡単な情報をstringで取得します
共通事項[]
- trackで数値が指定された場合、そのトラック内での情報、nilの場合全トラックの情報をテーブルで返します
- デルタタイムとは、フレームのようなMIDIにおける単位時間のようなものです
- MFR.resolutionが四分音符のデルタタイム長となります
- テキスト系データは、デルタタイムを基準に昇順のソートをします
- 同時間の場合はトラックの昇順、同時間同トラックはイベント順です