Multichannel DirectShow ASIO Renderer

During an ongoing programming project in our school, I developed a multichannel ASIO-DirectShow filter. This filter provides ASIO multichannel output for any DirectShow source in Windows.
The filter can be used with almost any Windows media player that supports user-defined output filters (e.g. Media Player Classic, The Core Media Player, Zoom Player, RadLight, WinAmp, etc.).

Supported features:

  • Dynamic ASIO-Driver Selection
  • Supports up to 24 output channels
  • Waveformat conversion and detection
    • Mono, Stereo, Surround modes 4.0,4.1,5.0.5.1,6.0,6.1,7.0,7.1
    • Sample rates up to 192kHz
    • Encoding PCM 16,24,32-Bits and PCM Float
  • FFT-Spectrum Analyzer
  • Output sample rate selection
  • Output volume control for master and separate output channels
  • N:N channel mapping (i.e. connect each input channel to arbitrary number of output channels)
  • Virtual speaker room (i.e. graphical interface to control volume of each speaker, using 2D-position of user within a virtual room)
  • Spatial FFT mapping feature that moves virtual user, and therefore sound based on frequency spectrum

In order to use the Multichannel ASIO Renderer Filter, just download and install the software. Prerequisite is .NET 4.

Version History

Version 1.46:

  • Fixed install issues with regasm
  • Deleted Mathnet, implemented Vector class
  • Modified setup routine
  • Fixed bufferlength for multichannel wav

Version 1.47:

  • Modified Pause/Start/Stop reinitialization of ASIO Drivers
  • Modified ClearBuffer

Version 1.50:

  • Re-implemented ASIO-output
  • Adaptive buffersize
  • Fixed sync- and click-issues
  • Fixed spectrum viewer

     

Version 1.65:

  • Included NAudio in Assembly
  • Eliminated Sourcegrid - now only one Assembly-DLL
  • Smaller footprint

Version 1.66 (10/04/2016):

  • Fixed synchronization

Version 1.67 (10/10/2016):

  • Fixed small bug in virtual speakerroom

Version 1.70 (10/14/2016):

  • Fixed small channel-mapping grid problem

Version 1.72 (10/28/2016):

  • Timestamp-based synchronization
  • Remember speakerroom settings
  • Modified ASIO driver initialization

Version 1.76 (12/03/2016):

  • Fixed bug where renderer crashed when switching drivers
  • Changed registry key to HKCU/Software
  • Fixed bug in channel mapping grid with channel names

Version 1.80 (12/19/2016):

  • Fixed serious memory leak in renderer 
  • Improved audio output
  • Fixed update bug in channel mapping grid

Version 1.81 (12/22/2016):

  • Fixed channel grid update bug when changing channels while displaying mapping

Version 1.91 (01/02/2017):

  • Fixed driver initialization
  • Fixed registry entries for channel mapping and driver selection
  • Fixed registry save and load

Version 1.94 (01/08/2017):

  • Updated to audio library
  • Modified driver initialization
  • Fixed bug in audio buffering
  • Added output samplerate selection

Version 1.95 (01/12/2017):

  • Modified Pause function

Version 1.96 (01/18/2017):

  • Fixed issue with default driver selection
  • Fixed concurrency issue in buffering

Version 1.98 (01/24/2017):

  • Fixed renderer disposal problem
  • Fixed memory leaks when renderer is removed from filter graph

Version 1.99 (02/23/2017):

  • Fixed compatibility with other player (KMPlayer, PotPlayer, etc.)
  • Fixed problem with speaker names
  • Reworked memory management

Version 2.00 (02/27/2017):

  • Fixed volume issue
  • Fixed issue in PotPlayer
LICENSING: Through donations, you are eligible to use this software for private, non-commercial purposes. If you intend to sell, include or distribute this software in connection or packaged with or within a commercial product, please contact the author for commercial licensing at: michael@familie-buchberger.at

PLEASE -DONATE- before using the software!

