LINUX.ORG.RU

Ответ на: комментарий от MyFreedom

Профессиональный звуковой софт в большинстве случаев не нужен. Вот мне он не нужен, а звуковая карта нужна. Правильный ответ - потому что звуковая подсистема в Линуксе не годится вообще никуда, кроме планшетика, да и то под вопросом.

lenin386 ★★★★
()
Ответ на: комментарий от MyFreedom

Более того, там, где нужен этот софт, он обычно идёт в комплекте с картой.

lenin386 ★★★★
()
Ответ на: комментарий от ZenitharChampion

Сама по себе чистая Alsa архитектурно уродлива. Простейший пример вывода звука - это 1000 грёбаных строк кода, нифига не тривиальных. Это щто вообще ? Это Unix-way ? Был прекрасный OSS, где вывод звука можно было огранизовать из командной строки. Красиво, мощно. Это можно было в шоу показывать. Нет, надо было убить прекрасное API, и внедрить эту бороду. Все эти звуковые серверы - они не пустом месте появились, понимаешь. Не пульса первая, и не пульса последняя. Они всего лишь для того, чтобы замаскировать ЭТО.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 6)
Ответ на: комментарий от lenin386

OSS v3 отправлял поток данных в формате PCM в файл /dev/dsp. Из-за этого не работало микширование. Это решили сложным API с hello world в 1000 строк.

А вообще ALSA - продукт фанатиков лицензионной чистоты. Им Open Source не угодил - только Free Software! Ну и заодно микширование починили.

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

OSS v3 отправлял поток данных в формате PCM в файл /dev/dsp. Из-за этого не работало микширование.

Микширование в OSS работало на звуковых картах, поддерживающих аппаратное микширование. А вот уже софтверное микширование, кому оно надо, логично было бы положить на звуковой сервер.

Ну и заодно микширование починили.

Не починили, а сгородили комбайн. Не должен драйвер делать то, что не умеет звуковая карта. Это называется костыль.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)
Ответ на: комментарий от lenin386

Простейший пример вывода звука - это 1000 грёбаных строк кода, нифига не тривиальных.

И откуда ты это взял? У меня файл с вводом-выводом звука через поллинг с поддержкой нескольких потоков воспроизведения в одной нити, с перечислением устройств ввода занимает 638 строк. Без вычета пустых строк и строк с комментариями. Хотя последних не особо много.

Судя по такому высказыванию, о «простейшем» примере, ты даже близко не подходил к собственно кодированию.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

И откуда ты это взял?

Из их экзамплов.

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

Ну, всё. Это меняет дело. Зарываюсь в землю, молчу. Только это. Даже в win32 api это от силы строк 50 (с запасом). А нормальным я, старый пирдун, вот лично считаю три строки : open, ioctl, write.

lenin386 ★★★★
()
Ответ на: комментарий от lenin386

Профессиональный звуковой софт в большинстве случаев не нужен. Вот мне он не нужен, а звуковая карта нужна.

Зачем тебе тогда профессиональная звуковая карта, не очень понятно, можно в примерах?

MyFreedom ★★★
()
Ответ на: комментарий от lenin386

Из их экзамплов.

http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_min_8c-example.html

Даже в win32 api это от силы строк 50 (с запасом).

Ты сравнивал минимальный пример на win32 api (кстати, что это? Для звука там другие API) с подробным pcm.c, где напихали много всего ради того, чтобы это всё посмотреть. Научись уже адекватно сравнивать.

Вот я смотрю в реальный код, который в Firefox для звука используется, и что-то не вижу особого отличия в размерах. Там прослойка с различными бекендами.

ALSA — 1139 строк
JACK — 1047 строк
PulseAudio — 1365 строк
WinMM — 1067 строк
WASAPI — 2202 строк

Для JACK и WASAPI ещё обёртка над Speex, в 303 строки.

Ага, болтай тут мне про 50 строк.

i-rinat ★★★★★
()
Ответ на: комментарий от lenin386

Подключаю источник звука, нажимаю кнопку «record», записываю.

Не рэковым же фокусрайтом за 100к? Относительно дешёвые M-Audio на сайте alsa в полном составе

MyFreedom ★★★
()
Ответ на: комментарий от i-rinat

JACK — 1047 строк

А зачем в лисе поддержка джека? Я всегда думал что джек это для профессиональной звукозаписи с низкими задержками, что не пробраузер. Или я чего не понимаю?

Behem0th ★★★★★
()
Ответ на: комментарий от Behem0th

А зачем в лисе поддержка джека?

Чтобы выводить звук через джек. Переходники работают плохо, поэтому лучше выводить через основное API, а не надеяться на них.

Наверняка есть такие, кто использует JACK постоянно.

А вот и юзкейс: https://bugzilla.mozilla.org/show_bug.cgi?id=783733#c1

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от MyFreedom

У меня Lynx Studio. Сейчас она стоит 70k.

Относительно дешёвые M-Audio на сайте alsa в полном составе

ну, они и относительно профессиональные. Всё-таки USB.

lenin386 ★★★★
()
Ответ на: комментарий от ZenitharChampion

по-моему, геи захватили твой мозг

Deleted
()
Ответ на: комментарий от lenin386

У меня Lynx Studio. Сейчас она стоит 70k.

Ещё больше заинтриговал. К чему такой аппарат, если не для работы с музыкой? Могу ещё озвучку фильмов/сериалов и запись подкастов предположить, но м-аудио за 10к+микрофона+преампа для этого за глаза

MyFreedom ★★★
()
Последнее исправление: MyFreedom (всего исправлений: 1)
Ответ на: комментарий от MyFreedom

Ну, ещё такой параметр, как надёжность. У меня были : Aurion топовый, Creative X-Fi топовый. Сдохли. Про m-audio, esi ничего не скажу, но у знакомых дохли. А эта живёт, как новенькая.

lenin386 ★★★★
()

Пофигу. У 90% пользователей PA и так установлен, а 10% нетакихкаквсе перекомпилируют если сильно надо.

Polugnom ★★★★★
()
Ответ на: комментарий от Loki13

Для унификации звуковой подсистемы

ALSA вполне унифицирована и самодостаточна.

Suigintou ★★★★★
()

А когда будет отключена поддержка XOrg?

EXL ★★★★★
()
Ответ на: комментарий от AP

Я кое-как только в этом году смог засунуть. Раньше был жуткий глюкодром. Щас просто глюкодром.

fornlr ★★★★★
()

Следующий шаг - зависимость от systemd.

invy ★★★★★
()
Ответ на: комментарий от i-rinat

кто использует JACK постоянно.

Про очевидное я и не подумал.

Behem0th ★★★★★
()
Ответ на: комментарий от lenin386

>> OSS v3 отправлял поток данных в формате PCM в файл /dev/dsp. Из-за этого не работало микширование.

> Микширование в OSS работало на звуковых картах, поддерживающих аппаратное микширование. А вот уже софтверное микширование, кому оно надо, логично было бы положить на звуковой сервер.

Ну не так же всё было, ну! Я тоже можу ошибаться, так что если что, поправьте:

OSS v.3 создавал файл /dev/dsp. Когда одна программа копировала в него поток данных в формате PCM, другая программа не могла делать то же самое: файл занят, он монопольно захвачен другой программой.

Не от сладкой жизни в те годы появились ESD и aRts. Конечно, их задача не сводилась к одному только микшированию:

http://www.linuxlib.ru/mmedia/linmuz.htm

Программирование звука - интересная тема. Тем, кому нравится звучание «ямаховского» DX7, рекомендую обратить внимание на совсем юный проект LegaSynth (reduz.com.ar/legasynth) - программный эмулятор Yamaha DX7 FM. Любители модульных синтезаторов наверняка найдут все, что им необходимо, в проекте aRts - это стандартный KDE-шный сервер, синтезатор и сэмплер. Как аудиосервер и сэмплер aRts мне не нравится, однако читать фирменные CD-ROM со звуковыми библиотеками в формате Akai в Linux может только он.

Но 99% пользователям от них было нужно микширование, и только микширование! Потому что OSS его не умел. Кстати, советую почитать процитированную статью - она всё расставляет по местам.

>> Ну и заодно микширование починили.

> Не починили, а сгородили комбайн. Не должен драйвер делать то, что не умеет звуковая карта. Это называется костыль.

Ммм, первые лет 5 после релиза ALSA не умела программное микширование. Она работала только с аппаратным. А OSS не работал даже с аппаратным! Совсем недавно программный микшер dmix в ALSA включили по умолчанию - раньше приходилось править конфиг.

// Ищу соведущего для видеоблога. Соведущий должен уметь создавать музыку, и должен показать типичные use-кейсы JACK. Всего ведущих будет три: я расскажу теорию, девушка покажет сиськи фейс и покажет практику за компьютером. Парень тоже покажет практику: покажет как настраивать JACK и сыграет на гитаре :-)

ZenitharChampion ★★★★★
()
Ответ на: комментарий от ZenitharChampion

