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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
0408
さーくんmmvol命令でwavファイルの音量変更ができない?9解決


さーくん

リンク

2023/4/8(Sat) 00:31:48|NO.99269

mmvol命令を使って音量を変更するプログラムを試作していたのですが、
mp3ファイルはキチンと変更されるのに、wavファイルは変更されない事に気づきました。

ただ、自分で悶々とあれこれ試してみると、
hsp3dish.asをインクルードするとwavファイルもちゃんと音量が変わります。
この現象は仕様通りなのでしょうか?

ちなみに環境はWindows11で
プログラムは以下です
---------------------------------------
;#include "hsp3dish.as"
redraw 0
screen 0,800,600
title "sound_vol test"
color : boxf
redraw 1
mmload "wav_test.wav",0,0
mmload "mp3_test.mp3",1,1
Sound_VOL=0 ;マスターボリューム設定
mmplay 1
*main
redraw 0
color : boxf
color 255,255,255
mmstat aaa,0,1
mmstat bbb,1,1
pos 10,10 : mes "0音量:"+aaa+""
pos 10,30 : mes "1音量:"+bbb+""
redraw 1

stick key,0,1 ;何かのキーが押されたらwav再生。
if key!0 : mmplay 0 ;wav

if key&8 : Sound_VOL-=100 ;↓キーで音量ダウン
if key&2 : Sound_VOL+=100 ;↑キーで音量アップ

if Sound_VOL>=1 : Sound_VOL=0
if Sound_VOL<=-1001:Sound_VOL=-1000

mmvol 0,Sound_VOL
mmvol 1,Sound_VOL

await 1
goto *main
---------------------------------------



この記事に返信する


zrs90(5さい)

リンク

2023/4/8(Sat) 01:42:48|NO.99270

※3.7β4p のHDL を見ております

mmvol 命令をHDLで、参照して見て下さい

解説 下の4行目に
※HSP3Dish環境でのみ利用できます

...とあります


ただ、おかしな表記ですね。情報 の欄には
ver.3.6標準命令 とあるんですが...

詳しくは、分からないのですが
hsp3dish.as をインクルードする必要があるなら
そちらで分類した方が正解な気がします

考えられるのは、hsファイルの誤植か
あるいは、標準命令でも使えるようになる??
手前で実装が止まっている...のどちらかになりますが

この件、おにたま さんに確認した方が
良いかも知れません



さーくん

リンク

2023/4/8(Sat) 02:53:43|NO.99271

>解説 下の4行目に
>※HSP3Dish環境でのみ利用できます

>...とあります


>ただ、おかしな表記ですね。情報 の欄には
>ver.3.6標準命令 とあるんですが...

そう、そこなんですよね。
それで試しにhsp3dish.asのインクルードなしで
mmplayで音ファイルを再生し、実際に再生できたんですが、
その次にmmvolコマンドを試すとmp3は音量増減でき、wavは音量増減されず。
(※mmstatで音量ボリューム情報を取得させたところ、数値はちゃんと変わっている様子)
そしてhsp3dish.asインクルードするとwavもちゃんと音量増減される、と。

自分の環境依存の問題なのか、そういうHSP側の仕様なのか、
ファイルの問題なのか(しかし再生するファイルを変えて試しても結果は変わらず)
単純にmm命令に問題があるのか……

一応、hsp3dish.asインクルードで命令自体は機能するわけですから
現状では致命的な問題というわけではないですが、
hsp3dish.asインクルードの場合、
Windows上だと最初にスマホ画面向けのウインドウが一瞬出てしまうため、
現状だとWindows向けの何かを作る場合は使い辛そうですし。

うーん



窓月らら

リンク

2023/4/8(Sat) 18:48:04|NO.99273

hgimg3 または hspogg などでサウンド機能を拡張すればいいかと。
サウンドだけでいいのであれば hspogg でいいんじゃないですかねー。
他にも探せばいろいろでてます。
F1押してリファレンスマニュアルで検索してみてください。



沢渡

リンク

2023/4/8(Sat) 18:49:29|NO.99274

hspoggを使えばdmm系命令でボリュームの調節ができますが、
hspoggはwavとoggには対応していてもmp3には対応していないのですよね。
mp3をoggにコンバートする手間はかかりますが、
検討するのも一つの手だと思います。



沢渡

リンク

2023/4/8(Sat) 18:50:31|NO.99275

おっと、被ってしまった。



zrs90(5さい)

