TiMidity Change Logs (Version 0.2i+W)
+W34
+W33
- 同一時刻のイベントは先頭にある方を優先するように修正しました.
- memb.c: タイプミスをフィックス.はずかしいので,これ以上言わない.
- Windows/pdcurses 用の修正.非トレースモード時の改行を正しく動作
するようにしました.
+W32
- 演奏時のドラムチェンジがいつのまにかバグっていたのをフィックス.
- sound font まわりのバグフィックス.
+W31
- emacs_c.c のバグフィックス.
- playmidi.c: adjust_pressure の処理に関するバグフィックス.
- playmidi.c: vidq_head, vidq_tail の初期化に関するバグフィックス.
- memb.c, url_cache.c のポイント位置に関するバグフィックス.
+W30
- Windows のための修正.
- current_play_tempo 変数更新のバグフィックス
この変数は現在使用していないので,このバグフィックスは特に重要では
ありません.
- timidity.c:read_config_file() のエラー処理にあったちょっとしたバグを修正
+W29
- readmidi.c:read_midi_event() のバグフィックス
- sndfont.c:make_inst() のバグフィックス
+W28
- GS reset でテンポまでリセットされてしまうというバグのフィックス
- set_channel_flag() のエラー表示のバグフィックス
- win32 用に vwprintw を作成しました.
- 曲の終了チェックを少し厳しくしました.
曲終了間際の発音数 0 の状態で,Note On イベントがもう存在しない場合は
曲を終了させてしまうようにしました.
- isatty(0) が真かつ PAGER が定義されている場合にかぎり PAGER を popen
するように修正
- いくつかマクロ名を変更
+W27
- close された ctl に対してアクセスされるというバグのフィックス
- オリジナルの TiMidity のバグフィックス.
Division by zero で落っこちるバグを直しました.
- GS reset に対応しました.
曲の途中で GS reset を発行する MIDI ファイルなんてないよって思っていたら
ほんとに存在したので対応しました.
+W26
- Windows 版のための修正
- Ncurs_c.c => nncurs_c.c と改名
- Makefile の修正
+W25
- ちょっと最適化 (でも速度が変わらなかったけど)
- playmidi.c:recompute_freq() のバグフィックス
また 1 ヶ所重大なバグがありました.本バージョンより古いバージョンは
一部の機能が正常ではありません.
+W24
- smfconv.c の改良 [from 青木大輔]
- url_mem.c:69 のバグフィックス
+W23
- arc.c のバグフィックス
- カラオケ歌詞表示のスペースセパレータを除きました.
+W22
- Mac-binary のアーカイブファイル (LZH, ZIP, TAR, TGZ) に対応しました.
- smfconv.c に残っていた url2 を削除しました.
- arc.c:add_archive_list() のバグフィックス
+W21
TMPDIR
は '/' で終わらなくてもよくなった.
- audriv_al.c のバグフィックス
type* name
の形式を type *name
の形式に統一
DECOMPRESSOR_LIST
関係のルーチンのバグフィックス
+W20
- -iN インターフェースで,'
D
' キーでも演奏中に
ドラムチャネルを指定できるようにしました.
- open_with_string => open_with_mem
- -iN インターフェースで,ネットワーク上の MIDI ファイルのチェック&取得の
無駄なアクセスをなくしました.
ただ,ちょっとでっちあげっぽい実装になってしまっているので,
あとでここの部分はゴソっと変更されるかもしれません.
- URL_cache のバグフィックス
- readmidi.c:get_smf_title() のバグフィックス
+W19
- ドラムチャネルのビットベクトル用に
DrumChannelBits
型を
もうけました.
- Channel Prefix (Meta 0x20, SMF 1.0) を認識 (するだけで,何もしない).
Channel Prefix は SMF 1.0 で導入されたメタイベントで,
システムエクスクルーシッブメッセージやメタイベントのチャネルを指定する
ために用いられるようです.
- MIDI Port (Meta 0x21) を認識 (するだけで,何もしない).32 チャネル MIDI
対応への準備.
- Windows(Borland C++) でコンパイルする場合,例外処理を加えました.
[from 青木大輔]
- Windows で rcpcv.dll を用いて rcp,r36,g36 が演奏できるようになりました.
[from 青木大輔]
- main をスッキリさせてしまいました.
- デフォルトの Manufacture ID を
-Em<HH>
オプションで指定できるようにしました.<HH>
には Manufacture ID を 16 進数で指定します.
audriv_al.c:274:alDiscardFrames(out, alGetFilled(out));
を削除しました.
+W18
- KAR に関する部分を改良
KAR タイトルの認識
カラオケ歌詞トラックの最初の Text 部分が無視されるというバグの FIX
- URL に関する部分を改良
URL_cache の追加:URL_cache は読み込んだデータのコピーを全て保持し
どの場所へも seek することができます.
url_buff.c: fill_buff を prefetch と改名
- struct timidity_file の url2 を削除
- -iN インターフェースでの入力モード時に,日本語をペーストして入力
できるようにしました(日本語をサポートしていない ncurses には無意味).
- tables.h の
PI
を M_PI
に修正
+W17
- 英語以外の KAR が認識されていないバグを直しました.
- Note OFF 後,同一音に対して Note ON イベントが発生した場合は,その古い
音を即消すようにしました(要するに Release ステージがなくなり,
VOICE_DIE
になる).
+W16
+W15
- オリジナル wave_a.c のバグフィックス.
- *.c の <errno.h> を "config.h" に集約
- πを
M_PI
で統一.
PI
が標準で定義されているのは Linux だけ?
- memb の URL モジュールに url_seek, url_fgetc を追加
- url_seek まわりのバグフィックス (url_file, url_mem, url_buff)
- XG 音源のための修正
- XG MSB Bank select によるドラムチャネルの自動認識
システムエクスクルーシブにより XG と認識できた MIDI ファイルは,
ほぼ完全にドラムチャネルを認識することができるようになりました.
- -Ex オプションで起動すると,
システムエクスクルーシブにより XG と認識できた MIDI ファイルは,
XG のバンク切り替えが有効になるようにしました.
ただし,GS とは音色が異なるので XG 用の音色の cfg ファイルが必要です.
- Bank Select/Program Change まわりを修正
Select Bank では音色は変化しないで,バンクの変更を覚えるだけになりました.
Program Change 時にはじめてバンクを入れ替え,プログラムが変化するように
修正しました.
- KAR(Karaoke フォーマット) の歌詞をトレースするようにしました.
- 同一音の NoteON -> NoteOFF の重なる音も正しく
発生させるようになりました.
ただし -EOオプションでこの機能を無効にできます.
+W14
- Velocity 0 の Note On イベントを MIDI 読み込み時に Note Off
に変換するようにしました.可読性を良くするためです.
- linux_a.c を改良.Linux/FreeBSD で -iNt などの表示の同期を改善しました.
- Makefile の -lmytinfop となっているところを -lmytinfo に修正
- common.h:29:extern FILE *msgfp; を削除
- config.h で HAS_UNION_SEMUN を定義すると,tk_c.c で
union semun
を用いるようにしました.
- URL_DIR_CACHE_ENABLE をデフォルトで定義
- Channel pressure をデフォルトで無効になるようにしました.
メーカによって,機能が異なるためです.
-Esオプションで有効になります.
これより古いバージョンの変更履歴は作っていません.
無造作に改良しまくっていたので,コーディングしている間に何を変更したか
書き覚えておくのが面倒だったから.ごめんなさい.