ƂăIWĩ\[XɎ̂݋Lq
IWĩ\[XR[h Kobarin ӏɂ "Kobarin" Ƃ
񂪊܂܂

v0.17
  Efreq.c::freq_initialize_fft_arrays C
    length == 0 ̂Ƃɗ

v0.09
Ereadmidi.c::read_sysex_event C
  Ereadmidi.c::parse_sysex_event_multi ̓ evm ĂȂ
    Ƃ낪̂ŁAparse_sysex_event_multi ĂяoOɔz evm 
    悤ɏC
    SETMIDIEVENT(evm[num_events], x, x, x, x, x);
    ̂悤ɌĂяoĂ镔̂AȂ evm[0] ƂɂȂ
    ̂CɂȂcBevm[0] ƂɂĂ镔ł num_events 
    CNgĂ͂܂悤ȁcB
  Eevm.type  ME_EOT ŏĂꍇɁAŌ܂ŉtȂ
    f[^͂̃oȌC̉e󂯂
  Ez evm ĂȂƁAۂ͏IĂȂ̂ɉtI
    Ă܂AĐxɍĐʂω邱ƂB
    sI邱Ƃ邩B

v0.08
EV[NΉ̂߂ play_midi.c  g_midi_start_time ǉĂ
  ̂p~Bplay_midi.c ɃV[NɑΉ

v0.07
Esffile.c::free_layer() Ci[Nj
Esndfont.c::free_soundfonts() ǉi[Nj
Einstrument.c::free_tone_bank Ci[Nj

v0.06
Eread_midi.c C
  Egroom_list()  counting_time  0 ɏC
  E`̖𖳎Ȃ悤ɂ邽

v0.05
Eplay_midi.c C
  EV[NɑΉ邽߁AO[oϐ g_midi_start_time ǉ
  Eplay_midi() ֐ skip_to() ̈ midi_restart_time 
    g_midi_start_time ɕύX
  Ectl_read  RC_JUMP Ԃ悤ɂ邱ƂőΉł͂Ȃ̂A
    tJnɍĐʒuύX悤ƂƂ܂Ȃ

v0.04
Eresample.c Ciۂ resample.c  _resample_.c 
  Cj
  Eresample_linear  ofs lɕ̒lnė邱Ƃ
    bΏ
    EmFf[^FDQS8P.MID by TRIGLAV
    EtJn72b炢̈ʒuŔ
    EV[NȂŉtƊmɔAV[NƂ͔Ƃ
      ƂȂƂ
    ERtBOt@C̓eɂĂ͔Ȃ
  E ofs lɕ̒ln邱Ƃ
  E̒lłȂĂAsɑ傫Ȓln邱Ƃ邩Ȃ
  Eresample_linear ȊOgɂ͂Ȃ肪NȂ
  EǂSR֌WȂɖ肪̂H
Ecommon.c::try_to_open()
  EIWî܂܎g悤ɏCBŐVŎ荞ݎɏCKv
    ȂȂ

v0.03 ȑO

F

IWĩ\[XR[h TiMidity++-current-040525-0000
o邾IWĩ\[XR[hɂ͏CȂ悤ɂĂB
CĂt@C͈ȉ̒ʂB

Econfig.h    ( #include "kbtim\kbtim_config.h")
Einterface.h ( #include "kbtim\kbtim_interface.h")
Eplaymidi.c  (#define REDUCE_VOICE_TIME_TUNING 폜A
               O[oϐ g_midi_start_time ǉA
               play_midi_file() C)
Ereadmidi.c  (read_midi_file(), open_midi_file(), get_midi_title())
Eresample.c iresample_inline() ǉj
//Ecommon.c    (try_to_open())

LTt@CɂẮAŐV TiMidity ̃\[XR[hgݍނƂɂC
KvB

oOF

Eaq.c
Erecache.c
Eresample.c
Eplaymidi.c
Ereadmidi.c

LTt@CŃ[NmFĂB
炭p̊֐ǉȂƉs\ƎvB
̂ALSt@CɂẮAꂼ

E_aq_c
E_recache_.c
E_resample_.c
E_playmidi_.c

ŃIWi #include A֐ǉ邱ƂɂA[N
ĂBiIWĩ\[XR[ĥ͈؏CĂȂj
IWiɃ֐΁ȀC͕svɂȂB

readmidi.c ɂĂ free_userdrum  free_all_midi_file_info CA
free_userdrum2 V݂邱ƂɂA[NBiڍׂ͌qj


̓IȏCӏF

Econfig.h
    //wb_̖Ɉȉǉ
    //#ifdef KBTIM /*added by Kobarin*/
    //#include "kbtim\kbtim_config.h"
    //#endif /*KBTIM*/

Einterface.h
    //wb_̖Ɉȉǉ
    //#ifdef KBTIM /*added by Kobarin*/
    //#include "kbtim\kbtim_interface.h"
    //#endif /*KBTIM*/

Eplaymidi.c
    //[N
    //AvP[VI free_reverb Ăяo悤ɂA邢
    //free_reverb ̃obt@𓮓IɊmۂ̂ł͂ȂAÓIɊmۂĂ
    //悤ɂ邱ƂɂB
    //ڍׂ _playmidi_.c QƁB

Eplaymidi.c::REDUCE_VOICE_TIME_TUNING
    //#define ĂƍĐʂȂikbtim.kpi ŗL̖j
    //iCPU ɕS肷łƌFĂ܂߁j
    //錾
    //#define REDUCE_VOICE_TIME_TUNING
    //폜邱ƂɂB
    //̕ config.h ɈړǂƎvB

Ereadmidi.c::init_userdrum()
    //drumset[64+0]->alt, drumset[64+1]->alt łꂼ 20 oCg̃[N
    //readmidi.c::free_userdrum() ȉ̂悤ɏC
    //added by Kobarin
    //int i;
    //for(i = 0; i < 2; i++){
    //    if(drumset[64+i] && drumset[64+i]->alt){
    //        free(drumset[64+i]->alt);
    //        drumset[64+i]->alt = NULL;
    //    }
    //}
    //܂
    //ǉȂĂAt@CJx init_userdrum 
    //ǑĂяoɊmۂ͉Ă邪AAvP[V
    //Iɂ͉Ȃ̂ŁAǉĂǂƎvB

Ereadmidi.c
    //RtBOt@CǂݍݎiHjɊmۂ drumset ֌W̃[N
    //readmidi.c Ɉȉ̊֐ǉ
    //void free_userdrum2()
    //{
    //int i;
    //for(i = 0; i < 128 + MAP_BANK_COUNT; i++){
    //    if(drumset[i] && drumset[i]->alt){
    //        struct _AlternateAssign *alt = drumset[i]->alt;
    //        struct _AlternateAssign *del=alt;
    //        while(del){
    //            alt=del->next;
    //            free(del);
    //            del=alt;
    //        }
    //        drumset[i]->alt = NULL;
    //    }
    //}
    //AvP[VI or RtBOt@C[hɂĂяoB
    //t@CĐxɌĂяoƁARtBOt@Cǂݍݎ drumset
    //ݒ肵ӖȂȂĂ܂B
}

Ereadmidi.c::free_all_midi_file_info()
    //[N
    if(string_event_table != NULL)//added by Kobarin
    {
    free(string_event_table[0]);
    free(string_event_table);
    string_event_table = NULL;
    string_event_table_size = 0;
    }
    //ǉȂĂAt@CJx readmidi_read_init 
    //Ă邪AAvP[VIɂ͉Ȃ̂
    //ǉĂǂƎvB

Ereadmidi.c::read_midi_file()
    //啝ɏCisvȃR[h폜j

Ereadmidi.c::open_midi_file()
    //啝ɏCisvȃR[h폜j

Ereadmidi.c::get_midi_title()
    //啝ɏCisvȃR[h폜j
    
Ecommon.c
    //try_to_open 啝Cit@CTCYȂj
    //CȂƃJG[B

Eaq.c::alloc_soft_queue()
    //[N
    //̊֐Ŋmۂ base_buckets AvP[VI
    //ȂB
    //AvP[VI or tI free_audio_bucket()
    //Ăяo悤ɂ邱ƂɂB
    //ڍׂ _aq_.c QƁB
    //free_audio_bucket IWiɑgݍ܂΁A_aq_.c ͕sv
    //ȂAaq.c ̂܂܃vWFNgɒǉ邾ŗǂȂB

Erecache.c::resamp_cache_reset
    //[N
    //AvP[VI free_resamp_cache_data Ăяo
    //ƂɂB
    //ڍׂ _recache_.c QƁB
    //resamp_cache_reset IWiɑgݍ܂΁A_recache_.c ͕sv
    //ȂArecache.c ̂܂܃vWFNgɒǉ邾ŗǂȂB

Eresample.c::initialize_gauss_table
    //[N
    //AvP[VI uninitialize_resampler_coeffs Ăяo
    //ƂɂB
    //ڍׂ _resample_.c QƁB
    //uninitialize_resampler_coeffs IWiɑgݍ܂΁A
    //_resample_.c ͕svɂȂAresample.c ̂܂܃vWFNg
    //ǉ邾ŗǂȂB

Eoutput.c
    //vWFNgɂ͒ǉĂȂB
    // _output_.c ǉB
    //svȃR[h폜Bit@CTCYȂj
    //̂܂ output.c gƃJG[B

Ew32g_utl.c
    //vWFNgɂ͒ǉĂȂB
    // _w32g_utl.c ǉB
    //svȃR[h폜Bit@CTCYȂj
    //̂܂ w32g_utl.c gƃJG[B

ŐV TiMidity gݍޏꍇɊmFׂӏF

Econfig.h
    //wb_̖Ɉȉǉ
    //#ifdef KBTIM /*added by Kobarin*/
    //#include "kbtim\kbtim_config.h"
    //#endif /*KBTIM*/
Einterface.h
    //wb_̖Ɉȉǉ
    //#ifdef KBTIM /*added by Kobarin*/
    //#include "kbtim\kbtim_interface.h"
    //#endif /*KBTIM*/
Eoutput.c
    //general_output_convert ŐVT|[gꂽtH[}bg
    //ȂmFBi32bit int/float Ȃǁj
Ew32g_utl.c
    //ݒǂݍݕŁAǉꂽݒ肪ȂmFE
    //ǉꂽݒ肪Aꂪ kbtim.kpi ̓iʂȂǁj
    //ɉeꍇ́A_w32g_utl_.c ɔfB
Etimidity.c/_timidity_.c
    //timidity_start_initialize ł̏C kbtim_start_initialize ɔfB
    //timidity_pre_load_configuration ł̏C kbtim_pre_load_configuration ɔfB
    //timidity_post_load_configuration ł̏C kbtim_post_load_configuration ɔfB
    //timidity_init_player ł̏C kbtim_init_player ɔfB
Eplaymidi.c
    //#define REDUCE_VOICE_TIME_TUNING 폜B
Ereadmidi.c::read_midi_file()
Ereadmidi.c::open_midi_file()
Ereadmidi.c::get_midi_title()
Ereadmidi.c::free_userdrum()
Ereadmidi.c::free_userdrum2()
Ereadmidi.c::free_all_midi_file_info()
Ecommon.c::try_to_open()
EŐṼ\[XɒuƃJG[ꍇ
    //ƂȂO[oϐE֐ kbtim.kpi ̓ɉeȂꍇ
    //́Akbtim_globals.c ŎB
    //Ⴆ΍ŐṼ\[XŐVɒǉꂽ int foo(int a); Ƃ֐
    //NoȂ̂ŃJG[ɂȂꍇ́Afoo 
    //\[Xt@CvWFNgɒǉ邩A邢
    //int foo(int a){return 0;}
    // kbtim_globals.c ɒǉȂǁB
    //Â悤ȏC kbtim.kpi ̓ɂǂ̂悤ȉe^̂
    //\ɍlĂKvB