リンク

2023/4/8(Sat) 19:32:44|NO.99276

掲示板下の、サイト内検索
「音量」、「音量設定」で
検索すると、mci、音量ミキサー
等の記事が出てきます

...後は、vectorや窓の杜、個人HP
等で配布されているHSP用の音声系
モジュールやdll に音量調整
出来る物があれば良いのですが
私は心当たりがないです



メルクーフ

リンク

2023/4/8(Sat) 21:19:21|NO.99277

 確かにHSP3Dish環境でなくてもMP3形式にはmmvolが効きますね。意図せずにこういう仕様になっていたのかは分かりませんが、いずれにせよ本来はmmvolはHSP3Dish用なのでWAVE形式の音量が変わらなかったとしても仕方がないということになります。

 ミュージックプレイヤーを作っていてHSP3Dishを使わずにボリューム変更をしたいのであればvAudioを使うのがいいと思います。vAudioはWAVE、MP3、OGG、FLAC形式に対応しています。
 URLは上が32ビット、下が64ビット用です。
https://www.vector.co.jp/soft/winnt/prog/se494127.html
https://www.vector.co.jp/soft/winnt/prog/se525137.html

 ゲームを作るのであれば、私にはvAudioで効果音をこちらの想定どおりに再生させる方法がどうしても分からなかったので効果音は別のプラグインを使う必要があるかもしれません。私の場合はovplay.dllを使っています。



さーくん

リンク

2023/4/8(Sat) 22:43:00|NO.99278

皆さま、返信ありがとうございます。

窓月らら様、沢渡様
>hgimg3 または hspogg などでサウンド機能を拡張。
そちらのやり方も知っていますので、
mp3をmmコマンドで、wavをdmmコマンドで鳴らしてみようかと思ってます。

zrs90(5さい)様
>mci、音量ミキサー
mci命令もいじった事があるので、そちらでも代替はできるでしょうね。

メルクーフ様
>ミュージックプレイヤーを作っていて〜
>ゲームを作るのであれば〜
現時点では、まだコレといったソフトを作る前提ではなく、
HSP3における様々な機能単位で組み、実行して確かめてる感じですね。
その途上、として今回、音量調節の機能を組む場合として
mmvolを試していたところ、mp3とwavで機能するしないにぶち当たった次第です。



さーくん

リンク

2023/4/10(Mon) 17:17:58|NO.99281

皆さま、ご相談に乗っていただきありがとうございました。
2023年4月現在でのmmvol命令の
mp3ファイルはちゃんと変わり、wavファイルは変わらない理由は不明ですが、
音量変更機能を取り入れようとして、同じ問題にぶち当たった人用に、
mmコマンドとdmmコマンド併用でのwavとmp3、両形式対応の
音量変更サンプルを残しておきます。

※音楽ファイルは別途ご用意ください。
--------------------------------------------------

; ; 音量調整サンプル ; HSP3.6 ; WindowsPC(WIN11)動作向け ; ; mp3ファイルを標準(?)のmmコマンドで、 ; wavファイルをhspogg.asインクルードの上、dmmコマンドで取り扱う。 ; ; #include "hspogg.as" screen 0,600,400 title "sound_vol change test" color : boxf dmmini dmmload "test.wav",0,0 mmload "test.mp3",1,1 Sound_VOL=0 ;マスターボリューム設定 DSound_VOL=0 ;マスターボリューム設定(dmmコマンド用) mmplay 1 ;mp3再生 ;---------------------- *main redraw 0 color : boxf : color 255,255,255 dmmstat aaa,0,1 mmstat bbb,1,1 pos 10,10 : mes "0音量:"+aaa+"" pos 10,30 : mes "1音量:"+bbb+"" redraw 1 stick key,0,1 ;何かのキーが押されたら if key!0 : dmmplay 0 ;  wav再生 if key&8 :Sound_VOL-=100 : DSound_VOL-=1000 ;↓キーで音量ダウン if key&2 :Sound_VOL+=100 : DSound_VOL+=1000 ;↑キーで音量アップ if Sound_VOL>=1 : Sound_VOL=0 if Sound_VOL<=-1001:Sound_VOL=-1000 if DSound_VOL>=1 : DSound_VOL=0 if DSound_VOL<=-10001:DSound_VOL=-10000 dmmvol 0,DSound_VOL ;音量変更 mmvol 1,Sound_VOL ; await 1 goto *main
--------------------------------------------------



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.99269への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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