Sound Library - MIDIモジュールコントロール関数

sdMidiGetCtlValue

MIDI音源のコントロールチェンジで設定された値の取得

書式

SDE_ERR sdMidiGetCtlValue( handle, control_num , value )
SDMIDI handle
const Sint8 control_num
Sint8 *num

引数

handle   MIDIポートのハンドル
control_num   MIDIコントロールチェンジの番号
value   MIDI音源で設定された値を格納する変数のポインタ

戻り値

SDE_ERR_NOTHING   エラーなし
SDE_ERR_NO_INIT   Sound Library が初期化されていない

解説

MIDI音源の該当ポートのMIDIコントロールチェンジの値を取得します。

用例

#define	SMPD_MIDI_CH (0)
sample()
{
	SDMIDI handle;
	SDS_MIDI_MES midi_mes;
	Sint8 value;

	sdMidiOpen( &handle);

	/*
	 * MIDI portのMIDI Control Changeの48番に1を設定するMIDI Messageを送信する
	 */
	sdMidiSetMes( handle, &midi_mes, SDD_MIDI_MES_CTL_CHG | SMPD_MIDI_CH, 48, 1);
	sdMidiSendMes( handle, &midi_mes, 0);

	/* 溜まっているHost Commandを全て送信 */
	sdSysHostCmdFlush( SDE_HOST_CMD_FLUSH_MODE_FORCE_ALL);

	/* 設定値を確認 */
	sdMidiGetCtlValue( handle, 48, &value);
	/* valueには1が入っているはず */

	/*
	 * MIDI portのMIDI Control Changeに123を設定するMIDI Messageを送信する
	 */
	sdMidiSetMes( handle, &midi_mes, SDD_MIDI_MES_CTL_CHG | SMPD_MIDI_CH, 48, 123);
	sdMidiSendMes( handle, &midi_mes, 0);

	/* 溜まっているHost Commandを全て送信 */
	sdSysHostCmdFlush( SDE_HOST_CMD_FLUSH_MODE_FORCE_ALL );

	/* 設定値を確認 */
	sdMidiGetCtlValue( handle, 48, &value);
	/* valueには123が入っているはず  */
}


備考

値はMIDI音源内の各Portで独立して設定・取得が可能です。また、MIDI Channelは影響しません。

MIDI Control Changeの保存されている値はsdMidiGetCtlValue()関数によってが変化することはありません。

control_numは現在無視され,つねにMIDIコントロールチェンジの48番の値を取得します。


参照

sdMidiSendMes()
 MIDIポートにMIDIメッセージを送信
sdMidiSetMes()
 MIDIポートに送信するMIDIメッセージを作成

sdMidiGetCtlValue
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000