最初音を鳴らすと、ボリュームが「0」なのに音がでてしまう – 固定ページ 2 – プログラミング – Home

最初音を鳴らすと、ボリュームが「0」な...
 
通知
すべてクリア

[解決済] 最初音を鳴らすと、ボリュームが「0」なのに音がでてしまう

固定ページ 2 / 2

PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

なるほど、
volumeでセットしているけれど、midi_setで初期化してしまっているので
結局設定値が飛んじゃって元に戻っていると。
それが正解のような気がしますね。


返信引用
けじゅ
 けじゅ
(@けじゅ)
ゲスト
結合: 21年前
投稿: 2
 

こんにちわ、たくさんのアドバイスありがとうございます。
結果てきにスライダーボリュームはうまくいきませんでしたので、下記のホームページ
をつくり ダウンロードして検証してもらえないでしょうか?もし改善できれば、メー
ルを送ってもらえると大変うれしいです。宜しくおねがいします。

http://www.geocities.jp/e_4720045/

e_4720045@ybb.ne.jp


返信引用
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
 

#やれやれ…

最後の2つ、wood さんと PATIO さんの書き込みをよーく読んでから、それに対しても
う一度返信してください。

こういう掲示板は、質問者と回答者のやり取りだけではなく、後で同じ問題に遭遇した
人が見ることでも役立ちます。
この一連の書き込みは、あなたのためだけにあるのではありません。
したがって…

誰 も あ な た に は メ ー ル を 出 し ま せ ん 。


返信引用
けじゅ
 けじゅ
(@けじゅ)
ゲスト
結合: 21年前
投稿: 2
 

すみませんでした。 変な欲が出てしまいました。これから気おつけます。


返信引用
RiSK
 RiSK
(@RiSK)
ゲスト
結合: 24年前
投稿: 13
 

ソース見ました。

>それが正解のような気がしますね。
それ以前でした。
# 間違ってはいなかった

> void volume(int x);
なぜ、直していないのでしょう?
単に volume(x) だとコンパイラに怒られるから?
もしそうなら、プロトタイプが無いからです。

void pan(int nPan);
void volume(int nVol);

んで、wood さんの指摘も考慮すると
CVcdoremiDlg::OnInitDialog() はこんな感じになります。

// m_sldr.Set~
m_sldr.SetPos(127);
if(midi_set()==0) {
EndDialog(IDCANCEL);
}
volume(m_sldr.GetPos());

以下、蛇足です。

ID IDC_SLIDER1 メンバ変数名 m_sldr → ボリューム用のスライダ
ID IDC_SLIDER2 メンバ変数名 m_sldr1 → パン用のスライダ

自分で↑わかりやすいですか? IDC_SLIDER2 と sldr1 の組み合わせはかなり
フェイクが入っていますね。

あと、int x, y; もやめて欲しいです。
何かの座標かと思ってしまいます。
# int nVol, nPan; // こんなネーミングならすぐ分かる
# // 他にも言いたいことあるけど…

今回は大サービスでダウンロードしてまで見ましたが、
今後、そんなことはあり得ないと思ってください。
けじゅ さんのお抱えデバッガではありませんから。

あと、プログラミングそのものをもう少し勉強された方がいいと思いますよ。
質問者(けじゅ さん)も大変だし、回答者はもっと大変です。
がんばって下さいね。


返信引用
けじゅ
 けじゅ
(@けじゅ)
ゲスト
結合: 22年前
投稿: 26
Topic starter  

RISKさんありがとうございました。できました。また シャノンさん woodさん PATIO
さん たくさんの助言ありがとうございました。
私は、これからC++の勉強をきちんとやっていきます。またよろしくお願いします。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました