[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: о кривости esd (was Re:ALSA)



On Sun, 23 Jul 2000, Victor Wagner wrote:

> On Sun, 23 Jul 2000, Vlad Harchev wrote:
> >   Я не много посмотрел на код esd - я бы сказал что это обычный хак, по глупой
> > случайности переросший в достаточно поддерживаемую тулзу/протокол.
> 
> К сожалению, это тенденция в современном Computer Science - язык C++, 
> язык Perl, Microsoft Windows, процессоры Intel и тому подобные вещи
> получали распространение
> отнюдь не потому что были лучше аналогов.

  Ну если уж пошел флейм - то по моему C++ это верхняя (наиболее
желаемая, в хорошем смысле) граница того, что можно сделать из
компилируемого языка - так что я его буду защищать до последнего.  За
C++ template's, Степанова и его STL я богу молюсь (в переносном смысле). Про
perl бы я так жестоко не стал бы тоже - терпимо, зато мощно и компактный
исходный код.

>  
> >   Свойства:
> > * Обеспечивает микширование звука из несольких потоков данных, в том числе с
> >    других хостов
> > * Обеспечивает загрузку звука на сервер (с именованием данного звука) с
> >    последующей возможностью проигрывания данного звука путем ссылки на него по
> >    полученному идентификатору
> > * Еще обеспечивает запись звука с микрофона (вроде тоже по сети, но я не
> >    в этом направлении вообще не копал)
> > * Поддерживает различные способы проигрывания звука  - через alsa, oss,
> > /dev/dsp, а также проигрывание на aix, hpux, irix, solaris
> 
> Да... NAS умеет куда больше. Кстати почему-то в данном описании не
> прозвучали такие слова как "разные методы дискретизации - Ulaw, Alaw и
> linear". Неужели автор esd о них не слышал?

  Разве это настолько важно? Как я понимаю, перевод из одного формата
дискретизации в другой - тривиальная не ресурсоемкая задача - уж это можно
списать на клиента. Не поддержка этого не требует увеличения рамера (в
байтах) самого сэмпла.
  
>  
> >   Сразу о недостатках:
> > 1) Тупой непродуманный протокол (нет передачи версии в протоколе) - его
> >   наверно будет невозможно расширить (при поддержке обратной совместимости)-
> >   хотя тщательно я его на этот счет не анализировал.
> 
> Ср. с разнообразными методами опроса capabilities сервера, поддерживаемыми
> NAS.
> 
> > 2) Нет возможности контролировать громкость отдельно взятого потока, а также
> >  именнованного сэмпла
> 
> Что?!

  Трактую это как возмущение. Вообще-то есть возможность регулировать
громкость данного потока с командной строки, но програмного интрефейса (кроме
как хак с system(3)) нет. С сэмплами вообще никак. 

> > 3) Нет возможности микширования потоков/сэмплов разной дискретизации
> 
> И как это предлагается реализовать? resampling на ходу в наибольшую
> поддерживаемую частоту?
  
 Тут по-моему тривиальная задача (по-крайне мере если решать ее не с
математической POV, а лишь бы работало).  Ведь все используемые в программах
частоты дискретизации обычно имеют вид 11KHz*2^n, n=0..2 - следовательно
перевод от одной частоты дискретизации  n1 к более высокой частоте
дискретизации n2 (n1<n2) выполняется просто выполняется линейной интерполяцией
(или _би_линейной и пр) - ведь просто надо довычислить значение громкости в
промежуточных точках.
 Для игр я думаю это очень важно (хотя я давно в них не играл, не знаю какую
частоту дискретизации там используют) - ведь чем меньше частота дискретизации,
тем меньше надо памяти чтобы хранить сэмпл.

 > Тут приходится выступить в защиту esd. По-моему XFree научилась решать
> аналогичную задачу - поддерживать визуалы разной глубины на одном экране
> только в версии 4, если научилась. 

  Не думаю, что это очень востребовано в X - виджетсеты все глубины должны
держать (кроме может монохромного). Хотя есть долбанутые виджетсеты...

>      
> >   Короче, вполне типичная ситуация. Было бы неплохо его пофиксить конечно.
> 
> В общем, судя по всему, фиксить надо NAS, как существенно менее на коленке
> сделанный протокол. Тем более что нашелся таки человек, который этим
> занялся и на его сайте уже лежит NAS version 1.4.

  Как у него с портабельностью? Я думаю что в gnome это будет легко
протолкнуть, а за ним все потянется (просто им надо об[яснить, что esd -
отстой, надеюсь к чему-нить это приведет). Главное чтобы лицензия была LPGL,
не меньше (хотя бы на библиотеку для работы с NAS).
  Еще можно попробовать создать esd-to-nas proxy - софт, косящий под esd но
выдающий на NAS - с ним хоть пользователь сможет отрегулировать громкость
каждого потока.
   
> > > > Когда игралка музыки пишется в виде GUI программы, очевидно что человек
> > > > в Unix  не понимает ничего. Потому что правильным решением была бы игралка
> > 
> >   В принципе они только хотели создать прямой аналог winamp, но дизайн конечно
> > немного долбанутый.
> >   И на sourceforge лежит софтина позволяющая управлять xmms с командной
> > строки - если на ней свет клином сошелся.
> 
> Это как? Как мне при помощи этой штуки проигрывать mp3 файлы на сервере
> который лежит под столом и не имеет видеокарты? (но имеет свою собственную
> звуковую карту). Предположим, xvfb на нем по каким-либо соображениям
> иметь не хочется.  

  Ну конечено можно DISPLAY установить куда-нить на другой хост, можно
скрепя сердцем поставить vnc server и к ниму не подключаться (можно на
другом хосту)..
  Но в принципе в этой ситуации xmms вообще не к чему - он ничего
оригинального не добавляет из функциональности (кроме показа спектров и пары
эффектов) - уж лучше mpg123.
  А ту софтину я не пробовал - надо искать по ключевому слову xmms на
soureforge.

> Или как мне воткнуть это дело в систему, которая втыкается на место
> автомобильной радиолы и вместо экрана имеет двухстрочный
> жидкокристаллический индикатор?    
 
> --------------------------------------------------
> Victor Wagner			vitus@ice.ru
> Programmer			Office:7-(095)-785-09-72
> Institute for Commerce 		Home: 7-(095)-135-46-61
> Engineering                     http://www.ice.ru/~vitus
> 
> 
> --  
> To UNSUBSCRIBE, email to debian-russian-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 

 Best regards,
  -Vlad

Reply to: