URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 117048
[ Назад ]

Исходное сообщение
"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."

Отправлено opennews , 06-Апр-19 13:03 
Представлен PulseJoin 2.2 (https://gitlab.com/mikhailnov/pulsejoin/) - графический интерфейс для объединения вывода на динамики и  микрофона в виртуальный микрофон PulseAudio, что позволяет записать звук одновременно с динамиков и микрофона в программах, не умеющих захватывать с нескольких источников одновременно. Для установки подготовлены (https://gitlab.com/mikhailnov/pulsejoin/tags) пакеты RPM и DEB, а также PPA-репозиторий для Ubuntu и Debian (https://launchpad.net/~mikhailnov/+archive/ubuntu/pulsejoin). PulseJoin уже доступен в официальных репозиториях ROSA Fresh и ALT Linux.


PulseJoin представляет из себя bash-скрипт, в котором для формирования графического интерфейса пользователя применяется YAD (https://github.com/v1cont/yad) (Yet Another Dialog, форк Zenity). Для локализации интерфейса на разные языки применяется (https://gitlab.com/mikhailnov/pulsejoin/tree/master/po) gettext. Исходные тексты проекта распространяются под лицензией GPLv3. Работа скрипта проверена в GNU/Linux и FreeBSD, однако платформоспецифичными могут быть только синтаксис sed, mktemp и, возможно, некоторых других стандартных утилит.

Скрипт выполняет следующие действия:


-  Создание виртуального устройства PulseAudio;
-  При необходимости запуск нужной программы с установленной переменной окружения PULSE_SOURCE, указывающей на созданный виртуальный микрофон (также можно вручную переключить любой поток захвата PulseAudio на этот виртуальный микрофон, например, через pavucontrol(-qt));
-  Удаление внесенных изменений, в т.ч. графические кнопки для создания и удаления виртуального микрофона.


URL: https://gitlab.com/mikhailnov/pulsejoin/
Новость: https://www.opennet.me/opennews/art.shtml?num=50471


Содержание

Сообщения в этом обсуждении
"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним , 06-Апр-19 13:03 
>для записи с динамиков

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


"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено None , 06-Апр-19 13:08 
Как они умудряются это делать? Глубоко сомневаюсь, что на выходах динамиков стоят АЦП, а ЦАП в обратную сторону проворачивать фарш не могут.

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено mikhailnov , 06-Апр-19 13:12 
Программно, стандартная фича PulseAudio — для каждого устройства вывода звука есть "микрофон" "Monitor of <имя устройства вывода>"

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним , 06-Апр-19 13:34 
у реалтеков вроде как одной из фич была возможность переключения каналов https://www.opennet.me/opennews/art.shtml?num=48249

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним , 06-Апр-19 14:02 
О да, "Monitor of <имя устройства вывода>" запомнился мне очень хорошо. В фурифоксе при записи с этого виртуального канала весь звук в системе начинает заикаться, а в том же фурифоксе с соседних вкладок звук вообще идет с секундными замираниями. Пыш пыш аудио, что здесь еще можно сказать, ничем от вяленого по качеству не отличается.

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним , 06-Апр-19 14:05 
И вот знаете, чтобы отправить отрывок звука с видео ютуба допустим голосовым сообщением приходится по старинке, делать хардовый луп соединяя проводом вход и выход звуковухи, или скачивать видео и обрезать (что даже затратнее обходится)

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено анонн , 06-Апр-19 16:03 
> И вот знаете, чтобы отправить отрывок звука с видео ютуба допустим голосовым
> сообщением приходится по старинке, делать хардовый луп соединяя проводом вход и
> выход звуковухи, или скачивать видео и обрезать (что даже затратнее обходится)

Это по виндузячьи.
По старинке - это вот так.


# virtual_oss \                
                   -S -C 2 -c 2 -r 44100 -b 16 -s 1024 \
                   -f /dev/dsp1 -w dsp.rec.wav -l dsp.rec -d dsp
% dd if=/dev/dsp.rec.wav bs=1m | oggenc - -o my.ogg

http://i66.tinypic.com/5khmb5.jpg
см.

Create a device named dsp.virtual which mix the samples written by all
     clients and outputs the result for further processing into
     dsp.virtual_out:

           virtual_oss \
                   -S -Q 0 -b 16 -c 2 -r 96000 -s 100ms -i 20 \
                   -f /dev/null -d dsp.virtual -L dsp.virtual_out



"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним , 06-Апр-19 14:12 
Чем не устроил jack2 я честно вообще не понимаю до сир пор, идеально работает, реалтайм, возможность записи звука с каждого подключенного приложения другим приложением, минимум прослоек и прозрачная работа. Зачем было разрабатывать пыш аудио вообще не понятно.

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Дон Ягон , 06-Апр-19 14:40 
Вы забываете, кто автор пшыаудио. На вашем месте, я бы радовался, что его функциональность до сих пор не в PID1.

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним , 06-Апр-19 15:27 
Так у альсы драйвера вообще в ring 0

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним84701 , 06-Апр-19 16:14 
> Так у альсы драйвера вообще в ring 0

А пульса научилась читать данные для микширования через libastral?
Или просто фанаты все так же не в курсе, как работает предмет их обожания и поклонения  🙄 ?


; Default profile definitions for the ALSA backend of PulseAudio. This
; is used as fallback for all cards that have no special mapping
; assigned (and should be good enough for the vast majority of


"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Дон Ягон , 06-Апр-19 16:30 
> Так у альсы драйвера вообще в ring 0

Ну и что? А где должны быть?


"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним , 06-Апр-19 14:28 
Имелось в виду - чтобы объединить в один поток то, что слышно с микрофона и что подаётся на аудиовыход. А написано так, будто динамики служат микрофоном.

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено GameUpgrade , 07-Апр-19 18:36 
Динамики и без всяких PulseJoin могут служить микрофоном, стоит их лишь воткнуть в микрофонный вход.

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено VINRARUS , 06-Апр-19 15:43 
>однако платформоспецифичными могут быть только синтаксис sed, mktemp и, возможно, некоторых других стандартных утилит.

Если дистрибутивосоздаватели какают на POSIX — нужно использовать busybox.


"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним , 06-Апр-19 16:07 
Я когда-то добился того же самого, когда что-то тыкал в PavUControl. Но повторно мне это не удалось сделать. Так что прога нужная

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним3 , 06-Апр-19 16:41 
прога нужная вообще то. когда писал гитару приходилось делать сначала готовый семпл с инструментами и уж потом писать второй линией гитару. а так можно проще разобраться. хотя тоже не сказать , что сильно облегчит. как было собирать трек наборами так и осталось. единственное эффект 2 микрофонов можно создать.

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено mikhailnov , 06-Апр-19 17:28 
Для гитары лучше и проще jack2 использовать

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним3 , 06-Апр-19 18:12 
это если в линию писать. а если играешь в лампу и снимаешь микрофоном? эта софтинка может позволить сделать двойное наложение гитары в линию и с микрофона. чес слово пробовал играть в линию с jack и всякими дисторшенами программными... задержка все же чувствуется. а так пишешь с чистого аналога лучше. все таки не имеет значения пишешь через пульсу или jack.

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним , 07-Апр-19 18:17 
про jack любят рассуждать те, кто им никогда не пользовался

"Доступен PulseJoin 2.2 для одновременной записи с динамиков ..."
Отправлено Аноним , 12-Апр-19 18:23 
Нормальные люди для это DAW используют, Reaper например. Пшш-аудио - это вообще не про сведение и не про реалтаймовый звук

"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Ilya Indigo , 06-Апр-19 19:08 
А можно как-то ALSA с dmix настроить так, чтобы, на default смешивалось (или, хотя бы, подставлялось) устройство захвата hw:0.0, как это делается с устройством воспроизведения?
Перерыл много чего из гугла, но решения толком не нащёл, кроме упоминания того, что dmix работает только с устройствами воспроизведения. :-(

"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Аноним3 , 06-Апр-19 20:00 
альса по умолчанию  имеет возможность работать только в приоритетном режиме. то есть полный захват. насчет dmix... тут не скажу, но если в описании дано , что работает только с устройствами воспроизведения, значит надо искать другой аналог.

"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Ilya Indigo , 06-Апр-19 20:06 
А можно как-нибудь alias задать, чтобы приложение (firefox,chromium,telegram-desktop) ожидающие увидеть устройство захвата default, увидело этот alias и использовало hw:0.0, пусть даже в монопольном режиме, по имени default?

"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Аноним3 , 06-Апр-19 22:59 
в системе пульсы нет? если нет надо искать старую тропу. раньше все через неё настраивалось. технически есть же alsamixer в консоли. попробовать выставить через него. но тут не уверен. не проверял. то что можно выключить каналы и выбрать главный там есть. но чес слово с момента появления пульсы как то и не интересовался. вообще через конфиг альсы наверно можно настроить. фокс же все равно должен видеть доступные устройства. технически можно написать два конфига к альсе . один пометить как .old и когда необходимо менять окончания к конфигам и перезапускать альсу. но если вам на постоянку. можно старый конфиг переименовать слегка, а новый положить  и все должно сработать. куда проще чем писать свою прослойку для этого.

"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Аноним , 07-Апр-19 08:46 
Не очень понял ваш вопрос (особенно конец), посему:
pcm.!default {
    type asym
        playback.pcm "linearize"
        capture.pcm "hw:0,0" # так как hw:0,0 это устройство воспроизведения, то capture так работать не будет (насколько я понимаю)
    hint.show on
    hint.description "Default with dmix"
    }

+ убираем fallback (некоторые приложения сразу же используют sysdefault, вместо default)
pcm.!sysdefault default

Вот в mpv можно (для устройств воспроизведения):
audio-device="alsa/default"
Вот в wine можно:
WINEPREFIX="..." wine reg.exe ADD "HKEY_CURRENT_USER\Software\Wine\Drivers\winealsa.drv" /v "ALSAOutputDevices" /t "REG_MULTI_SZ" /d "for_wine" /f
и в winecfg выбрать for_wine

А как в этих ваших приложениях, и можно ли там это вообще, я не знаю (это про alias'ы).


"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Ilya Indigo , 07-Апр-19 12:49 
> Не очень понял ваш вопрос (особенно конец)

В последнее время появляются приложения (firefox, chromium, skype, telegram), в которых нет возможности настроить устройства воспроизведения и захвата, которые думают, что у меня пульса и сразу стучаться в default. С воспроизведением проблем нет - а микрофон в них не работает.
В wine и прочих приложениях, где можно в настройках указать какое устройство использовать для захвата - таких проблем нет.
Я использую только ALSA, пульсу я сразу сношу ещё на этапе установки.

> посему:
> pcm.!default {
>     type asym
>         playback.pcm "linearize"
>         capture.pcm "hw:0,0" # так
> как hw:0,0 это устройство воспроизведения, то capture так работать не будет
> (насколько я понимаю)
>     hint.show on
>     hint.description "Default with dmix"
>     }

Благодарю!
"linearize" у меня приводило к отвалу default, но я его заменил на "plug:dmix".

pcm.!default {
    type asym
        playback.pcm "plug:dmix"
        capture.pcm "hw:0,0"
    hint.show on
    hint.description "Default with dmix"
}

pcm.!sysdefault {
    type asym
        playback.pcm "plug:dmix"
        capture.pcm "hw:0,0"
    hint.show on
    hint.description "Default with dmix"
}

И, по крайней мере в audacity, микрофон с default и sysdefault заработал.

> + убираем fallback (некоторые приложения сразу же используют sysdefault, вместо default)
> pcm.!sysdefault default

Вы имели ввиду продублировать pcm.!sysdefault {...}, как я сделал выше или просто написать без фигурных скобок pcm.!sysdefault default ?

Телеграму всё же что-то не нравится.
AL lib: (EE) ALCcaptureAlsa_open: snd_pcm_hw_params_set_channels(self->pcmHandle, hp, ChannelsFromDevFmt(device->FmtChans, device->AmbiOrder)) failed: Недопустимый аргумент
E/tgvoip: pa_context_connect failed: Access denied
W/tgvoip: PulseAudio available but not working; trying ALSA
ALSA lib pcm.c:8507:(snd_pcm_set_params) Channels count (1) not available for CAPTURE: Недопустимый аргумент
E/tgvoip: snd_pcm_set_params failed: Недопустимый аргумент

Но с этим я уже буду дальше разбираться!
Главное audacity - я им проверяю работоспособность устройств захвата, работает с ними значит проблема уже не в них.

P.S. А что означает ! перед default и sysdefault?
Без него audecity вообще никаких устройств не видеит, однако

ctl.equal {
    type equal;
}

pcm.plugequal {
    type equal;
    slave.pcm "plug:dmix";
}

pcm.equal {
    type plug;
    slave.pcm plugequal;
}

указываются без ! и работают?


"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Аноним , 07-Апр-19 13:13 
> "linearize"

это то, что у меня в конфиге сделано (просто скопипастил из своего, не изменяя)

> или просто написать без фигурных скобок pcm.!sysdefault default ?

Да, это и есть alias

> А что означает ! перед default и sysdefault?

Это означает очистить предыдущие конфигурации с этими именами и использовать новые (которые и будут далее указаны)

> Без него audecity вообще никаких устройств не видеит

А без него, насколько я помню, если раньше такой конфигурации (не знаю как правильно называется, поэтому использую такое слово) не было, то создать, а если была - не перезаписывать, а использовать старую.


"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Ilya Indigo , 07-Апр-19 13:35 
Благодарю! :-)


"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Аноним , 07-Апр-19 13:41 
> В последнее время появляются приложения (firefox, chromium, skype, telegram), в которых нет возможности настроить устройства воспроизведения и захвата

м-м-м... да, тут на ум приходит только менять .asoundrc (или default в нём) перед запуском приложения на нужный, а потом вертать обратно.

> snd_pcm_hw_params_set_channels

гм, помню, у меня в wine'е тоже были проблемы с несоответствием количества каналов ("Проверить звук" в winecfg). Пришлось делать type route чтобы у меня всегда было 2 канала.
Но здесь captureAlsa_open, с этим я дел не имел. Предположу, что оно так же, как и с воспроизведением. Хотя зачем там больше 1 канала (или в чём именно ошибка)? Странно в общем что-то.

у меня:
pcm.channel_change {
    type route
    slave {
    pcm "rate_change" # как всегда, вместо этого должно быть то, что у вас там дальше
        channels 2
        }
    ttable {
        0.FL 1.0
        1.FR 1.0
        ...
        }
    hint.show off
    hint.description "to stereo -> rate converter"
    }
    
Теоретически, type plug (https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html) - сам делает необходимые преобразования, попробуйте перед "hw:0,0" использовать plug, что ли.


"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Ilya Indigo , 07-Апр-19 16:08 
Огромная Вам благодарность! :-)
Вот он, конфиг моей мечты, который я искал несколько лет!
Теперь с ним микрофон в телеграм, наконец-то заработал. :-)

pcm.!default {
    type asym
        playback.pcm "plug:dmix"
        capture.pcm "plughw:0,0"
    hint.description "Default with dmix"
    hint.show on
}
pcm.!sysdefault default


"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Zenitur , 07-Апр-19 06:47 
> альса по умолчанию  имеет возможность работать только в приоритетном режиме. то есть полный захват

Имеет возможность, но как правило не пользуется этой возможностью.


"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Аноним , 12-Апр-19 18:24 
От программы зависит, например рипер в монопольный доступ забирает карту

"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Аноним , 07-Апр-19 06:27 
make install завезли, make uninstall не завезли. Отлично, я считаю. Напоминает времена винды 98 - тогда тоже половина разрабов не подозревала, что их софт кто-то захочет удалить

"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Zenitur , 07-Апр-19 06:51 
А мне вспоминается убунтофорум 2008 года. В том году впервые стало широко известно про PPA (а может, PPA именно тогда и появился). И на убунтофоруме стало популярно требовать от новоприбывших пользователей устанавливать всё только из пакетов! И никак иначе!

Одним из аргументов было то, что если не устанавливать не из пакета, то и удалить потом нельзя. Про make uninstall никто там не слышал, в том числе и я. Даже у проприетарных драйверов, устанавливаемых из run-файла, есть uninstaller - а мы городили команду для apt-get, возвращавшую Месу...

Массовое просвящение о том, что такая команда есть, случилось в 2013 году после скандала с Bumblebee. Когда make uninstall там удалял /usr


"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено Аноним , 12-Апр-19 18:26 
>Про make uninstall никто там не слышал, в том числе и я

Похоже о нем не слышали и разработчики новомодных систем сборки, которые так и не в состояние толком воспроизвести основные возможности autotools


"Доступен PulseJoin 2.2 для объединения записи с микрофона со..."
Отправлено x3who , 08-Апр-19 00:43 
> Когда make uninstall там удалял /usr

Там при инсталляции это вроде тоже происходило:
https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/issue...