Exemplo n.º 1
0
static int time_to_frame(Data *data, double time, float f_note_num){

  int i_note_num = (int)f_note_num;
  
  const Sample *sample=NULL;
  int samplenum = 0;
  
  const Note *note=&data->notes[(int)i_note_num];
  
  for(;;){
    sample = note->samples[samplenum];
    if (sample!=NULL)
      break;
    
    samplenum++;
    if (samplenum==note->num_samples) {
      RError("samplenum==num_samples. %f\n",f_note_num);
      return data->startpos*sample->num_frames + time/30000.0f;
    }
  }
  

  double src_ratio = RT_get_src_ratio2(data, sample, f_note_num);

  return
    data->startpos*sample->num_frames 
    + time/src_ratio ;
}
Exemplo n.º 2
0
static double RT_get_src_ratio(Data *data, Voice *voice){
  const Sample *sample = voice->sample;

  //int notenum = voice->note_num + (int)data->octave_adjust*12 + (int)data->note_adjust;
  //int notenum = voice->note_num + (int)data->note_adjust;
  //float pitch = voice->end_pitch + scale(data->finetune, 0, 1, -1, 1) + (int)data->note_adjust;

  return RT_get_src_ratio2(data,sample,voice->end_pitch);
}
Exemplo n.º 3
0
static int time_to_frame(Data *data, double time, float note_num){
  
  const Sample *sample=data->notes[(int)note_num].samples[0];

  double src_ratio = RT_get_src_ratio2(data, sample, note_num);

  return
    data->startpos*sample->num_frames 
    + time/src_ratio ;
}