none
beepに代わる音の発生 RRS feed

  • 質問

  • MySound(n,f,ms)のような関数を作ってbeepに代わる音を発生させたいのですがどのようにしたらよいでしょうか。

    ヒントだけでもよろしくお願いします。

    n,f,msはそれぞれ音色、周波数、継続時間(msec)です。

    2011年12月10日 11:37

回答

  • 外池です。

    WAVのフォーマット自体は、比較的簡単なもので、少し調べればネット上で情報は見つかると思います。例えば、私は
    http://www.kk.iij4u.or.jp/~kondo/wave/
    を参考にして、WAVの音源データの生成と再生に成功しています。

    一方で、最初のご質問で「音色」を「n」というひとつの変数で表現されています。どのように「音色」のバリエーションを作ることをお考えになっているかわからないのでコメントできませんが、一番難しいところだと思います。まずは、正弦波で単純な音を再生することを試みられてはいかがでしょうか?

    ちょっと凝った音色(単純な三角波や矩形波でさえも)を出そうとすると、サンプリング周波数、周波数特性、エイリアシングとその防止、というような知識がないと、「きれいな音」が出ません。
    http://ja.wikipedia.org/wiki/%E6%8A%98%E3%82%8A%E8%BF%94%E3%81%97%E9%9B%91%E9%9F%B3
    に良いサンプルがあって、実際に音が聴けます。

    これらの音色の話題は、プログラミングより、数学や物理の問題ですね。


    (ホームページを再開しました)
    • 編集済み 外池 2011年12月11日 3:23
    • 回答としてマーク jo山ubn 2011年12月11日 8:46
    2011年12月11日 3:08

すべての返信

  • 外池と申します。

    WAVのフォーマットで音源データをご自身で生成できるなら、SoundPlayerクラスを使って音源データを再生するのが簡単だと思います。

     


    (ホームページを再開しました)
    2011年12月10日 14:50
  • 外池様

    レスありがとうございます。

    SoundPlayerを使ってのwavファイルの再生は簡単にできることを確認しました。

    そこで問題はwavファイルの生成に移りました。初めてのことですので試行錯誤してみます。

    2011年12月10日 22:58
  • 外池です。

    WAVのフォーマット自体は、比較的簡単なもので、少し調べればネット上で情報は見つかると思います。例えば、私は
    http://www.kk.iij4u.or.jp/~kondo/wave/
    を参考にして、WAVの音源データの生成と再生に成功しています。

    一方で、最初のご質問で「音色」を「n」というひとつの変数で表現されています。どのように「音色」のバリエーションを作ることをお考えになっているかわからないのでコメントできませんが、一番難しいところだと思います。まずは、正弦波で単純な音を再生することを試みられてはいかがでしょうか?

    ちょっと凝った音色(単純な三角波や矩形波でさえも)を出そうとすると、サンプリング周波数、周波数特性、エイリアシングとその防止、というような知識がないと、「きれいな音」が出ません。
    http://ja.wikipedia.org/wiki/%E6%8A%98%E3%82%8A%E8%BF%94%E3%81%97%E9%9B%91%E9%9F%B3
    に良いサンプルがあって、実際に音が聴けます。

    これらの音色の話題は、プログラミングより、数学や物理の問題ですね。


    (ホームページを再開しました)
    • 編集済み 外池 2011年12月11日 3:23
    • 回答としてマーク jo山ubn 2011年12月11日 8:46
    2011年12月11日 3:08
  • 外池様

    レスポンスありがとうございます。

    音色のnはMIDIのprogram、音色番号のようなイメージで考えていましたが、wavファイルで実現しようとすると今の私には手に負えないようです。

    当面の目的にはモノトーンで十分なので正弦波でやってみます。

    折り返し雑音のサンプルのご紹介ありがとうございました。

    折り返し雑音の発生は何かで読みましたが、その影響を実際に聞いたのは初めてでした。

    2011年12月11日 8:36