---
name: "oss_audioloop"
section: "7"
platform: "linux"
package: "oss4-base"
version: "4.2-build2010-2"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/oss_audioloop"
---

# oss\_audioloop(7)

Loopback audio driver.

## NAME

**oss\_audioloop** - Loopback audio driver.

## DESCRIPTION

**The loopback audio driver makes it possible to create special purpose** **virtual audio devices based on user land server processes.**

**Loopback devices are driven by a timer interrupt and no real audio** **hardware is required.**

### INTRODUCTION

**Audio loopback devices are like named pipes or pseudo terminals. They are**  **grouped in client and server device pairs. The server side device must be open** **before the client side device can be opened.**

**Loopback devices are typically used to implement server based special purpose** **audio devices. This kind of server can for example transfer the audio data** **played by the client application to some remote system using some VoIP** **protocol. However the server application doesn't need to be any dedicated** **server. Practically any audio application can be used as the server.**

### SERVER SIDE DEVICE

**The server side applications sets up the native sampling rate and sample format** **(number of bits and channels). The server side device can be opened for input** **(O\_RDONLY) pr output (O\_WRONLY). Opening for simultaneous input and output** **(O\_RDWR) is not permitted.**

**The server application will automatically be paused at the moment it tries to** **read or write audio data for the first time. It will be kept in sleep until the** **client side application starts writing or reading data. This sleep period may** **last forever and in some cases the first write/read call never returns. For** **this reason it's not recommended to use GUI based audio applications as the** **server. Note that this wait will occur even in the non-blocking**  **(O\_NONBLOCK) mode (this is intentional feature and not a bug).**

### CLIENT SIDE DEVICE

**The client side device is typically used by any ordinary audio application.** **There is nothing special in loopback devices.**

**Since the loop is unidirectional the client side will be forced to be write** **only if the server side device is open for recording and vice versa.**

**The loop will use the sample rate and sample format (number of bits and** **channels) set by the server side application. If the client uses different**  **settings then OSS will perform the required sampling rate and format conversions** **automatically.**

## COMPATIBILITY ISSUES

**Audio loopback devices differ from "normal" audio devices because an** **application is needed at the both ends of the loop. The loop device** **will return a "Connection reset by peer" error (ECONNRESET) error. Applications** **designed to be used as loopback based server applications can/should use this** **error (returned by read or write) as an end-of-stream indication.**

## OPTIONS

- **o audioloop\_instances:**

  **Specifies how many loopback client/server audio device** **pairs to be created.**

  - **Values: 1-16**

    **Default: 1**

## KNOWN PROBLEMS

- •

  **There is no mixer (volume control) related with loopback audio devices. This** **may prevent poorly designed audio applications (that expect/require a mixer)** **from working. There is no workaround available.**

- •

  **The server side application will wait until the client side application** **starts using it. This wait may last forever which in turn may cause**  **unrecoverable (network) problems with some applications.**

- •

  **Loopback devices may return "Connection reset by peer" error when the** **reote side of the loop disconnects the device. Some recording applications** **may fail to save the recorded data properly because of this. Use some** **other application (such as ossrecord) if this happens.**

## FILES

**/etc/oss4/conf/oss\_audioloop.conf Device configuration file**

## AUTHOR

**4Front Technologies**
