The API supports speeding up playback of a whole voice, but in your case - since the pulse frequency and beep tone frequency are independent - you need to mix the sound yourself to get the desired effect. XAudio does not (IIRC) support modulating two streams out of the box.
This tutorial shows you how to do streaming from a file; in your case, instead of submitting data loaded from file, you'd submit the data you mixed in memory.
The formula would be something like this (somewhat metacode):
Tau = pi * 2 // full phase of a sine
BeepTone = 880 * Tau / sampleRate // 880 Hz beep
PulseFrequency = 1 / sampleRate; // low frequency oscillator frequency for pulse; you can modify this. Currently 1 pulse per second.
signed int16 soundBuffer[bufferSize]; // this is the buffer you'd submit to the source voice; assuming 16-bit mono
for i = 0 to bufferSize -1
// synthesis: multiply a solid 880Hz sine with square pulse of 1Hz
float sample = sin(BeepTone * i) * squarewave(PulseFrequency * i); // square wave range should be 0 to 1
// scale to signed int16 range
soundBuffer[i] = sample * 32767;
// soundBuffer now contains the mixed wave to submit to source voice
Edited by Nik02, 02 September 2014 - 06:22 AM.