Когда одна программа копировала в него поток данных в формате PCM, другая программа не могла делать то же самое: файл занят, он монопольно захвачен другой программой.

ТОЛЬКО В ТОМ СЛУЧАЕ, ЕСЛИ ЗВУКОВУХА НЕ УМЕЛА АППАРАТНОЕ МИКШИРОВАНИЕ. Если звуковуха умела аппаратное микширование, никакого захвата файла не происходило. Это Unix - магия, товарищ.

Не от сладкой жизни в те годы появились ESD и aRts

Разумеется. Вендоламеры, покупающие убожища за $10 вместо звуковой карты, а также, счастливые владельцы AC-97, хотели как Венде. Вот для них, и постарались.

Но 99% пользователям от них было нужно микширование, и только микширование!

А мне надо 99.000.000 долларов США и прямо сейчас ! Мало ли что они хотят. Если делать систему, с которой может работать каждый идиот - только идиот и сможет с ней работать.

А OSS не работал даже с аппаратным!

В сад.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)
Ответ на: комментарий от lenin386

Ищу инфу. Тут пишут что в Fedora Core 1 не работает микширование, потому что: 1). Там ядро 2.4 и OSS. 2). У юзера AC97. И предлагают обновиться до Fedora Core 2 - там ALSA, там можно включить dmix. Например так.

То, что на OSS из ядра 2.4 нет микшера в принципе, не опровергнуто. Сейчас попробую гуглить emu10k и Fedora Core 1.

И вот ещё инфа:

OSS version 3 was the original sound system for Linux, but was superseded by the Advanced Linux Sound Architecture (or ALSA) in 2002 when OSS version 4 became proprietary software. OSSv4 became free software again in 2007 when 4Front Technologies released its source code

То есть 4Front взяла такая и говорит «всё, ребята, кина не будет. Теперь платите за звук». А Линус им такой «мы сделаем свой OSS!» И сделали.

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 3)

Лол. А меня только недавно мысли появились, что это подобие бравзера начинает становиться юзабельным.
А вот оно как оказывается.

paran0id ★★★★★
()
Ответ на: комментарий от i-rinat

это вызывало глюки типа проигрывания сразу всего звука

Это что за плагин? Или я слоупок или просто туплю.

ALSA API подходит только для вывода напрямую в ALSA

Эмм.. А вот так:

while(1) {
    buffer_lock();
    read_size = buffer_read(
        OUTPUT_BUFFER,
        output_frames,
        output_period_size
    );
    buffer_unlock();
    if (read_size > 0) {
        rc = snd_pcm_writei(output_device, output_frames, read_size);
        if (rc == -EPIPE) {
            log(WRN, "Alsa output. Can't write output (XRUN)");
            snd_pcm_prepare(output_device);
        } else if (rc < 0) {
            log(ERR, "Alsa output. Can't write output");
        }
    } else {
        usleep(output_latency);
    }
}
И в таком раскладе я хрюны ловил ТОЛЬКО при пуске прилаги через валгринд. Да и то, у меня там были настройки, можно было забивать буфер быстрее и/или влиять на расчет значения output_latency.

Тут еще могут набежать, мол, а чего ты задержки реализуешь сам? Да, по сути сам, и что? Невесть какая, кода то с гулькин нос.

deep-purple ★★★★★
()
Ответ на: комментарий от lenin386

Простейший пример вывода звука - это 1000 грёбаных строк кода

4.2

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Это что за плагин?

http://git.alsa-project.org/?p=alsa-plugins.git;a=tree;f=pulse

Используется, чтобы заворачивать ALSA приложения в PulseAudio.

хрюны ловил

Думаю, в твоём варианте проблемы не получится заметить. Я делал через поллинг, там приходило событие, пока несколько мегабайт семплов туда не ухало. Причём, это сначала воспроизводилось у меня, я поправил код, потом стало воспоизводиться у какого-то пользователя, где я отлаживаться уже не мог.

Тут еще могут набежать, мол, а чего ты задержки реализуешь сам? Да, по сути сам, и что? Невесть какая, кода то с гулькин нос.

Когда нужно много звуков сразу воспроизводить, такой подход плохо работает. Придётся кучу нитей заводить, по штуке на поток. Плюс проблемы с синхронизацией ещё.

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

i-rinat ★★★★★
()
Ответ на: комментарий от ZenitharChampion

Совсем недавно программный микшер dmix в ALSA включили по умолчанию

Десять лет прошло уже.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

То то он там у меня не один — вон в верхней части цикла мьютексы.

deep-purple ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.