Windowsプログラムでの音の出し方と制御方法

このQ&Aのポイント
  • Windowsでプログラムから音を出す方法について教えてください。
  • Beep以外の方法で、単純な音から任意の音色まで出すことができるのでしょうか?
  • プログラムで音を制御するための情報を教えてください。
回答を見る
  • ベストアンサー

Windowsプログラムから音を出すには?

Windowsでソフトを作っています(言語は問いません)。 簡単な音を出したいのですが、Beep以外の方法を知りません。 最近のPCは皆PCM音源を内蔵していてCD並みの音を出せますが、 そんあ凝った音は必要は無くて、単純に「バイオリンの音でラ♪」とか、 任意の周波数の音色を出せればよいのですが、どういうやり方がありますか? 大昔の8bitパソコンの時代はBASIC命令等で簡単にできましたが、 最近はどうやってやるのでしょう? C,VB,Delphi,WindowAPIなど 一般的なプログラミングの知識は問題ありませんので、音に関して とっかかりになる情報だけでも教えていただければ・・・と思います。 ちなみに、音色はプログラム側で動的に決めたいので、 「丸ごとサンプリングしたWAVファイルを再生するだけ」というのはNGです。 例えば、マウスを動かすと、その移動速度にあわせて音の周波数が 連続的に変化する、というようなプログラムはWAV再生だけでは できないと思いますが、そういったこと(プログラムで音を制御する)が 必要になっており、困っております。どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.4

waveOutOpen等のwaveOut~系のAPIを使ってください。 メモリー上で生の波形データを操作します。 >単純に「バイオリンの音でラ♪」 PCMの場合、音の知識に精通していないと難しいです。 何もないところから「ラ」の音を作るのは専門家であっても難しいのです。 普通はシンセサイザーのように「ラ」の音をサンプリングして加工します。 単純に「ラ」をだしたいだけなら、PCMではなくMIDIを使う方法が簡単です。 こちらは midiOutOpen等のmidiOut~系のAPIを使います。

hondan999
質問者

お礼

> 普通はシンセサイザーのように「ラ」の音をサンプリングして加工します。 ですよね・・・それで「サンプリングすればどんな音でも出せる」のは 分かるのですが、素人が趣味でそこまで用意できない場合、 いきなりビープまでレベルダウンというのは・・・間は無いの? と思ったわけです。 > midiOutOpen等のmidiOut~系のAPIを使います。 MIDIは面倒そうなイメージがありましたが、 (自分でシリアル通信の制御しないといけないかなと・・・) なるほどMIDI専用のAPIがあるんですね、知りませんでした。 調べてみると簡単に使えそうですね。 (MIDIのコマンドセット自体は昔の知識ですがあります) これが私の求めていたものかもしれません、これから試しに使ってみます。 ありがとうございました!!!!

その他の回答 (4)

回答No.5

http://ocean.s7.xrea.com/ HSPのMMLモジュールみたい その他でもMMLが扱えるまたは追加ライブラリ/モジュールがある 言語ならなんとかなりそう。

hondan999
質問者

お礼

ご紹介いただいたページを見てみましたが、 何を示しているのか私には分かりませんでした、すいません。 > その他でもMMLが扱えるまたは追加ライブラリ/モジュールがある > 言語ならなんとかなりそう。 そんな言語を探しています。ご存知でしたら教えてください。

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.3

