(略)
//////// オシレータ //////////////////////////////
(略)
static Q14 Osc_wave_tables[8][512];     // 波形テーブル群
(略)
static void Osc_init() {
(略)
      Osc_wave_tables[pitch][i] = float2fix(sum,
                                            14);
(略)
}
static inline Q28 Osc_process() {
(略)
  Q14* wave_table = Osc_wave_tables[Osc_pitch];
  uint32_t curr_index = phase >> 23;
  uint32_t next_index = (curr_index + 1) &
                                       0x000001FF;
  Q14 curr_sample = wave_table[curr_index];
  Q14 next_sample = wave_table[next_index];
  Q14 next_weight = (phase >> 9) & 0x3FFF;
  return (curr_sample << 14) +
      ((next_sample - curr_sample) * next_weight);
}
(略)
