midiOutSetVolume

midiOutSetVolume 関数は MIDI 出力デバイスの音量を設定する。

midiOutSetVolume hmo, dwVolume

hmo : [intptr] オープン済み MIDI 出力デバイスへのハンドル。このパラメータには HMIDIOUT にキャストされていれば MIDI ストリームのハンドルを含めることもできる。デバイス識別子も指定できる。
dwVolume : [int] 新しい音量設定。下位ワードに左チャネルの音量設定を、上位ワードに右チャネルの設定を指定する。0xFFFF が最大音量、0x0000 が無音を表す。デバイスが左右両チャネルの音量制御をサポートしていない場合、dwVolume の下位ワードでモノラル音量レベルを指定し、上位ワードは無視される。

(プラグイン / モジュール : winmm.dll)

解説

midiOutSetVolume 関数は MIDI 出力デバイスの音量を設定する。

[戻り値]
成功時は MMSYSERR_NOERROR を、それ以外の場合はエラーを返す。考えられるエラー値は次のとおり。
(以下省略)

[備考]
デバイス識別子を使用した場合、midiOutSetVolume
呼び出しの結果はそのデバイスの全インスタンスに適用される。デバイスハンドルを使用した場合、結果はそのデバイスハンドルが参照するインスタンスにのみ適用される。全てのデバイスが音量変更をサポートしているわけではない。サポートしているかは
midiOutGetDevCaps 関数で MIDICAPS_VOLUME フラグを指定して問い合わせることで判定できる。同じく
MIDICAPS_LRVOLUME
フラグを指定して問い合わせることで、デバイスが左右両チャネルの音量制御をサポートしているかも判定できる。16
ビット全ての音量レベル制御をサポートしていないデバイスは要求された音量設定の上位ビットを使用する。例えば 4
ビットの音量制御をサポートするデバイスは、音量レベル値 0x4000、0x43be、0x4fff
に対して同じ音量設定を生成する。midiOutGetVolume 関数はデバイスの能力にかかわらず midiOutSetVolume
で設定された完全な 16 ビット値を返す。音量設定は対数的に解釈される。これは音量レベルを 0x5000 から 0x6000
に上げたときと 0x4000 から 0x5000 に上げたときの音量増加が同じように知覚されることを意味する。

情報

プラグイン / モジュールwinmm.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の winmm.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_winmm_gen2.hs