HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
1024
がお吉ステレオ再生について13未解決


がお吉

リンク

2015/10/24(Sat) 20:06:28|NO.72474

モノラルの音源をHSPで再生する際に、ステレオで再生することはできますでしょうか?

理想は再生中に左右のバランスを変更していき、右から左へ頭の中を移動してるようなw

最初からそういう音源を作ればできるのかもですが、モノラルの音源をプログラムでステレオ再生に操作するというのは、さすがに無理ですかね?



この記事に返信する


にゃんちゃん

リンク

2015/10/24(Sat) 20:47:31|NO.72475

外部DLLを使えばできます。手っ取り早くやるならovplay、本格的にやるならBASSとかがお勧めです。



がお吉

リンク

2015/10/24(Sat) 22:39:31|NO.72482

>にゃんちゃんさん

ご回答ありがとうございます。
さっそくovplayで試しているんですが、再生中に左右のPANを変えても途中にPANが変化させることはできませんでした。

なにか手順があるんでしょうか?



暇人

リンク

2015/10/25(Sun) 00:23:30|NO.72484

WindowsXPで音の出力方向(音量バランス)をボタンを押したら変更したい
http://hsp.tv/play/pforum.php?mode=all&num=72405
の NO.72410 にmciを使った左右の音量変更させてるのがある
同時に再生してる場合全て音量設定する必要がある



窓月らら

リンク

2015/10/25(Sun) 00:29:10|NO.72485

他のスレの回答と同じですが、
hspogg か hgimg3 を使えば楽勝です。余裕でできます。
詳しくは HSP Document Library を見てね。

サウンドデータのパン設定
dmmpan p1,p2
p1(0) : サウンドID
p2(0) : パンニング値(-10000〜10000)



窓月らら

リンク

2015/10/25(Sun) 00:32:22|NO.72486

あと mci について、たまに音ゲーで使おうとされる方を見かけますが
mci は実行環境によっては遅延があることに注意する必要があります。
音ゲーのようなゲームこそ DirectSound を使うべきです。



にゃんちゃん

リンク

2015/10/25(Sun) 07:33:52|NO.72488

>さっそくovplayで試しているんですが、再生中に左右のPANを変えても途中にPANが変化させることはできませんでした。
え?そんなことはないはずです。どんな感じでソースを書いていますか?
もし、ovplayがうまくいかないなら、hspoggを使うという手もありますが、hspoggのogg再生は非常に不安定なので、wavファイルの再生用途でしか実用性がないです。



がお吉

リンク

2015/10/25(Sun) 18:39:42|NO.72496

うわーみなさんご回答ありがとうございます!

>暇人さん
>窓月ららさん
さっそくご紹介先で勉強させて頂きますね。

>にゃんちゃんさん
ソースはこんな感じで書いてます。


#include "ovplay.as" randomize ov_init 44100,1,16,640 ov_load "音声_wav\\test\\"+"test.wav",1 ov_setvolume 1,-2000 ov_play 1 repeat 100 atai = -1000+cnt*100 ov_setpan 0,atai loop



窓月らら

リンク

2015/10/25(Sun) 20:23:17|NO.72502

え・・hspoggのogg再生不安定ですか?
うちではそんなこと無いんだけどな…。



にゃんちゃん

リンク

2015/10/26(Mon) 21:21:14|NO.72531

ov_setpanの適用先がおかしいです。1番にロードしている音声があり、パンは0番に適用することになっています。たぶん原因はここではないでしょうか?
hspoggの再生ですが、再生オプションに0以外を指定するとひどいノイズが出て、すぐ使うのをやめた記憶があります。複数のPCで試して同じでした。ただ、あのころはXPだったので、今は大丈夫なのかも。



窓月らら

リンク

2015/10/28(Wed) 03:26:29|NO.72575

答え書いておきますよ… たったこれだけ。
test.wav を任意のファイルに置き換えて試してみてください。

#include "hspogg.as" // hspoggを初期化 dmmini // サウンドをロード dmmload "test.wav",0,1 // wav/ogg // 再生開始 dmmplay 0 // ループ処理 repeat pan=sin(deg2rad(cnt))*1000 dmmpan 0,pan // パンポットを変更 // 確認用 redraw 0 color 0,0,0: boxf color 0,255,255: pos 16,16: mes "pan = "+pan redraw 1 await 16 getkey k,27: if k { break } // ESCで終了 loop dmmbye end



窓月らら

リンク

2015/10/28(Wed) 03:28:54|NO.72576

あ、dmmpan は -10000〜10000 だから

pan=sin(deg2rad(cnt))*10000 dmmpan 0,pan // パンポットを変更
こうだったかな。でも*1000くらいで良さそう。
ちなみに HSP3Dish でもほとんど同じ方法でいけます。



窓月らら

リンク

2015/10/28(Wed) 03:36:15|NO.72577

ずっと聴いてると頭がおかしくなりそう。

pan=sin(deg2rad(cnt*4))*3000 dmmpan 0,pan // パンポットを変更



KA

リンク

2015/10/28(Wed) 06:30:28|NO.72578

>>repeat 100
>>atai = -1000+cnt*100
>>ov_setpan 0,atai
>>loop

取りあえず「パンさせる時間は?」



ONION software Copyright 1997-2021(c) All rights reserved.