# Инструменты &arts;

Это набор управляющих &arts; модулей. Чтобы пользоваться &arts; эффективно, нужно уметь ими пользоваться. В этом разделе описывается каждый из модулей и параметры их команд.

## &kcontrol;

Если &arts; запущен в &kde;, &kcontrolcenter; размещает его настройками в категории Звук. Вы можете связать звуки с различными событиями менеджера окон и &kde; в категории Звук Системные оповещения. О настройках панели управления читайте в справочнике по &kcontrol;.

## &artsd;

&artsd; управляет доступом к звуковому оборудованию, это один из сервисов &arts;. Он позволяет разным приложениям одновременно посылать запросы серверу, где они будут накладываться друг на друга и воспроизводиться. Без единого звукового сервера одно приложение, использующее звуковое устройство, будет блокировать запросы остальных.

Для работы &arts; нужно, чтобы была запущена только одна копия модуля &artsd;. Если это указано в панели &kcontrol; Звуковая подсистема, &artsd; будет запускаться автоматически при входе в систему.

Аргументами программы могут быть:

    artsd  -n -p -N -W n   -a audiomethod -r sampling rate -b bits -d -D devicename -F fragments -S size -s seconds -m appName   -h -A -v -l level

`-r частота дискретизации`

  Задайте используемую частоту дискретизации.

`-h`

  Справка по использованию команды.

`-n`

  Использовать работу в сети.

`-p порт`

  Задать TCP порт (подразумевает указание и `-n`).

`-u`

  Открытый доступ без аутентификации (опасно).

`-d`

  Включить режим двустороннего ввода-вывода.

`-D имя устройства`

  Укажите аудиоустройство (обычно `/dev/dsp`).

`-F блоки`

  Установите количество блоков.

`-S размер`

  Установите размер блока в байтах.

`-s секунды`

  Установите время отключения сервера при бездействии в секундах. Значение ноль отменяет автоматическое отключение.

`-m имя приложения`

  Укажите имя приложения, которое будет использоваться для сообщений об ошибках, предостережениях и отображения информации. Если вы используете KDE, это может делать artsmessage.

`-N`

  Увеличивает размер сетевого буфера до значения, подходящего при использовании локальной сети 10 мбит/. То же самое, что и параметр -w 5 (смотрите ниже).

`-w число`

  При использовании artsd в сети обычно стоит использовать сетевой буфер большего размера, чтобы избежать пропадания звука. ARts предоставляет минимальный буфер для приложений. Без указания данного параметра за минимальный размер буфера берется размер блока, умноженный на число блоков (см. выше). Данный же параметр позволяет увеличить стандартный размер с коэффициентом число.

`-l уровень`

  Установите уровень вывода служебной информации: - 3 (нет), 2 (предупреждения), 1 (информация), 0 (отладка).

`-v`

  Показать версию.

В большинстве случаев достаточно просто запустить &artsd;.

## &artswrapper;

Чтобы добиться хорошего времени отклика, &artsd; запускается как процесс реального времени (на тех платформах, где это возможно). Для этого требуются права пользователя root, поэтому, чтобы снизить риски, связанные с безопасностью, &artsd; можно запускать с помощью небольшой программы &artswrapper;, которая, будучи запущенной от root, получает приоритет выполнения в реальном времени и запускает &artsd; от непривелигированного пользователя (не root).

Если для этой небольшой программы вы сделаете UID root, вероятнее всего, качество воспроизведения будет улучшено, так как должны исчезнуть задержки при воспроизведении. Однако при этом увеличивается риск того, что ошибка в программе или недобросовестный пользователь могут нарушить работу всей системы или как-то иначе повредить ее работе. Кроме того, на машине, которой пользуются несколько человек одновременно, приоритет реального времени для сервера может помещать пользователям, которые занимаются какой-то серьезной работой.

## &artsshell;

&artsshell; выполняет различные функции, связанные со звуковым сервером. Мы предполагаем дополнить модуль новыми командами в будущем (об этом смотрите в комментариях кода).

Формат команды:

    artsshell  suspendstatus terminate autosuspend secs networkbuffers n volume [volume] stereoeffect options   -h -q

artsshell [параметры] команда [параметры команды]

Поддерживаются следущие параметры:

`-q`

  Подавлять весь вывод.

`-h`

  Справка по использованию команды.

Поддерживаются следущие команды:

`suspend`

  Отключить звуковой сервер.

`status`

  Показать информацию о состоянии сервера.

`terminate`

  Отключить звуковой сервер. Если какие-то приложения его используют, они сообщат об ошибках.

`autosuspend` `секунды`

  Установите время ожидания в секундах. Если звуковой сервер будет бездействовать это количество времени, он отключится. Значение ноль отменяет автоотключение.

`networkbuffers` `число`

  Размер сетевых буферов вычисляется как стандартный размер буфера по умолчанию, умноженный на `число`.

`volume` [громкость]

  Установите громкость аудио вывода звуковым сервером. Аргумент громкость - это число с плавающей точкой. Если команда будет без парамеров, отобразится текущий уровень громкости.

`stereoeffect list`

  Список всех модулей стереоэффектов.

`stereoeffect insert [top|bottom]` название

  Помещает стререоэффект в стек и возвращает идентификатор, с помощью которого можно будет извлечь этот эффект. Эффект может быть помещён в начало или конец стека.

`stereoeffect remove` идентификатор

  Извлекает стереоэффект с указанным идентификатором из стека.

## artsplay

