ソフトサウンドの機能を使用すると可能です
1000Hz の sin波と 200Hz の sin波を合成して再生するプログラムを組んでみましたので、よろしければご覧ください m(_ _)m
#include "DxLib.h"
#include <math.h>
// 44.1Hz で10秒ぶんのサンプル数
#define SAMPLE_NUM (10 * 44100)
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int SoftSoundHandle ;
int SoundHandle ;
ChangeWindowMode( TRUE ) ;
if( DxLib_Init() < 0 ) return -1 ;
// 44100Hz, 16bit, 1チャンネルの 10秒の長さのソフトサウンドハンドルを作成
SoftSoundHandle = MakeSoftSound1Ch16Bit44KHz( 10 * 441000 ) ;
// 10秒ぶんの波形データを作成する
for( int i = 0 ; i < SAMPLE_NUM ; i ++ )
{
// 1000Hz の sin波の値を取得
double Sin1 = sin( ( 3.1415926535 * 2.0 ) / 44100.0 * 1000.0 * i ) ;
// 200Hz の sin波の値を取得
double Sin2 = sin( ( 3.1415926535 * 2.0 ) / 44100.0 * 200.0 * i ) ;
// 二つの値を合成( 足して2で割った後、16bitの値の範囲 -32768 〜 32767 に収まる値にスケーリング )
int Mix = ( int )( ( Sin1 + Sin2 ) / 2.0 * 32766.0 ) ;
// 波形データに書き込む
WriteSoftSoundData( SoftSoundHandle, i, Mix, Mix ) ;
}
// 作成した波形データからサウンドハンドルを作成する
SoundHandle = LoadSoundMemFromSoftSound( SoftSoundHandle ) ;
// サウンドハンドルを作成した後はソフトサウンドハンドルは不要なので削除
DeleteSoftSound( SoftSoundHandle ) ;
// 作成したサウンドハンドルをループ再生
PlaySoundMem( SoundHandle, DX_PLAYTYPE_LOOP ) ;
// キー入力待ち
WaitKey() ;
// 作成したサウンドハンドルを削除
DeleteSoundMem( SoundHandle ) ;
// DXライブラリの後始末
DxLib_End() ;
return 0 ;
}