Take a look at the source code for GetAsInterleavedSamples - it should help you understand how NAudio is reading the values from the ASIO buffers
https://naudio.codeplex.com/SourceControl/latest#NAudio/Wave/WaveOutputs/AsioAudioAvailableEventArgs.cs
GetAsInterleavedSamples is just a helper method. My assumption is that people who are working with ASIO are doing so because they need ultra-low latency, so they may prefer to use the IntPtrs directly
https://naudio.codeplex.com/SourceControl/latest#NAudio/Wave/WaveOutputs/AsioAudioAvailableEventArgs.cs
GetAsInterleavedSamples is just a helper method. My assumption is that people who are working with ASIO are doing so because they need ultra-low latency, so they may prefer to use the IntPtrs directly