ビープ音などのシステム・サウンドを鳴らすには?[2.0のみ、C#、VB] http://www.atmarkit.co.jp/fdotnet/dotnettips/440systemsounds/system... ■Consoleクラスの静的なBeepメソッド  .NET Framework 2.0では、Consoleクラス(System名前空間)に静的なBeepメソッドが追加されており、これを使えばPCサウンドを鳴らせるようになっている。  このメソッドの第1パラメータには音の周波数(単位はHz:ヘルツ)を37~32767Hzの範囲で指定し、第2パラメータに音の持続時間をミリ秒(ms:ミリセカンド)単位で指定する。戻り値はない(=void型)。また、パラメータを指定しないバージョンのオーバーロード・メソッドも用意されており、これを利用した場合は、自動的に音の周波数は800Hzに、音の持続時間は200msになる  次のサンプル・プログラムは、Console.Beepメソッドを使ってドレミファソラシドをビープ音で演奏する例である。 ↑では駄目なのでしょうか?

hondan999
質問者

お礼

質問のしかた悪くてすいません・・・ 繰り返しになりますが、Beep命令は知っていますし、 周波数と持続時間が指定出来る事も知っています。 .NET Framework とかConsoleクラスとか以前に、 WindowsNT 以降なら、WindowsAPI の Beep命令でできますよね。 で、ビープではダメなので、ちゃんとサウンドカードの能力を プログラムから使う方法を知りたかったのです。 ビープでダメな理由はいろいろあって詳しく書かなかったのがまずかった かも知れませんが、そういう意図で「Beep以外」とか「バイオリンの音でラ♪」 という言葉を使わせていただきました。 (Beepで済めば私もラクなんですが・・・) お手数かけてスイマセンでした。

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.2

ビープ音などのシステム・サウンドを鳴らすには?[2.0のみ、C#、VB] http://www.atmarkit.co.jp/fdotnet/dotnettips/440systemsounds/systemsounds.html

hondan999
質問者

お礼

質問のタイトルが悪かったでしょうか・・・ ビープ音やシステムサウンドではダメなので、質問させていただきました。 本文に詳しく説明を書いたつもりですので、すいませんが 最後までご一読の上、回答いただければ幸いです。 困っておりますので、どうぞよろしくお願いいたします。

回答No.1

WindowsAPI に Beep関数があります。 OSがWindowsNT,Windows2000,WindowsXPなら 周波数と長さを指定できます。

hondan999
質問者

お礼

すいません、質問の仕方が悪かったでしょうか? 「Beep以外の方法を知りません」ということで、Beep関数は知っています。 Beepではダメなので、普通に楽器の音を自由な周波数で出す方法を知りたいのです。 Beepがダメな理由としてはピポパポとした電子音がまずダメという事もありますが、 (音色はガマンしたとしても)連続音が出せないためです。 連続的に周波数を変えて「キュイーーーン」と言うような音は出せないですよね?

関連するQ&A

  • 音データの単位はどういうものが主流ですか

    PCMとかWAVの音データ部分は、サンプリングデータですが、 その単位は決まっているのでしょうか? mVみたいに またPCMとかWAVとかこだわらないとすると、 音データは、普通、何VP-Pでサンプリングするものでしょうか 汎用の音データサンプリングを設計したいのです

  • .mldファイルの音が出ない

    .mldファイルの音が出ない .flv動画から音声を抽出して携帯の着メロを作りたいんですが音が出ないので教えて下さい。携帯はD905iを使用しております。 まず.flv動画を.aviに変換し、音声(.wav)を抽出しました。 Wave to .mldコンバータというソフトで.wavファイルを.mldに変換するため、下記のように.wavファイルをサンプリング周波数16000Hz、モノラル16bitに変換しました。変換された.mldファイルをPsmPlayerで再生してみましたが音が出ません。試しにネットに.mldファイルをアップして携帯でダウンロードしてみましたが、やはり再生はされますが音が何も出ません。何が原因なのでしょうか? ■Wave to .mld コンバータ (WMC-MA3-N) Waveファイル(.wav)を.mldファイルに変換するツールです。 ※WMC-MA3-Nで利用可能なWaveファイル(.wav)の条件は下記のものとなります。 フォーマット :PCM(.wav) サンプリング周波数:4kHz ≦ Fs ≦ 16kHz ビット数:16bit チャンネル数:1(モノラル) http://smaf-yamaha.com/jp/tools/nec/tools.html

  • MP3エンコードについて

    MP3のエンコードについて、いくつか疑問点があります。 一度に多くの質問をして申し訳ございませんが、分かりやすく教えてください。 1)PCMについて WAV変換時のPCM出力とはどういうものなのでしょうか? 2)サンプリング周波数について CD→WAVに変換するときに設定しますが、サンプリング周波数というとA/D変換のイメージが有り、CD→WAVだとデジタル→デジタルなのでは??イメージがわきません。ここで言うサンプリング周波数とは何? 3)ビットレートについて ビットレートは1秒間の情報量だと考えています。MP3圧縮は、人間の耳に聞こえない領域をカットすることで圧縮していると思いますが、ビットレートが低くなればなるほど、情報量を減らす為に、人間の耳に聞こえる領域までカットされてしまうということなのでしょうか? 4)プリエンファシスとは何? 3種類ぐらい設定ができるみたいですが、それぞれどういうことなのでしょうか? 5)MPEG-2.5 Audio Layer-3について 入力PCM周波数:48-32kHz → MPEG1 入力PCM周波数:24-16kHz → MPEG2 となっているなら、MPEG2.5とは 入力PCM周波数16kHzより低い周波数の場合を言うのでしょうか?

  • javaで周波数や鳴る長さを設定できるプログラムを作りたいのですが

    javaで周波数や鳴る長さを設定できるプログラムを作りたいのですが どんな方法で作れるのか分かりません。 ただのBeep音なら鳴らせるのですが周波数や長さを指定するにはどうしたらよいでしょう。 jBeepMakerというプログラムを見つけましたがplayボタンを押してもエラーが出て音がなりません。 javaでは無理なのでしょうか

    • ベストアンサー
    • Java
  • 録音ソフトのサンプリング周波数

    wavファイルをwindows Media playerで再生しながらPC録音ソフト「Moo0 音声録音機 (32ビット 無料版) 1.47」でファイル形式wavで録音しました。録音結果のサンプリング周波数が再生ファイルと違ってました。録音ソフトにはサンプリング周波数設定機能はありません、何故でしょうか? ・PC Windows7 32bit ・再生wavファイルのサンプリング周波数 44.10kHz ・録音wavファイルのサンプリング周波数 192.00kHz

  • WAVファイル形式の周波数を変換できるフリーソフトを教えてください

    PCM(WAVファイル形式)の周波数を変換できるフリーソフトはないでしょうか?? AmiVoiceについている、音声データを自動的に文字化してくれる機能を使用したいのですが、認識できる音声データの形式は【16KHz 、16ビット PCM】 のみで、私の使っているボイスレコーダー(オリンパスのボイストレック DS-71)とサンプリング周波数があいません(PCM には対応しています)。 どうかよろしくお願いします。

  • 周波数変換の方法

    大変恐縮ですが分かる方、お知恵を貸してください。 私は今大学での研究で、ある建築物の1/25の縮尺模型を使った音響実験を行っています。 具体的には (1)120Hz~4kHzの音を25倍の周波数3kHz~100kHzにした音源(wav)が必要で、 (2)模型内部の音響特性を測定し (3)さらに録音した音の周波数を1/25倍にしようとしています。 この方法として (1)原音のサンプリング周波数(fs)を25倍にして再生 (2)録音するサンプリング周波数は25*fs (3)再現する音源のサンプリング周波数をfsにして再生(分析) で実際に建築物内部の音響特性を再現しようとしています。 ですが(1)までは出来ているのですが(2)、(3)の方法が上手くいっていないためか再現した音では歪みが発生し、とても音響特性を付加した状態ではありませんでした。 周波数変換の方法が悪いのでしょうか? 何か気をつけることがありましたら教えてもらえないでしょうか。 機材についてはスピーカは再生周波数帯域を4kHz~40kHzと15kHz~100kHzのもの二つを使用し、 マイクやアンプも100kHzまで取扱可能な機材を使っています。 フィルターは3kHzまたは14kHzのハイパスをスピーカの前に通しているだけです。 分からなくて大変困っています。どなたかよろしくお願いいたします。

  • 音の出る玩具で電池が減ると音程が下がるのはなぜ

    最近の子供のおもちゃでは音、とくに音楽や人の声をサンプリングしたものを鳴らすものが多々あります。 これらのおもちゃ、電池が減ってくると音程が下がって聞こえますが、これはなぜでしょう? 予想: サンプリング波形を再生するためのクロック周波数が電源電圧に依存するから??

  • 音の周波数について教えて下さい

    エフェクターなどでヴォーカルをカットする機能とかありますが、 原理は歌声の域の周波数をカットするのですが、ここで質問があります。 声も楽器も(楽器じゃなくても)同じ音程の音を出している場合、周波数は全くいっしょなのでしょうか? もしそうなら、周波数が同じで音色の違いというのは何が違って音色が違うようになっているのでしょうか? 声も楽器も同じ音程の音の周波数がいっしょなら、 ヴォーカルカットのエフェクターでは声だけではなく、その周波数域の楽器の音もいしょにカットされるのでしょうか? すみません、教えてください。<m(__)m>

  • W21Tでのえせ着うた...。

    こんばんは。 タイトルの通り作って携帯に転送して再生してみたのですが、容量オーバーのようで再生できません。 そこで、100KBまでってのは知ってるんですが、 ・そのために何秒ぐらいがいいのか? ・サンプリング周波数ってのはどのくらいにしたらいいか について教えて欲しいです。 WAV→MMFでやってます。 お願いします。