I added the code you suggested (but used the returned dspA since dsp_state does not have a member ‘instance’), but although the callback is called, the buffers are all zero, even though I can here the sound playing.

The sound itself is being played after a createSound with pcmreadcallback set and a subsequent playSound.

Thanks, that seems to have given me a view of the output, but the overall system behaviour is odd.

I’m programming a synthesiser.

Each time a note is played, I do a createSound with :

[list:3lhwitem]FMOD_MODE mode = FMOD_2D | FMOD_OPENUSER | FMOD_LOOP_NORMAL | FMOD_HARDWARE;
[/list:u:3lhwitem]The sound is released when the note has decayed.
This works well with polyphonic sound output.

However, as soon as I add the FMOD_SOFTWARE option, the system becomes monophonic.

But the weird thing thing is that when I play two notes in quick succession, the output I view from the DSP actually shows the correct sound, with the first note starting, then the second ramping up and eventually just the second. And yet what I actually here is the first note, a click as the first note stops, and the second note starts, and then the second note plays normally.

When I remove the ‘FMOD_SOFTWARE’ flag, the system reverts to polyphonic.