2

オーディオ プロジェクトに Synthesis ツールキットを使用して実験を行っています。以下に、MIDI ノート 49 で 1 秒の WAV ファイルを生成する簡単なプログラムを書きました。実際、このプログラムは 2 つのファイルを生成します。奇妙なことに、生成された 2 つの WAV ファイルを再生すると、周波数が一致しません。Bowed 楽器では、同じ MIDI ノートの主周波数は 440 HZ のようです。PrecFlut 装置の場合、支配的な周波数は約 210 Hz のようです。

私は何を間違っていますか?どんな助けでも大歓迎です。

ありがとう、ここに私のコードがあります:

#include <iostream>
#include <Voicer.h>
#include <Instrmnt.h>
#include <FileWvOut.h>
#include <Bowed.h>
#include <PercFlut.h>

using namespace stk;

// WAV file generated Note = 49. Duration = 1 second
void createFile(Voicer &voicer, StkFrames &frames, Instrmnt *instrmnt, const char *filename)
{
  voicer.addInstrument(instrmnt, 1);
  FileWvOut output;
  output.openFile(filename, 1, FileWrite::FILE_WAV, Stk::STK_SINT16);
  long tag1 = voicer.noteOn(49, 25, 1);
  voicer.tick(frames, 1);
  voicer.noteOff(tag1, 0);
  output.tick(frames);
  output.closeFile();
}

int main(int argc, char *argv[])
{
  Voicer voicer;
  StkFrames frames(44100 * 1, 1);
  Instrmnt *bowed = new Bowed();
  createFile(voicer, frames, bowed, "bowed.wav");
  Instrmnt *percflut = new PercFlut();
  createFile(voicer, frames, percflut, "percflut.wav");
  delete bowed;
  delete percflut;
}
4

0 に答える 0