Страница 5 из 5 Первая ... 345
Показано с 81 по 82 из 82

Тема: Звуковой сервер на основе Jack и Brutefir, X-ампинг, FIR коррекция.

  1. #1 Показать/скрыть первое сообщение.
    Забанен (навсегда)
    Автор темы
    Аватар для anpir
    Регистрация
    28.03.2014
    Адрес
    Нижний Новгород
    Сообщений
    688

    По умолчанию Звуковой сервер на основе Jack и Brutefir, X-ампинг, FIR коррекция.

    Задача – нужен отдельный компьютер полностью оптимизированный аппаратно и программно для высококачественного воспроизведения, с возможностью FIR коррекции и выводом на любое количество каналов. Так же необходима возможность подключения к серверу любых устройств на базе операционных систем Windows, Unix.
    Основой нашего сервера будет звуковой сервер Jack http://www.jackaudio.org/
    Звуковой сервер Jack возможно установить практически на любую ОС - Windows, Linux, BSD, MacOS.
    Связь между сервером и клиентом Jack возможна по трем протоколам
    NetJack https://github.com/jackaudio/jackaud...h_User_NetJack
    NetJack2 https://github.com/jackaudio/jackaud..._User_NetJack2
    Jacktrip https://ccrma.stanford.edu/groups/so...ware/jacktrip/
    Все три подходят под наши задачи, будем выбирать какой удобнее в конкретном случае.
    Какую выбрать ОС для сервера ?
    Windows – нет подходящего под наши задачи FIR фильтра и отсутствие полного контроля, но вариант рабочий.
    Linux – есть Brutefir http://www.ludd.luth.se/~torger/brutefir.html возможно управление эквалайзером brutefir через сеть и полный контроль над системой.
    Начну с Linux.
    За последний месяц попробовал почти все основные сборки, самая удобная и оптимизированная для аудио Tango Studio http://tangostudio.tuxfamily.org/ у меня стоит как вторая (основная) система на PC.
    Для сервера остановился на компактном antiX Linux http://antix.mepis.org/index.php?title=Main_Page он собран на Debian, все необходимые пакеты есть в репозитории Debian.
    Железная основа сервера – в принципе любая на сколько позволяет кошелек и фантазия.
    У меня, пока старый PC из чулана на одноядерном Pentium 4 и 700Мб памяти.
    Звук - m audio audiophile 192 и старушка SB Live!
    В качестве жесткого диска решил использовать обычную флешку , лучше USB3 (370руб 8Гб)

    1. Установка ОС Linux на сервер

    Скрытый текст

    Устанавливать и настраивать ОС лучше из VirtualBox, в качестве рабочей (основной) ОС Tango Studio.
    Как примонтировать реальный диск к VirtualBox смотрите здесь http://mnorin.com/ispol-zovanie-fizicheskogo-diska-v-virtualbox.html

    Можно по привычному с CD.

    Для создания таблицы разделов и форматирования флешки используем GParted

    1. create patrition table / msdos
    2. new patrition ext4
    Устанавливаем Tango Studio, установка в графическом режиме.
    После завершения установки если ставили из VirtualBox, загружаемся в реальной системе и делаем от root

    update-initramfs -v -u -k `uname -r` -t

    Система в принципе полностью настроенна и все установленно, единственное нужно установить Brutefir

    apt-get update
    apt-get install brutefir

    И настроить jack для работы в RT режиме в файл /etc/security/limits.conf добовляем

    @realtime - rtprio 99
    @realtime - memlock unlimited

    Создаем группу realtime и добавляем пользователей

    groupadd realtime
    usermod -a -G realtime root
    usermod -a -G realtime ваш_логин
    usermod -a -G audio root
    usermod -a -G audio ваш_логин

    Через netmaneger прописываем статический IP
    192.168.123.1
    255.255.255.0
    192.168.123.255


    Этот шаг можно пропустить
    Для подключения через NetJack2 нужно настроить UDP
    устанавливаем smcroute
    apt-get install smcroute
    echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    */etc/init.d/smcroute* restart

    smcroute -j eth0 225.3.19.154

    Настраиваем qjackctl, запускаем.

    jack_load netmanager

    Все сервер NetJack2 запущен, теперь с любой машины с установленным Jack подключаемся к серверу

    jackd -R -d net -a 192.168.123.1 асинхронный режим
    jackd -R -S -d net -a 192.168.123.1 синхронный режим

    Для контроля и настройки сервера лучше установить tigervnc http://tigervnc.org/
    Настройка сервера здесь http://ubuntuforums.org/showthread.php?t=1885744

    Настраиваем автологин, в нашем случае лучше все делать от root.
    В файле /etc/lightdm/lightdm.conf раскомментируем строчку

    # autologin-user=

    приводим ее в такой вид

    autologin-user=root (или ваш ник)

    Отключаем видеокарту, встроенную графику - через BIOS.

    [свернуть]

    2. Установка ОС Linux на сервер (консольный вариант)

    Скрытый текст

    Устанавливать и настраивать ОС лучше из VirtualBox, в качестве рабочей (основной) ОС Tango Studio.
    Как примонтировать реальный диск к VirtualBox смотрите здесь http://mnorin.com/ispol-zovanie-fizicheskogo-diska-v-virtualbox.html

    Можно по привычному с CD.

    Для создания таблицы разделов и форматирования флешки используем GParted

    1. create patrition table / msdos
    2. new patrition ext4 / создаем два раздела в моем случае по 3,7Гб

    Установка , сначала в второй раздел ставим antiX-15-V_386-base с минимальным рабочим окружением, может понадобится для отладки и настройки. Установка в графическом режиме.

    После, ставим в первый раздел antiX-15-V_386-core-libre

    Установка в консольном режиме.

    root
    root
    cli-installer
    repartition disk - no
    root patrition - sda1
    home patrition - no
    anix-net - no
    Копирует файлы далее Enter
    User name
    Password
    Все перезагрузка reboot

    В случае если загрузчик Grub не установился, то.
    Снова загрузка с CD antiX-15-V_386-core-libre

    root
    root
    mount /dev/sda1 /mnt
    mount --bind /dev /mnt/dev
    mount --bind /sys /mnt/sys
    mount --bind /proc /mnt/proc
    chroot /mnt
    grub-install /dev/sda
    update-grub
    exit
    reboot

    По умолчанию будет antiX-15-V_386-core-libre минимальная ОС без графического интерфейса (он нам на сервере не нужен, контроль через SSH).
    Загружаемся в antiX-15-V_386-core-libre. Настраиваем сеть (в VirtualBox чем хорошо, все автоматом и находимся в основной системе).

    Устанавливаем нужный нам софт

    apt-get update
    apt-get install alsa-base alsa-utils alsa-tools jackd1 jacktrip brutefir openssh-server wicd wicd-curses aj-snapshot

    При установке jackd вылезит окно - выбераем YES

    Настраиваем локальную сеть

    wicd-curses

    в окне вводим
    static IP
    192.168.123.1
    255.255.255.0
    192.168.123.255

    Настраиваем SSH сервер

    nano /etc/ssh/sshd_configure

    В строке
    PermitRootLogin without-password меняем на yes

    После

    service ssh restart

    ssh root@192.168.123.1 проверяем подключение

    Настраиваем jack для работы в RT режиме в файл /etc/security/limits.conf добовляем

    @realtime - rtprio 99
    @realtime - memlock unlimited

    Создаем группу realtime и добавляем пользователей

    groupadd realtime
    usermod -a -G realtime root
    usermod -a -G realtime ваш_логин
    usermod -a -G audio root
    usermod -a -G audio ваш_логин

    Ставим RT kernel отсюда http://www.pengutronix.de/software/l...debian_en.html

    Загружаемся с новым ядром, удаляем старое

    apt-get remove linux-image-4.0.5*

    Если ставили через virtualbox, то загружаемся в реальном сервере и пересобираем initramfs

    update-initramfs -v -u -k `uname -r` -t

    Все, сервер готов к работе.
    [свернуть]

    3. Установка ОС Windows на сервер

    Скрытый текст


    Установка Windows XP на сервер.
    Устанавливать будем на флешку.
    Образ системы адаптированной для работы с USB флеш берём на рутрекере WinXP-2009-USB-Virtual-Universal-aleks2009 подробное описание установки там же.
    После установки системы (лучше через VirtualBox как монтировать реальный диск к VirtualBox смотрите здесь http://mnorin.com/ispol-zovanie-fizicheskogo-diska-v-virtualbox.html )
    загружаемся на реальном сервере, предварительно в BIOS отключаем все лишние у-ва IDE, Audio... у меня осталось только Lan и USB, устанавливаем драйвера. Настраиваем сеть, прописоваем адрес 192.168.123.1 255.255.255.0 отключаем брандмауэр, запускаем сеть.
    Настройка и контроль через RDP, чтобы подключаться без пароля

    выполнить - gpedit.msc
    Конфигурация компьютера - Конфигурация Windows - Локальные политики - Параметры безопасности - Учетные записи: ограничить использование пустых паролей только для консольного входа - поставить "Отключить".

    Проверяем подключение RDP, отключаем видеокарту, если встроенная графика, то через BIOS.

    Устанавливаем jack http://www.jackaudio.org/downloads/

    Открываем Jack Control настраиваем,
    Нажмите на изображение для увеличения. 

Название:	Снимок1.PNG 
Просмотров:	717 
Размер:	22.2 Кб 
ID:	249514
    Start

    Открываем Jack Command пишем такую строку
    jack_load netmanager -i "-a 192.168.123.1"
    Жмем Enter Запускаем Netjack
    Нажмите на изображение для увеличения. 

Название:	Снимок2.PNG 
Просмотров:	523 
Размер:	80.9 Кб 
ID:	249515


    На машине клиенте открываем Jack Command
    jackd -R -d net -a 192.168.123.1 #асинхронный режим
    jackd -R -S -d net -a 192.168.123.1 #синхронный режим
    Жмем Enter подключаемся к серверу,
    Нажмите на изображение для увеличения. 

Название:	Снимок3.PNG 
Просмотров:	658 
Размер:	54.4 Кб 
ID:	249516


    в плеере вывод выбераем JackRouter(ASIO)
    Нажмите на изображение для увеличения. 

Название:	Снимок4.PNG 
Просмотров:	678 
Размер:	84.0 Кб 
ID:	249517

    [свернуть]

    Нажмите на изображение для увеличения. 

Название:	Снимок5.PNG 
Просмотров:	1074 
Размер:	870.3 Кб 
ID:	249524

    Настройка Brutefir.
    Установить лучше последнюю версию, с сайта программы. из репо Debian тож нормально работает.
    Нужно создать файл с настройками, подробное описание на сайте программы
    Вот несколько примеров

    FIR фильтр на два канала, обязательно нужно соблюдать синтаксис

    Скрытый текст


    ## DEFAULT GENERAL SETTINGS ##

    float_bits: 32;
    sampling_rate: 48000;
    filter_length: 65536;
    modules_path: "/usr/lib/brutefir";
    convolver_config: ".fftw3ampir";
    monitor_rate: true; # monitor sample rate
    powersave: true; # pause filtering when input is zero
    lock_memory: true; # try to lock memory if realtime prio is set

    ## COEFF DEFAULTS ## # здесь указать путь к txt файлу фильтра из rePhase

    coeff "leftpl" {
    filename: "/home/ampir/brutefir/fir/pl64-48.txt";
    format: "text"; # file format
    attenuation: 0.0; # attenuation in dB
    };

    coeff "rightpl" {
    filename: "/home/ampir/brutefir/fir/pl64-48.txt";
    format: "text"; # file format
    attenuation: 0.0; # attenuation in dB
    };



    ## INPUT DEFAULTS ## # описание входов brutefir для jack

    input "left-in", "right-in" {
    device: "jack" { };
    sample: "AUTO";
    channels: 2;
    };


    # соединение выходов brutefir на у-ва jack

    output "left-pl", "right-pl" {
    device: "jack" { ports: "system:playback_1", "system:playback_2"; };
    sample: "AUTO";
    channels: 2/0,1;
    delay: 0,0; # delay in samples for each channel
    maxdelay: -1; # max delay for variable delays
    };

    ## FILTER DEFAULTS ## # описание коммутации фильтров


    filter "leftplfilter" {
    from_inputs: "left-in";
    to_outputs: "left-pl";
    coeff: "leftpl";
    };

    filter "rightplfilter" {
    from_inputs: "right-in";
    to_outputs: "right-pl";
    coeff: "rightpl";
    };


    СИНТАКСИС, выше не сохроняется
    Нажмите на изображение для увеличения. 

Название:	24.png 
Просмотров:	739 
Размер:	83.6 Кб 
ID:	249502
    [свернуть]

    FIR фильтр на 6 каналов, 17 полосный эквалайзер АЧХ и ФЧХ, эквалайзером можно управлять через CLI интерфейс

    Скрытый текст


    float_bits: 64;
    sampling_rate: 192000;
    filter_length: 32768,8;
    modules_path: "/usr/lib/brutefir";
    convolver_config: ".fftw3ampir";
    monitor_rate: true; # monitor sample rate
    powersave: true; # pause filtering when input is zero
    lock_memory: true; # try to lock memory if realtime prio is set


    logic: "cli" { port: 3000; },
    "eq" {
    {
    coeff: "equalizer";
    bands: 20, 40, 60, 100, 800, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 12000, 16000;
    magnitude: 20/0.0, 40/0.0, 60/0.0, 100/0.0, 800/0.0, 1000/0.0, 2000/0.0, 3000/0.0, 4000/0.0, 5000/0.0, 6000/0.0, 7000/0.0, 8000/0.0, 9000/0.0, 10000/0.0, 12000/0.0, 16000/0.0;
    };

    };




    coeff "equalizer" {
    filename: "dirac pulse";
    shared_mem: true;
    blocks: 4;
    };

    ## COEFF DEFAULTS ##

    coeff "leftmid" {
    filename: "/home/ampir/brutefir/fir/mid64-192.txt";
    format: "text"; # file format
    attenuation: 0.0; # attenuation in dB
    };

    coeff "rightmid" {
    filename: "/home/ampir/brutefir/fir/mid64-192.txt";
    format: "text"; # file format
    attenuation: 0.0; # attenuation in dB
    };

    coeff "lefthi" {
    filename: "/home/ampir/brutefir/fir/hi64-192.txt";
    format: "text"; # file format
    attenuation: 0.0; # attenuation in dB
    };

    coeff "righthi" {
    filename: "/home/ampir/brutefir/fir/hi64-192.txt";
    format: "text"; # file format
    attenuation: 0.0; # attenuation in dB
    };

    coeff "leftsab" {
    filename: "/home/ampir/brutefir/fir/sab64-192.txt";
    format: "text"; # file format
    attenuation: 0.0; # attenuation in dB
    };

    coeff "rightsab" {
    filename: "/home/ampir/brutefir/fir/sab64-192.txt";
    format: "text"; # file format
    attenuation: 0.0; # attenuation in dB
    };



    ## INPUT DEFAULTS ##

    input "left-in", "right-in" {
    device: "jack" { };
    sample: "AUTO";
    channels: 2;
    };

    output "left-mid", "right-mid", "left-hi", "right-hi", "left-sab", "right-sab" {
    device: "jack" { ports: "system:playback_1", "system:playback_2",
    "system:playback_3", "system:playback_4", "system:playback_5", "system:playback_6"; };
    sample: "AUTO";
    channels: 6/0,1,2,3,4,5;
    delay: 0,0,0,0,0,0; # delay in samples for each channel
    maxdelay: -1; # max delay for variable delays
    };

    ## FILTER DEFAULTS ##


    filter "eq_l" {
    from_inputs: "left-in";
    to_filters: "leftmidfilter", "lefthifilter", "leftsabfilter";
    coeff: "equalizer";
    };

    filter "eq_r" {
    from_inputs: "right-in";
    to_filters: "rightmidfilter", "righthifilter", "rightsabfilter";
    coeff: "equalizer";
    };



    filter "leftmidfilter" {
    from_filters: "eq_l";
    to_outputs: "left-mid";
    coeff: "leftmid";
    };

    filter "rightmidfilter" {
    from_filters: "eq_r";
    to_outputs: "right-mid";
    coeff: "rightmid";
    };

    filter "lefthifilter" {
    from_filters: "eq_l";
    to_outputs: "left-hi";
    coeff: "lefthi";
    };

    filter "righthifilter" {
    from_filters: "eq_r";
    to_outputs: "right-hi";
    coeff: "righthi";
    };

    filter "leftsabfilter" {
    from_filters: "eq_l";
    to_outputs: "left-sab";
    coeff: "leftsab";
    };

    filter "rightsabfilter" {
    from_filters: "eq_r";
    to_outputs: "right-sab";
    coeff: "rightsab";
    };
    [свернуть]

    Запуск Brutefir
    brutefir -nodefault /.../конф.файл



    Буду постепенно дополнять описание всех настроек и .....
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Снимок-5.png 
Просмотров:	1515 
Размер:	129.0 Кб 
ID:	249414  
    Последний раз редактировалось anpir; 06.02.2016 в 00:07.

  2. #81
    Забанен (навсегда)
    Автор темы
    Аватар для anpir
    Регистрация
    28.03.2014
    Адрес
    Нижний Новгород
    Сообщений
    688

    По умолчанию Re: Звуковой сервер на основе Jack и Brutefir, X-ампинг, FIR коррекция.

    Цитата Сообщение от mellowman Посмотреть сообщение
    Paragon — супер! Может тогда и кроссовер цифровой, и раздельные цапы и усилители на каждый канал?
    Так и есть, все по теме будет.

  3. #82
    Завсегдатай Аватар для ВЕТЕР
    Регистрация
    09.05.2010
    Адрес
    Ростов-на-Дону
    Сообщений
    1,843

    По умолчанию Re: Звуковой сервер на основе Jack и Brutefir, X-ампинг, FIR коррекция.

    А что так слабо? Парагон. Может тогда лучше полноформатный рупор 20гц?

Страница 5 из 5 Первая ... 345

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •