• 締切済み

知恵を貸していただけると助かります。

今、MFCのダイアログベースを使って楽器のチューナーを作ろうとしてるんですが、どうしてもうまくいきません。。。orz サンプルソースを探して参考にしようとも考えましたが、なかなか見つからず悪戦苦闘を強いられている次第です。 そこで、サンプルソースを提供していただきたいと考えています。不躾なお願いだとは思いますが、よろしく願います。m(_ _)m

みんなの回答

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

やはり、段階を踏んで最終的なプログラムにたどり着いた方が良いと思われます。 soft-tunerの機能を見ると分かりますがFFTで周波数分析をしています(周波数スペクトラムの表示もできます)。たぶんarcknightさんのやりたいことをすべて網羅していると思いますので機能的に何を搭載したら良いのかのサンプルには最適だと思います。 録音のプログラムが作れたのでしたら段階を踏んで機能を作りましょう。 (1)FFTでボタンを押した瞬間の周波数スペクトラムを表示するプログラムを作る。リアルタイム性は不要。→ FFTのプログラムをマイク入力からのデータで動くようにする。スペクトラム情報のグラフィック化ができる様になる。 (2)FFTでリアルタイムに周波数スペクトラムを表示し続けるプログラムを作る。→ スレッドで処理するプログラムの作り方を理解する。 (3)(2)で作ったプログラムに、基調周波数を探し出して強調表示する機能を付け加える。→倍音成分を判定するフィルタの作成。 (4)根幹ができたので、表示画面の設計や、どのような操作機能を付けるか決定する。 (5)いよいよ、楽器のチューナーのプログラムを作成する。 途中で分からない部分が出てきたら(1)から(3)までの工程のように、いっぺんに作ると作り方が良く分からない機能などを分かる程度のパーツ単位に分解して段階を踏んで高度な機能にまとめていきます。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

追加しておきます。 一応、MFCのTIPS集です。 http://www.crimson-systems.com/tips/index.html http://orangeknowledge.jpn.org/tips/index.html#MFC%20Tips http://home.att.ne.jp/banana/akatsuki/doc/mfc/index.html http://athomejp.com/goldfish/mfc/ これで作れないとしたら、基礎勉強やアルゴリズムの勉強もする必要がありますね。 どこから勉強したら良いかわからなければ、まず、音楽のチューナーの仕様をちゃんと書けるようにしないといけませんね。機能、仕様を書き出せますか?この思考訓練が出来ていないと何のプログラムを作るにしても話になりません。

arcknight
質問者

お礼

