Advanced Linux Sound Architecture
![]() | Parte ou a integralidade do conteúdo desta página resulta da tradução de uma página originalmente presente numa Wikipédia noutra língua. A página correspondente pode ser conferida aqui. As fontes não foram verificadas. |
Advanced Linux Sound Architecture (conhecido pela sigla ALSA) é um componente do Linux (kernel) que pretende substituir o original Open Sound System (OSS), para fornecer drivers para placas de som. Alguns dos objetivos do projeto ALSA seu início eram configuração automática de som-cartão de hardware, graciosa e manipulação de múltiplos dispositivos em um sistema de som, que tenha objetivos amplamente cumprido. Um jovem de diferentes âmbitos, como o JACK, use ALSA para permitir a realização de baixa latência profissional-grade edição de áudio e misturar.
Liderado por Jaroslav Kysela, o projeto começou a partir de um dispositivo driver Linux para a Gravis Ultrasound placa de som, em 1998, e foi desenvolvido separadamente do kernel do Linux até que ela foi introduzida no 2,5 desenvolvimento em série 2002 (2.5.4-2.5.5) [1]. In the 2.6 version it replaces OSS by default, although a backwards-compatibility layer exists. Na versão que substitui 2,6 OSS por padrão, apesar de um recuo de compatibilidade camada existe.
ALSA características
ALSA foi projetada para utilizar alguns recursos que não foram, no momento da sua concepção, apoiado pelo OSS:
- Hardware based MIDI synthesis. Hardware baseado MIDI síntese.
- Hardware mixing of multiple channels. Hardware mistura de múltiplos canais.
- Full-duplex operation. Full-duplex operação.
- Multiprocessor-friendly, thread-safe device drivers. Multi-friendly, thread-safe drivers.
Para fornecer características limpas, ALSA tem uma maior e mais complexa do que API OSS, de forma que ele pode ser mais difícil de desenvolver aplicações que utilizam som ALSA como sua tecnologia. However, ALSA also provides an optional OSS emulation layer, so the simpler and more portable OSS API can be used. No entanto, ALSA também fornece uma camada opcional emulação OSS, então o mais simples e portátil OSS API pode ser utilizado.
Besides the sound device drivers, ALSA bundles a user space library for application developers who want to use driver features with a higher level API than direct interaction with the kernel drivers. Além do som controladores de dispositivos, ALSA feixes um usuário espaço biblioteca para aplicação desenvolvedores que quiserem utilizar funcionalidades condutor com um nível mais elevado do que API interacção directa com o kernel drivers. Unlike the kernel API which tries to reflect the capabilities of the hardware directly, ALSA's user space library presents an abstraction which is as similar as possible across disparate hardware. Ao contrário do kernel API, que tenta refletir as capacidades do hardware diretamente, ALSA do usuário espaço biblioteca apresenta uma abstração que seja tanto quanto possível semelhante em toda díspares hardware. It does this in part by using software plugins. Fá-lo, em parte, utilizando softwares plugins. For example, many modern soundcards or built-in sound chips don't have a "master volume" control, for these devices the user space library provides a software volume control instead using the "softvol" plugin, and ordinary application software needn't care about the difference. Por exemplo, muitos moderna soundcards ou built-in som chips não têm um "volume principal" controle, estes dispositivos para o usuário espaço biblioteca oferece um software volume controle vez usando o "softvol" plug-in, e não precisa de software aplicativo ordinário Preocupamos com a diferença.
ALSA Conceitos
Esta seção fornece uma visão geral dos conceitos básicos relativos ao alsa. [2] [3] [4] [5]
- typically, alsa supports up to eight cards numbered 0 through 7. Normalmente, alsa suporta até oito cartas numeradas de 0 a 7. Each card is a physical or logical kernel device capable of input, output or control of sound Cada carta é um físico ou lógico kernel dispositivo capaz de entrada, saída ou o controlo de som
- card 0 is the default card where most sounds are played. Cartão 0 é o padrão cartão onde mais sons são reproduzidos. The operating system determines which card is default O sistema operacional determina qual é o padrão cartão
- a card can also be addressed by its id which is an explanatory string such as Headset or ICH5 . Um cartão também pode ser dirigida pelo seu id, que é uma exposição de corda, como Headset ou ICH5. If card is omitted, it means card 0. Se cartão é omitido, isso significa cartão 0.
- cards have devices numbered starting at 0. Cartão de ter dispositivos numerados começando a 0. A device can be of playback type, meaning it outputs sound from the computer, or other type such as capture, control, timer, or sequencer. Um dispositivo pode ser do tipo de reprodução, o que significa que outputs som do computador, ou qualquer outro tipo, como a captação, controle, timer, ou sequenciador. If device is omitted, it means device 0. Se dispositivo é omitido, isso significa dispositivo 0.
- a device can have subdevices numbered starting at 0 that represent for example a speaker pair or some other relevant sound endpoint for the device. Um dispositivo pode ter subdevices numerados começando a 0 que representam, por exemplo, uma orador par ou algum outro parâmetro relevante som para o dispositivo. If the subdevice is -1 or omitted, it means any available subdevice Se o subdevice é -1 ou omitido, isso significa que qualquer disposição subdevice
- interface is a description of an alsa protocol for access. Interface é uma descrição de um protocolo de acesso alsa. the hw interface provides direct access to the kernel device, however, no software mixing or stream adaptation, while plughw or default enables sound output where the hw interface would produce an error. Hw a interface fornece acesso direto ao kernel do dispositivo, no entanto, nenhum software misturando ou riacho adaptação, enquanto plughw ou omissão permite som de saída quando a interface hw iria produzir um erro. It is not easy to find available interfaces, but common ones are hw , plughw , default , and plug:dmix Não é fácil encontrar disponível interfaces, mas comuns são hw, plughw, por omissão, e plug: dmix
- a device string is formed by interface:card,device,subdevice or interface:CARD=1,DEV=3,SUBDEV=2 , and this is how an application typically describes sound output. Um dispositivo string é formado pela interface: cartão, dispositivos subdevice ou interface: CARD = 1, DEV = 3, SUBDEV = 2, e este é como uma aplicação tipicamente descreve som de saída. The device string is case sensitive. O dispositivo string é caso sensitivo.
- an alsa stream is a data flow representing sound. Alsa um córrego é um fluxo de dados representando som. The most common stream format is PCM and its encoding must match that of the hardware or sound will not play. O mais comum é o fluxo formato PCM e sua codificação deve corresponder a do hardware ou de som não serão reproduzidos. Parameters are sampling rate which is 44.1 kHz on home stereos, and 48 kHz on home theaters, a sample width measured in bits, such as 8, 16, 24 or 32, a sample encoding , a number of channels, 1 for mono, 2 for stereo, or 6 for ac-3 /IEC958, and alsa also need buffer parameter that determines how often cpu attention is required Parâmetros são taxa de amostragem que é 44,1 kHz em casa trio, e 48 kHz em casa cinemas, uma amostra largura medidos em bits, como 8, 16, 24 ou 32, uma amostra codificação, um número de canais, 1 de mono, 2 Para estéreo, ou 6 para ac-3 / IEC958, e alsa também precisam buffer parâmetro que determina a freqüência cpu atenção é necessária
Some useful commands (also try man arecord, or man aplay) Alguns comandos úteis (também tentar arecord homem, o homem ou aplay)
$ cat /proc/asound/cards # find what cards are available
0 [Headset ]: USB-Audio - Logitech USB Headset
Logitech Logitech USB Headset at usb-0000:00:1d.1-1, full speed
1 [ICH5 ]: ICH4 - Intel ICH5
Intel ICH5 with AD1985 at irq 21
$ cat /proc/asound/devices # find available devices
2: : timer
3: : sequencer
4: [ 0- 0]: digital audio playback
5: [ 0- 0]: digital audio capture
6: [ 0] : control
7: [ 1- 4]: digital audio playback
8: [ 1- 3]: digital audio capture
9: [ 1- 2]: digital audio capture
10: [ 1- 1]: digital audio capture
11: [ 1- 0]: digital audio playback
12: [ 1- 0]: digital audio capture
13: [ 1] : control
$ speaker-test # test sound output, add -c <card> or -D <device string>
speaker-test 1.0.14
Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 2048 to 16384
Period size range from 1024 to 1024
Using max buffer size 16384
Periods = 4
was set period_size = 1024
was set buffer_size = 16384
0 - Front Left