2016-04-13 14 views
0

これは長いですが残念です。私は私が実際にどこにいるかについて非常に徹底する必要があると感じています。 まずJavaScriptを使用した経験があります。 これは同じものではありませんが、確かに私にはよく分かります。音声出力C言語(初心者)

私はCで音楽を作りたいと思っています。 「オーディオプログラミングブック」という大きな本を手に入れました。 $ 60のようでした。 それにはCが導入されています。これまでのところ、私にとってはすべて理にかなっています。 本当に新しいものはありません。

だから私の問題は... そして、その非常に簡単です。そう簡単に、それは本の中でカバーされていないようです。 私のプログラムとスピーカーの関係を理解できません。 私のコンピュータのオーディオデバイス。 私は自分自身に「大丈夫だと思っています。基本的なことから始めましょう。ただ騒音を出すことができるかどうか見てみましょう。 そして... 私はビープ音を出すものがあります。

#include <stdio.h> 
#include <stdlib.h> 

    int main() 
    { 
     printf("Hello world!\n"); 

     printf("\a\n"); 
     return 0; 
    } 

これはかわいいです。 しかし、それは明らかにその機能すべてが可能です。 正直なところ、あなたの画面にテキストを印刷するためのものは...あなたのスピーカーと話すために使用したものでした。...

私は探しています本を介して。私はオンラインで探しています。私は何時間も探していました。 明らかにすべての間違った場所で検索しています...文字通り私が見つけることができるのは、コンピュータがビープ音を鳴らす方法の詳細です。

「スピーカーに送る」はどこですか? どこに周波数を入れますか? 天国は私が話したいデバイスを教えていた部分を禁じました。

Dose Cには、スピーカーに信号を送るための組み込み機能がありません。

ライブラリが必要ですか? C++が必要ですか?私は何が欠けている。 私はデスクトップアプリケーションについて何も知らない。 私の経験はすべてインターネット技術にあります。

+0

これは 'printf()'を使って再生できる唯一のサウンドです。あなたのコンピュータからメロディを作り、音楽ファイルを再生するには、FFmpegやGStreamerのようなサードパーティのライブラリを使う必要があります。 – karlphillip

+2

どのような標準言語にこのような機能が含まれていますか?実行を開始する前につまむ方法を学んでください。先進的なサードパーティのライブラリを使うことを考え始める前に、Cの "Hello World"についてもっと知ることがあります。 – Olaf

+1

[ここにはOpenCVを使ってビデオを表示するCプログラムと、ディスク上のファイルからオーディオを再生するFFmpeg](http://stackoverflow.com/a/8191506/176769)があります。 – karlphillip

答えて

0

「Cで音楽を作りたい」と言います。これは、ASIOドライバのような低音質で、リアルタイムでサウンドバッファにデータを供給したいと思っていることを意味しています。これはすべて非常に複雑なものですが、あなたはそのような種類のアクセスを提供するライブラリ/ APIを入手することから始めるべきです。悲しいことに、それらのほとんどは無料ではありませんが、おそらくいくつか無料のオプションがあります。

これはすべてあなたが使用しているライブラリ/ APIに大きく依存するため、私は悲しいかなく正確なことは言えません。

もう1つの選択肢は、VST-楽器(DAW用のプラグイン)をプログラミングする方法を学ぶことです。これは、あなたがしようとしているように聞こえるようになるとさらに便利です。

いいえ、使用するライブラリ/ APIが何らかの理由でC++のみをサポートしていない限り、C++は必要ありません。それは事実ではありません。

2

Dose Cには、スピーカーに信号を送信するための組み込み機能はありません。

実際、Cにはスピーカーに信号を送信するための組み込み機能はありません。

ライブラリが必要ですか?

いいえ、しかし、私はこれを使用することを強くお勧めします。

Do need C++?

いいえCで何かするにはC++は必要ありません。さらに、C++にはオーディオ機能が組み込まれていません。

ここで、「スピーカーに送信」ですか?どこに周波数を入れますか?天国は私が話したいと思っているデバイスを私が教えていた部分を禁じました。

オーディオに関するこれらのすべては、プラットフォーム(オペレーティングシステム)固有のものです。サウンドカード(信号をスピーカーに送信するデバイス)と対話するには、プラットフォーム固有のAPIを使用する必要があります。いくつかのオペレーティングシステムは、オーディオ用に複数の異なるAPIを持つ場合があります。すでにお勧めしますが、プラットフォーム固有のAPIを抽象化する(クロスプラットフォーム)ライブラリを使用できます。

+0

ありがとうございます "user2079303" – HAL9000