Introduction: Make a Custom Sound Device That Downmix 5.1 Channel to 2.0 Channel in Raspberry Pi

Picture of Make a Custom Sound Device That Downmix 5.1 Channel to 2.0 Channel in Raspberry Pi

Introduction

Playing a 5.1 channel sound in the Raspberry Pi's built-in sound chip analogue output is not doable unless the 5.1 channel sound is downmix to 2 channel. This instructable will show how to downmix 5.1 channel sound to 2.0 channel sound. After completing this instructable, you might be interested to check out "Play Dolby Digital 5.1 Audio on Raspberry Pi" instructable.

Scope

This instructable will cover the following:

  • How to create a virtual device that downmix 5.1 channel sound to 2.0
  • How to install Advanced Linux Sound Architecture (ALSA) utilities
  • Use ALSA utilities to test sound card and sound device

This instructables will NOT cover the following

  • PulseAudio
  • Open Sound System (OSS)

Specifications

My Raspberry Pi:

  • Raspberry Pi 2
  • Rasbian based on Debian Version 8.0 (a.k.a Jessie)
  • Advanced Linux Sound Architecture Driver Version k4.1.10-v7+
  • Pulse Audio and OSS are NOT installed
  • 2 speakers connected to Raspberry Pi's audio/video 3.5mm socket.

Step 1: Test Sound Card and Speakers Are Working

Complete the Test Sound Card and Speakers instructable.

Step 2: Provide Instructions to ALSA to Create a Virtual Device

Picture of Provide Instructions to ALSA to Create a Virtual Device

Use a ALSA plugin called "route".

"Route plugin converts channels and applies volume during the conversion"

Open terminal:

Use vi or any text editor.

cd
vi .asoundrc

Enter the lines as shown in the screenshot.

Save the file.

Step 3: Check That ALSA Created the Custom Virtual Device

Picture of Check That ALSA Created the Custom Virtual Device

ALSA will read "home" directory for .asoundrc and create the virtual device that was defined in the previous step.

Open terminal:

aplay -L

The above program will display the custom virtual device as:

51to20
Virtual device that downmixes 5.1 channel to 2.0 channel

Step 4: Test the Virtual Device

I have uploaded a sample sound file that has 6 channels (5.1) to test the virtual device that was created in the previous step.

Download the 51sound.wav

Open terminal

aplay -D 51to20 51sound.wav

The front 2 speaker should say the following:

Speaker RIGHT: "FRONT RIGHT"

Speaker LEFT: "FRONT LEFT"

Speaker RIGHT and Speaker LEFT together: "CENTER"

Speaker RIGHT and Speaker LEFT together: Some words that I cannot make out

Speaker RIGHT: "REAR RIGHT"
Speaker LEFT: "REAR LEFT"

Comments

skimorc (author)2016-05-26

i need to do the oposite, from the 2 channels get 5.1 in my sbx prostudio soundblaster connected usb to my raspi =D please help!

About This Instructable

1,420views

5favorites

Bio: Systems Administrator and Software Programmer.
More by mirza irwan osman:Install Modem USB Device in Raspberry PiMake the Volume Knob of Sound Blaster X-Fi Surround 5.1 Pro Sound Card Work in Raspberry PiCreate a Volume Control for USB Sound Card in Raspberry Pi
Add instructable to: