# Multichannel DirectShow ASIO Renderer

## Highest quality audio output with lowest latencies for Directshow compatible software

During a 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.5

#### Version 3.8 (2020-06-15)

• Re-fixed Virtual Speakerroom

#### Version 3.7 (2020-06-14)

• Added automatic gain control (AGC)
• Fixed registry bug
• Fixed filter merit and media formats
• Fixed memory leak in GUI
• Improved compatibility with MPC-HC and MPC-BE

#### Version 3.6 (2020-06-03)

• Improved resampler

#### Version 3.5 (2020-06-01)

• Improved sync
• Fixed registry persistence
• Added sinc high quality resampling mode

#### Version 3.4 (2020-05-30)

• Improved sync from start
• Fixed some licensing issues

#### Version 3.3 (2020-05-28)

• Noise problems fixed
• Fixed registry entries for name and supported media types
##### Version 3.2 (2020-05-24)
• NEW: The filter now has its own reference clock
• Implemented skipping of samples
• Fixed automatic sample rate selection
• Several speed improvements
##### Version 3.1 released!Includes fixes for phase shift and crackling issues.

LICENSING: After 10 days of trial, you need to purchase a license.License availaible from: https://www.mb-software.at/shop/
Through purchase of a license key, you are eligible to use this software without restrictions of "normal use".
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 retail/bulk licensing at:
michael@familie-buchberger.at or use the contact page on the website.

For a sophisticated description on configuring a media stack built with Potplayer, LAV filters and ASIO, please take a look at TennojiM's blog page:

http://tennojim.xyz/article/media_stack_diy

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):

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:

The filter properties provide access to all the features of the Multichannel ASIO Renderer:

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

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

# When your VMWare keeps complaining that it cannot run on Windows 10 due to Hyper-V...

On Windows 10 I recently ran into the following error message that prevented me from running any of my VMs:

After removing the Hyper-V Role in Windows features, the problem still persisted. I turned out that it was due to
Windows Defender Credential Guard and virtualization-based security.

Microsoft Windows Defender Credential Guard is a security feature that isolates users' login information from the rest of the operating system to prevent theft.
Good exlaination here:
https://searchenterprisedesktop.techtarget.com/definition/Microsoft-Windows-Defender-Credential-Guard

The solution was to go for the following:
https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-manage#disable-windows-defender-credential-guard

# Realtek audio drivers and Waves Maxxaudio pro application

If you own a Dell computer and are using the Realtek High Definition Audio drivers, you most likely run into problems when updating the drivers to the newest version.

Mostly, the problem will show up as headphones are not detected anymore, when connected, or the ASIO driver is not available anymore, or the Waves Maxxpro audio application is missing.

In order to get everything up and running again, here is the procedure the helped on my Dell XPS 13:

Now, everything should work like before...
Hope this helps!

# LAN-Control of Panasonic data projectors

If you want to control your Panasonic data projector for simple commands like power on and power off - there is some very simple C# console app that sends a web request and calls the respective cgi program on the projectors' web server.

The basic sample app can be found on https://github.com/mbuchber/Pan-Control

# DirectShow MPEG4 playback distorted; scrambled

When using DirectShow and Haali Media Splitter to playback MPEG4 or MKV videos encoded in H264, picture can be distorted or "scrambled".

If your video looks like that, you need to adjust settings in the Haali Media Splitter.

Use the Media Splitter properties and select "Use custom media type for H.264" and value "Yes". This will properly tell the decoder filter  to decode H.264.

# 3D-Kinect controllable timetable (Untis3D)

Based on the electronic time-table solution (WebUntis) for schools from an Austrian company (http://www.grupet.at), we implemented a 3D digital signage display of the time-table of our school, controllable via Kinect.

The basis for data acquisition is a JSON-RPC-API from WebUntis, for which we developed a Java interface for use with the 3D display application.



 

Credits: Johannes Grünberger, Thomas Hasl, Theodor Seiser

# JackAudio over Network: Jack Client/Server Connection

JackAudio is a low latency audio connection software, that can transmit audio data via TCP/IP network connections. Setup is somewhat crucial for "first timers". I hope that this post can help over the standard pitfalls.

2. Setup JACK Master
• Launch Jack Control Application (as Administrator)
• Configure Jack according to the following settings
• Start Jack using the "Start"-Button in the Jack Control GUI
• Run an elevated command prompt  (as Administrator), change to the Program Files/Jack directory and run the following command:
jack_load netmanager
You can optionally bind the netmanager to an IP-Address using:
jack_load netmanager -i "-a [IP-Address]"
3. Setup the JACK Slave on another computer
• From the command line enter the following:
jackd -R -d net -a 192.168.0.1
Note that the IP-Address must match the IP from the step before.

Using ASIO-Software, Jack publishes a "JackRouter" virtual driver that can be used to stream audio data through the network channel. Within the directory "C:\Program Files (x86)\Jack\32bits" there is a file called "Jackrouter,ini" which lets you configure input and output channels of the virtual sound driver.

# Audio-Programming: Directshow Logarithmic Volume Control

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/.sites/132/site8248620/web/wp-content/plugins/latex/latex.php on line 47 Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/.sites/132/site8248620/web/wp-content/plugins/latex/latex.php on line 49 Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/.sites/132/site8248620/web/wp-content/plugins/latex/latex.php on line 47 Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/.sites/132/site8248620/web/wp-content/plugins/latex/latex.php on line 49 Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/.sites/132/site8248620/web/wp-content/plugins/latex/latex.php on line 47 Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/.sites/132/site8248620/web/wp-content/plugins/latex/latex.php on line 49 Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/.sites/132/site8248620/web/wp-content/plugins/latex/latex.php on line 47 Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/.sites/132/site8248620/web/wp-content/plugins/latex/latex.php on line 49
[Latexpage]When programming audio user-interfaces, volume is usually calculated in form of logarithmic scales. In Windows, specifically DirectX, volume ranges from -10000 (=silence) up to 0 (=maximum volume). However, a volume slide is moved linearly between e.g. 0 (=silence) up to 1.0 (maximum volume) - so we need to convert linear values to logarithmic and vice versa.

The basic function, that takes a linear value in the range of [0;1] and converts to a exponential value can be denoted as:

Note, that this function ranges from 0 up to 10 on the vertical axis. The inverse function can be denoted as the logarithmic function with base 10:

In order to apply the correct ranges, we need to shift the values of x in both functions. Thus, we can rewrite $f(x)$ as:

For the logarithmic function, we write:

Using these formulae, we can convert volumes within the linear ranges from 0.0 to 1.0 to logarithmic values between -10000 and 0 and vice versa.