MultiChannelASIORendererSetup2.00.exe (9693 downloads)
softonic-logo-inlineDownload from Softonic
videohelpDownload from Videohelp.com
Softpedia_LogoDownload from Softpedia
iuklgcndcDownload from download.com

Please donate between $5 and $10 if you are using the software.   Thank you!


When installed, just start your favorite  DirectShow media player and find the option to change the audio renderer (e.g. in MPC Menu->View->Options->Playback/Output):
Properties-7

After selecting the Multichannel ASIO Renderer, start playing the media. The filter properties window can be opened in almost any player, using the Filters-Menu:
Properties-1

The filter properties provide access to all the features of the Multichannel ASIO Renderer:
Properties-3Properties-2Properties-4Properties-5Properties-6

Additional Links on this topic:

http://forum.doom9.org/showthread.php?t=173174

http://www.videohelp.com/software/Multichannel-ASIO-DirectShow-Renderer

http://multichannel-asio-directshow-renderer.en.softonic.com/

http://download.cnet.com/Multichannel-ASIO-Renderer/3000-2169_4-76473944.html

37 thoughts on “Multichannel DirectShow ASIO Renderer”

  1. I can't get it to work in mpc-hc on windows 10. The filter is selected in the options. But when i launch the video, it seems to play through regular wmv. The active filter list (through right click -> filters) doesn't mention asio but this list : Filters currently loaded: - Default DirectSound Device - Enhanced Video Renderer (custom presenter) - Audio Switcher - LAV Video Decoder (internal) - LAV Audio Decoder (internal) - LAV Splitter Source (internal)
    1. Hi Vincent, You need to disable the built-in audio switcher in MPC-HC in order to get the renderer working. To do that, choose View->Options and select Internal Filters->Audio Switcher and deselect "Enable built-in audio switcher filter (requires restart)". MPC-HC Audio Switcher
  2. I would like to know if your Multichannel ASIO Renderer Filter can be used with a computer that utilizes only it's on-board sound feature or must you have a ASIO sound card installed to take advantage of your filter.
    1. Dear Gilbert, The ASIO renderer was designed for multichannel output, which requires an ASIO-compatible soundcard. However, for testing purposes, there is ASIO4ALL-Driver, which emulates an ASIO-compatible soundcard with any available windows audio hardware. You can download ASIO4ALL here: http://www.asio4all.com/
  3. Hi Michael.Your ASIO driver is simply Perfect!I can't believe the sound improvement with the MPC-HC player.I want to ask if your driver mixes the multichannel audio input when the connected output generic asio driver (ASIO 4All) uses simple stereo card.From my test seems to this automatically.
    1. Hi Charis, Thank you for your positive feedback. In the properties - panel of the renderer there is a channel-mapping feature that lets you mix input to output channels arbitrarily. So you can mix e.g. 7.1 input channels onto 2 stereo output channels by clicking on the respective channel mapping checkboxes. -Michael
  4. Hello, Michael! I've tried to use your rendered with MPC-HC 1.7.10.172 on Win10 with Soundblaster X-Fi and 5.1 speakers, but it wouldn't correctly identify the number of channels — I only got two, so all my voice, subwoofer etc sounds were gone. And there was no way to add more than two channels (there is an option to load channel mappings, but where would I get it from?) Only in Audio Creation mode was I able to see more channels, but now it got to 18(!), not 6. And the channels were misidentified as well, the center channel got to the back left speaker.
    1. Dear Evgeny, You are mixing up channels that are input channels (from the audio source that you are trying to play) and output channels, which are those channels that your soundcard offers. There was some comment in some forum that I don't remember anymore, were it says that you need to put SoundBlaster X-Fi into audio creation mode to use all available output channels of the soundcard. Anyway, your soundcard offers 16 different output channels, whereas only 6 of them seem to be connected to speakers in your setup. So you need to identify those speakers in the channel mapping properties of the renderer which are connected to your speakers (i.e. where you hear sound if you switch them on). Then, you can map all input channels from your playing source to different (also multiple) output channels of your soundcard. This mapping can be saved as file, anyway, the mapping is also saved in registry and reloaded automatically if you open similar sources and play them on the same soundcard. So - channel mapping is the function to map input channels from playing audio/video sources to output channels of the soundcard. Hope this helps - Greetings, Michael
  5. ASIO is an exclusive driver model, that means, it can only be used by one application at the time. Maybe the other instance of your player did not quit before initialization of the new one? Please also look at the Driver properties page of the renderer, if the sample rate of the played source is supported... let me know your results... Greetings, Michael
    1. I know ASIO is an exclusive driver,so this discussion is talk about one instance running at the moment,for MPC-HC,I'v use the default settings "use the same player for each media file",and no other program occupancy ASIO channel at the time.If add multiple files to playlist,there is no sound playing next file.
  6. Michael! it seems to me that v. 1.46 sounds more better than 1.44 ... Best Regards, Michael.
  7. Hi Michael, thank you very much for your efforts, you did a great job! Might it be possible to see a version which does not utilize .NET Framework? As I see from a quick & dirty look, at least the SourceGrid DLL needs .NET. Would be nice to have a version which is not bound to .NET. 🙂
    1. Hi Ben! Thanks for your comment! This software is a kind of side product from programming lessons in computer graphics and audio programming. Since we use .NET in teaching, I kind of reused the code to implement the filter. I agree that it would be better to have it recoded in C++, but this means not only coding MFC, but also re-implementing the whole audio part in C++. I would love to do that, but unfortunately my time is the limiting factor in this case. Regards, Michael
  8. Hi Michael, I've done some testing and it seems that your asio renderer is not bit-perfect transmitting audio. Is there any resampling done or altering of the audio stream (e.g. volume adjustments?). The volume in the options menu is of course set by 0,00 db. I also tested surodev's asio renderer, which is bit-perfect. I used a .wav file with a embedded ac-3 stream. If anything is altering the audio stream, the ac-3 stream can't be decoded from a receiver.
  9. Hello Michael thanx for this plug-in but is it possible to use VST plug-in with ? i would like to use Ik multimedia Arc 2 with my room and speaker profile. Foobar has is own plug-in, doing the same thing would be really fabtastic instead of using EqualizerApo.
    1. i think you have to map asio output throught the software jack to do this with minihost modular plugin and it should be on 🙂
  10. Hi, I am back. Version 1.99 almost working. PotPlayer video playback. Problem si when I go full screen from window mode or to the player setting or just open new video... sound volume get loud. So I always need to re-change volume at least one percent. Like it just need to reset volume setting. Same problem is at MPC-HC. Creative x-fi Titanium HD (last version drivers) Win10 x64 Thx for your work.
      1. Yes. It is working. And I increase ASIO latency to 125ms to completely get rid of little sound crackling. THX.
  11. Hi, there are some weird sound happening randomly while using together with the latest 0.9 LAV filter. It sound like "out of phase", can be fixed by pausing and resuming the video. Any idea? Thanks.
      1. Hi, I've done the following test: MPC-BE built-in MPC filter - no problem within 25min MPC-BE with 0.9 LAV - happen randomly within 10min MPC-HC built-in 0.9 LAV - happen randomly within 10min MPC-BE with 0.8 LAV - no problem within 25min MPC-HC with 0.8 LAV - no problem within 2hrs+ so far One of my friend said he experienced the same problem with 0.6 LAV, so I'm not sure.
        1. Video: MPEG4 Video (H264) 1280x720 23.976fps 656kbps [V: h264 high L4.0, yuv420p, 1280x720, 656 kb/s]; Audio: AAC 44100Hz stereo 127kbps [A: aac lc, 44100 Hz, stereo, 127 kb/s]
  12. Michael! The "out of phase" problem is present with LAV-filters. More often with 24 bits audio then with 16 bits. Any video file randomly. And it happens with audio-file very-very rare. And thanks again for great renderer! Best regards, Michael.
  13. Hello, How can I delete wrong setting or restore default setting in win10 ? Best regards, John.

Leave a Reply

Your email address will not be published. Required fields are marked *

*