Я согласен с Avram выше, хотя я не стал бы пинвокировать, я бы сгенерировал оболочку, используя tlbimp.exe, если вы можете, вы сможете найти тип lib в одном из ваших любимых API C / C ++ с открытым кодом запустите на нем tlbimp.exe.
Таким образом, вы получаете все льготы API без необходимости обрабатывать pinvoke / другие небезопасные вызовы сами, обертка может справиться со всеми неприятностями для вас.
...
Я бы, однако, задал вопрос, что вы хотите делать со звуком, который вы уже не можете сделать с помощью небольшого количества причудливого кодирования, используя базовые классы .Net и XNA. установите стороннее аудиофильное приложение и извлеките из него dll-файлы, а затем привяжите методы к ним (хотя это очень тяжелая работа).
Если вы хотите избежать вызовов pinvoke altogeher, вы в значительной степени привязаны к тому, что есть в самой XNA.
Хотя существует множество игровых движков, пусть один из них содержит несколько классных аудио классов, которые вы можете позаимствовать.