int mdx_init_track_work_area_ym2151( songdata *data ) { int i; __GETMDX(data); self->fade_out = 0; mdx->tempo = 200; mdx->total_count = 0; mdx->elapsed_time = 0; mdx->fm_noise_vol = 0; mdx->fm_noise_freq = 0; for ( i=0 ; i<mdx->tracks ; i++ ) { mdx->track[i].counter = 1; mdx->track[i].gate = 1; mdx->track[i].current_mml_ptr = mdx->mml_data_offset[i]; mdx->track[i].voice = 0; mdx->track[i].volume = 64; mdx->track[i].volume_normal = 8; mdx->track[i].note = 0; mdx->track[i].phase = MDX_PAN_C; mdx->track[i].quantize1 = 8; mdx->track[i].quantize2 = 0; mdx->track[i].detune = 0; if ( i<8 ) ym2151_set_detune(i,0, data); mdx->track[i].portament = 0; if ( i<8 ) ym2151_set_portament(i,0, data); mdx->track[i].loop_depth = 0; mdx->track[i].infinite_loop_times = 0; mdx->track[i].p_lfo_flag = FLAG_FALSE; mdx->track[i].a_lfo_flag = FLAG_FALSE; mdx->track[i].h_lfo_flag = FLAG_FALSE; mdx->track[i].p_lfo_form = 0; mdx->track[i].p_lfo_clock = 255; mdx->track[i].p_lfo_depth = 0; mdx->track[i].a_lfo_form = 0; mdx->track[i].a_lfo_clock = 255; mdx->track[i].a_lfo_depth = 0; mdx->track[i].waiting_sync = FLAG_FALSE; mdx->track[i].keyoff_disable = FLAG_FALSE; mdx->track[i].last_volume_normal = FLAG_FALSE; } set_tempo(mdx->tempo, data); return 0; }
static void set_portament( int track, int v1, int v2 ) { int v; __GETMDX; if ( track<8 ) { v = v1*256 + v2; if ( v1 >= 0x80 ) v = v - 0x10000; mdx->track[track].portament = v; ym2151_set_portament( track, v ); } return; }