artsplay проигрывает звуковые файлы. У команды может быть только один аргумент - имя файла, который посылается звуковому серверу. Типом этого файла может быть `wav`, `au` или другой распространённый. Этот модуль полезен для тестирования активности звукового сервера. Запустив две команды параллельно или через малый промежуток времени, вы увидите, как звуковой сервер накладывает несколько сигналов друг на друга.

## artsdsp

Звуковой сервер поддерживает только совместимые с &arts; приложения. Многие приложения пытаются обратиться к звуковой карте напрямую, тогда команда &artsdsp; позволяет, не внося в них исправления, работать с &arts;.

Если приложение запущено под &artsdsp;, все его попытки обратиться к устройству `/dev/dsp` перехватываются и преобразовываются в вызовы &arts; API. Поскольку эмуляция устройства несовершенна, большинство приложений работает, хотя и замечается увеличение задержки и снижается быстродействие.

Формат команды &artsdsp;:

artsdsp [параметры] аргументы приложения

Возможны следущие параметры:

`-h`, `--помощь`

  Вызов краткой справки.

`-n` `--name` = имя

  Испульзуйте имя для определения проигрывателя `artsd`.

`-m` `--mmap`

  Эмулировать отображение в память (например, для Quake).

`-v` `--verbose`

  Вывести параметры.

Пример вызова:

``artsdsp` `-v` `-m` `realplay song.mp3``

Некоторые приложения работают лучше, если задан параметр `--mmap`. Конечно, эмулируются не все характеристики устройства, но большинство работает. Если вы обнаружили неработающее приложение, отправьте подробный отчёт об ошибке, чтобы разработчики смогли это исправить. Не забывайте о встроенной поддержке &arts;. Если ваше любимое приложение не поддерживается, попросите разработчиков его добавить.

## artscat

Это простой модуль, отправляющий необработанные данные звуковому серверу. Вам необходимо только указать формат данных (частоту дискретизации, размер сэмплов и количество каналов). Вы, скорее всего, не будете его часто использовать, но он удобен для тестирования. Синтаксис команды:

artscat [ параметры ] [ имя файла ]

Если имя файла не указано, чтение идёт из потока стандартного ввода. Поддерживаются следущие параметры:

`-r` `частота дискретизации`

  Установите частоту дискретизации.

`-b` `биты`

  Установите размер сэмпла (8 или 16).

`-c` `каналы`

  Установите количество каналов (1 или 2).

`-h`

  Показать использование команды и выйти.

## &artscontrol;

Графический модуль для выполнения задач, связанных со звуковым сервером. По умолчанию отображаются два индикатора уровня громкости и ползунок для регулировки громкости. В меню Вид вы можете выбрать и другие функции:

Показать область БПФ

  Открывает окно с анализатором спектра в реальном времени.

Показать менеджера аудио

  Показывает активные источники звука и позволяет подключить их к любой доступной шине.

Показать состояние aRts

  С помощью этого модуля вы будете знать, активен ли сервер и обладает ли он приоритетом работы в реальном времени. Он также показывает, сколько времени осталось для автоматического отключения сервера, и позволяет вам немедленно его отключить вручную.

Показать midi-менеджера

  Отображает активные входы и выходы &MIDI; и позволяет их подключать друг к другу.

FreeVerb

  Подключает эффект эха к стеку &arts; и позволяет вам графически изменять параметры эффекта.

Указатель громкости в цифровом виде

  Показывает индикаторы громкости в главном окне в форме цветных индикаторов вместо строк состояния.

## artsc-config

Этот модуль поможет разработчикам в использовании &arts; C API. Он выбирает подходящие параметры компилятора и компоновщика при компиляции и компоновке кода с помощью &arts;. Желательно его использовать в сборочных файлах для обеспечения переносимости. Допустимы три параметра:

`--cflags`

  Показывает необходимые компилятору флаги при использовании &arts; C API.

`--libs`

  Показывает необходимые компоновщику флаги при компоновке с использованием &arts; C API.

--version

  Показывает версию `artsc-config`.

Пример вывода команды:

    % artsc-config --cflags
    -I/usr/local/kde2/include/artsc
    % artsc-config --libs
    -L/usr/local/kde2/lib -ldl -lartsc -DPIC -fPIC -lpthread
    % artsc-config --version
    0.9.5

Вы можете использовать этот модуль в сборочном файле по такому правилу:

    artsc: artsc.c
            gcc `artsc-config --cflags` -o artsc artsc.c `artsc-config --libs`

## &mcopidl;

&mcopidl; - это компилятор &IDL;-файлов для &MCOP;, (Multimedia Communication Protocol, протокол связи мультимедиа-модулей), использующийся в &arts;. Интерфейсы &arts; описаны в &IDL; (Interface Definition Language, язык определения интерфейса). Модуль &mcopidl; считает файл &IDL; входом и генерирует заголовочный и исходный файлы C++ для создания класса интерфейса. Синтаксис команды:

mcopidl [ параметры ] имя файла

Допустимые параметры:

`-I` `каталог`

  Поиск в каталоге `каталог` включаемых файлов (include).

`-e` `имя`

  Исключает структуру, интерфейс или перечисляемый тип с именем `имя` во время генерации кода.

`-t`

  Создайте также файлы `.mcoptype`/`.mcopclass`, содержащие информацию о типах для файла &IDL;.

Болееподробно &MCOP; и &IDL; рассматриваются в разделе Интерфейсы и &IDL;.