お礼が遅れてしまって申し訳ないです。m(_ _)m やはりMFCをかまいだして半年弱の人間には厳しいものなんですね。。。 チューナーの機能としてはユーザからの入力を受けて、その音を周波数解析(FFTを使おうと思ってます)し、音程を表示したいと考えてます。 仕様…というとどのようなことを書き出せばよいでしょうか?(スイマセン、あまりちゃんと考えてないもので・・・ 最終的には、記載されたサイトにあるようなソフトを目指してます。 いちおう録音・再生ぐらいのプログラムは作れたのですが、ここにFFTを組み合わせて、リアルタイムで処理しようと思うと良くわからなくなってしまっているのが現状です。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

こんなのがありますが。 http://www.nifty.com/download/cgi-bin/vec_dlcnt.cgi?url=http://www.vector.co.jp/soft/win95/art/se403802.html?site%3Dn&dir_id=11381&key=%B3%DA%B4%EF やはり自分で作りたいのでしょうか? どう作って良いかわからないのは、単なるMFCの勉強不足というか、いきなりやることが難しすぎますので、もっと簡単なものから作ることをお勧めします。 そんな目的にぴったり合ったサンプルソースは存在しないと思いますよ。簡単なサンプルを組み合わせて自分の思うものを作れるようになるまで勉強をしないと、サンプルをもらったとしても改造さえまともに出来ないでしょう。

関連するQ&A

  • 簡単で音階のある楽器

    以前、学校の先生が簡単で音階のある楽器を作ってきなさいと言われました。 なので、一生懸命ネットで作り方などを探していたのですがなかなか簡単なのが出てこないため今、ものすごく悪戦苦闘しております。 ぜひ、簡単で音階のある楽器の作り方を教えてください! 御願いします。

  • サンプルソースが実行できない

    VC++2005でMFCダイアログベースのアプリを作成しています。 下記サイトのサンプルソース、 手順1:http://www.g-ishihara.com/mfc_ta_01.htm 手順2:http://www.g-ishihara.com/mfc_ta_02.htm の全く同じ通りに、コーディングし実行してみたのですが、 コンパイルは通りますが、添付ファイルのようなエラーが出てしまい、 exeファイルを実行できません。 手順2の下記コード // 初期表示 if (!err) OnTcnSelchangeTab(0, 0); をコメントアウトしたところ、実行できるようですが。。。 対象ソースが参考URL上にあり大変申し訳ありませんが、 解決法をご存知の方おられましたら、ご教授お願いできませんでしょうか。

  • 直線検出のハフ変換について(deiphi)

    こんにちわ。 ただいま直線検出のハフ変換をdelphiという言語で書いている者です。 ハフ変換もdelphiについてもまったくの初心者です。 C言語はそれなりに勉強してきました。 参考になるページを探しているのですが、なかなか分かりやすいページがなく悪戦苦闘しています。 どなたかこれに関するページや情報をご存じではないでしょうか? ご存じの方、提供お願い致します。 よろしくお願い致します。

  • UNICODE定義されている場合の関数のサンプル

    お世話になります。 VC++で開発している初心者です。 UNICODE定義されているため、一般的に?使用されている関数が使えません。 MSDNを見て、例えば、strcpyの場合は、UNICODE対応の_tcscpyを使えよ、という事は調べられるのですが、実際に使用しているサンプル文が無く、悪戦苦闘しております。 UNICODE定義用の関数一覧のサンプル文が載っている(勉強できる)HP等ございましたら、教えて頂けませんでしょうか。 宜しくお願い致します。

  • クラスのメンバ関数の呼出しについて

    こんにちは。 初心者ですが、よろしくお願いします。 MFCを使用してダイアログベースのアプリケーションを作成しています。 <ヘッダ> class Sample : public CDialog { (略) public: int SampleA(CString); (略) <ソース> UINT SampleB(LPVOID pParam) { int n; n = Sample::SampleA(CStringA) ←エラー return 0; } メンバ関数ではない、SampleBから、上記のように呼出すと、「静的でないメンバ関数の中で呼び出しが正しくありません。」というエラーが表示されてしまいます。 ヘッダ内のメンバ関数宣言をstaticにすれば問題は解決できるのですが、このやり方しかないのでしょうか。 よろしくお願いします。

  • 英語で何と言えば良いのですか?

    1・「あなたに、たくさん話したい事があるのですが、私は英語が苦手なので、それを上手く書く事(伝える事)ができません。」 2・「今も英語の辞書を片手に悪戦苦闘してます。」 以上を英語でどのように書きますか?宜しくお願い致します。

  • 【GUI】MFCからC#への移行についての必要性

    今まで主にMFCを用いたコーディングをしていたのですが GUIをMFCからC#に移行する作業を検討しています。 そこでCoreとなるソースはC++にしておきたいので 「MFC ダイアログベース」 から 「C++ DLL」に移植を考えてます。 その為、今テストとしていくつかのソースコードをDLL化してみましたが MFCのAPIによるエラーが非常に多く作業量が膨らむばかりです。 ここで質問ですが、このような作業は将来的にメリットを生み出す事かどうか 個人差があるかとおもいますが皆様からのご意見頂けないでしょうか? 私の方で気づいたメリットは以下の点だけで、作業に価値があるか少しずつ疑問になってます・・・。 ・WPFなどを使える事からGUI周りのレベルが上がる ・今後、C#による需要が多くなると見込んでいるため。 作業量が多く挫折しそうです。。。

  • ダイアログベースアプリのDLL化の方法について

    ダイアログベースで作成してあるアプリexeを DLL化するのですが、その方法が分かりません。 ダイアログの使用はやめるつもりです。 これまでやってみたことは、 プロジェクトのプロパティで、EXEファイルからDLLに設定を 変更しました。 http://hp.vector.co.jp/authors/VA019517/howtodll.html サンプルを見て、既存のソースに__stdcallなどを記載したいのですが DLLが作成されませんでした。 新規にプロジェクトを作成して、サンプル通りにやった場合は DLLが作成されました。 呼び出したい関数は、別々のファイルですが、 1つのファイルにまとめる必要がありますか? ダイアログベースはやめます。 この2つの関数は、同じDLLにします。 ↓DLL化するソース。ここを外部EXEから呼び出したい。 Test_aa_App.cpp --------------------------------------- CTest_aa_App::InitInctance(){ //初期化処理 } ↓呼び出し対象DLL Test_bb_Dlg.cpp -------------------------------- CTest_bb_Dlg::Test() { // 処理 } 初歩的なことだと思いますが、まず、どのように ソースを変更すれば良いか教えてください。 VS2003 C++6.0 よろしくお願いします。

  • 3-フィンガー!(ベース)

    すいません、お尋ねします。 ベースを2-フィンガーで弾く事にも慣れ、 この頃3-フィンガーにステップアップしようと悪戦苦闘してるのですが、 どうにもこうにも要領がつかめません。 そもそも3-フィンガーはどのように弾くかすら間違っていそうなかんじです。 今現在は(1)薬指(2)中指(3)人差指…(1)(2)(3)…繰り返し、 のように順番に弾いているのですがこれはあっているのでしょうか? 2-フィンガーよりも、3-フィンガーの方が早引きには向いているのかな?と思い練習しているのですが。 どなたかお教えください!

  • C言語記述されたものをMFCに移植

    C言語(SDK)で、記述されたソースコードを C++(MFC)で記述したいのですが、 ダイアログベースでSDKだとEnableWindowなどの 処理が増えて、バグの要因となってしまい自分自身で 最後は状態が分からなくなってしまうことがあります、 それで、MFCにして処理を減らそうと思いました。 基本的にはXXXDlg.cppに書きますが、 関数だけのファイルをMFCとして書き換えたいのですが、 メンバを使うことができません。 XXXDlg.hをincludeしたのですが、駄目でした。 どのようにしたらよろしいのでしょうか?

専門家に質問してみよう