Перейти к содержанию
    

Rst7

Модератор
  • Постов

    4 619
  • Зарегистрирован

  • Победитель дней

    2

Сообщения, опубликованные Rst7


  1. То есть частота периферии кратна 48к. Красивое решение.

     

    Не совсем. Сигнал LRCK генерируется банальным счетчиком (74HCчего-то, делитель на 256) от сигнала MCLK, а сигнал MCLK генерируется микросхемой AK4114, это в одном флаконе SPDIF-приемник/передатчик/тактовый генератор. Так исторически сложилось, потому что в качестве первой жертвы для экспериментов была взята карта Tascam US-1800 (ее собственная USB-часть была безжалостно отрезана путем завешивания местного процессора в z-состояние, использовалась только аналоговая часть плюс ЦАП/АЦП и SPDIF). А вот дальше начинается интереснее. Сигнал LRCK заведен на внешнее прерывание у моего процессора. По этому прерыванию процессор запускает собственный генератор BICK (сделаный из PWM), он же является сигналом запуска DMA (при помощи кое-каких извращений через дополнительный таймер), и на каждый фронт BICK происходит передача одного байта с порта в ОЗУ и наоборот (два канала DMA используются). Когда отрабатывается все 32 бита в протоколе I2S (у меня это превращается в 32 байта, ибо в одном байте сразу 8 сигналов данных), генератор BICK останавливается до следующего фронта/спада LRCK. Практически с точки зрения загрузки процессора это все ничего не стоит.

     

    Можно и с аппаратно генерируемым BICK (чтобы он был красивым и синхронным с MCLK, как рисуют в даташитах), просто так, как у меня (со своим генератором), исторически сложилось. А на самом деле к BICK нет требований по синхронности с MCLK/LRCK. Может, конечно, кому-то и надо такое, но AKM'овским АЦП/ЦАПам пофиг.

     

    А как ведет себя система, если нагрузить юзер спейс, к примеру тяжелыми дисковыми операциями? Можно пару слов о вашей аппаратной конфигурации?

     

    Ну вот у меня Cubase в качестве DAW. Я на нем по 16 треков одновременно пишу, причем еще и обрабатываю для выдачи - я так концерты полноценные вживую озвучиваю, с обработкой барабанов, гитар, вокалов, с микшированием каналов мониторинга, всякая автоматизация и так далее, в общем использую DAW в качестве очень продвинутого микшерного пульта с кучей обработки да еще и с одновременной потрековой записью. Так вот, 16 потоков записи 48к/32 бита при попутной загрузке процессора всякой обработкой где-то в районе 50% - это достаточные по тяжести дисковые операции?

     

    При этом комп - достаточно древний Core i7 860, ну какой-то винт (не SSD), 8Г ОЗУ. Все. Ах да, я еще и рулю этим делом по RDP через WiFi.

     

    Вот такой вот стейдж-бокс у меня для выездов получается (на фото еще только начало коммутации):

    post-6610-1511650571_thumb.jpg

    Там DBX DriveRack PA+ для простоты настройки линейного усиления, обсуждаемый девайс, комп, WiFi-роутер из ближайшего магазина "все по 5 рублей", парочка аналоговых систем радиомониторинга. Все.

     

    Я припоминаю, что сетевой товарищ Никков делал юсб асио драйвер в юзерспейсе и вроде проект размещен на гитхабе. А ваш драйвер доступен для использования?

     

    Да там нет ничего. Открываете ASIO SDK и в примере драйвера функцию sleep(1) меняете на send/recv из сокета.

     

    Асинхронный, когда девайс яслется мастером, а хост подстраивает свой стрим под девайс, используя для синхронизации либо явный канал либо стрим от АЦП. Собственно вопрос был как вы решили эту проблему

     

    ASIO в этом смысле асинхронный интерфейс (хотя правильнее было бы его назвать именно синхронным). Сколько семплов на вход DAW пришло, столько DAW на выход отдало. Так что получив очередные 48 семплов с АЦП, я посылаю их в комп, получаю в буфер при помощи recv, этот буфер размером 48 семплов DAW обрабатывает, затем из буфера посылается через send, попадает ко мне в девайс, и после буферизации попадает в ЦАП. Никаких проблем с передискретизацией или еще чем-то. Скорость данных с АЦП точно задает и скорость данных в ЦАП.

  2. :bb-offtopic:

    А можно несколько вопросов о приборе? По ходу повествованиия:

    1) 16 каналов обе стороны я полагаю аналоговые, что то типа 16 канального пульта? Как вы их сделали? На кристале только один I2S.

     

    Да, там 8 двухканальных АЦП и 8 двухканальных ЦАПов. 8 штук I2S прекрасно изготавливаются при помощи DMA-пересылки с GPIO (просто 8 бит порта рядом) в ОЗУ с последующим довольно хитрым алгоритмом транспонирования битовой матрицы (не в лоб).

     

    2) Используется TCP, на ум приходит только линуксовый ДЖЕК с возможностью работать по сети. С какой хостовой ос работает ваше устройство? Какой протокол используете?

     

    ASIO-драйвер я написал, так что любой Windows-хост с любой DAW. Причем, т.к. транспорт там TCP, все катается в user-space без всяких драйверов в ядре. Два сокета открывается и без лишних обрамлений в каждом льются данные в нужную сторону. Хотел сначала один сделать, но оказалось, что в винде Fast Retransmit правильно работает только если данные идут только в одну сторону. Потому два сокета.

     

    3) Джиттер меньше 500 мкСек. Т.е. 1 мсек буферизация на передающей стороне, 1-2 мсек буферизация на приемной. В обе стороны латенси около 6 мсек? Вы измеряли реальное значение?

     

    Именно так и есть. 1(вход)+1(обработка в DAW)+2(вывод)=4мс чистая цифровая задержка плюс задержки в фильтрах АЦП/ЦАП, набегает еще почти миллисекунда в сумме. Задержка измерена и рапортуется в DAW для точного позиционирования треков при записи через LoopBack-кабель.

     

    4) Хотелось бы узнать ситуацию со свитчами. Вы наверняка проверяли такую конфигурацию.

     

    Главное в этом деле - применять самые тупые свичи. Тогда задержка в нем всего лишь на время передачи пакета в сети. В моей инфраструктуре сейчас так - комп гигабитом в свич, а в него - два таких устройства, одно - 16in/16out, второе - просто 8out, сами устройства, понятное дело, 100М. Что гигабитная карта, что гигабитный свич - обычная дешевка, купленная в первом попавшемся компьютерном магазине.

     

    5) Как реализовали синхронизацию аудио кварцев? Я время от времени развлекаюсь со своим ЮСБ аудио и в качестве эксперимента делаю синхронный режим. По моим прикидкам время синхронизации с приличным подавлением джиттера ЮСБ СОФ получается около 1-2 сек. Что очень много.

     

    Я пару лет работал на АВИД, пилили АВБ аудио платформу. Избыточное решениея для домашних поделок, к тому же работающее только под макосью, условно работающее под линукс и напрочь отсутствующее в мире виндовс. Механизм синхронизации был черезвычайно сложный, совершенно неподъемный для самоделок.

     

    Я не очень понимаю, о каких аудио-кварцах Вы говорите. В конкретно моем устройстве, которое 16/16, АЦП и ЦАПы тактируются одним и тем же MCLK/BICK/LRCK. В другом устройстве (которое чисто вывод) - просто цифровая PLL, причем с довольно малой постоянной времени в фильтре. Если никому не говорить, то никто из окружающих меня на студии золотоухих дьяволов не слышит никакого джиттера.

     

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

     

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

  3. о! то что нужно.

     

    примного благодарен

     

    Ну оно там очень яростно рукожопо выглядит, сделано на очень скорую руку за один час. Без всякого окультуривания, так что пардон. Если будут вопросы - задавайте, я отвечу. Расценивайте это больше как пример, там, например, совсем некошерно с точки зрения загрузки проца смотрятся две функции CopyFromFrame_EMAC и CopyToFrame_EMAC. На самом деле надо заменить вот этот union

    union
    {
      ARP_PKT arp;
      UDP_PKT udp;
      ICMP_PKT icmp;
      UINT8 rawpkt[sizeof(UDP_PKT)];
    };

    на банальные указатели типа ARP_PKT *arp, UDP_PKT *udp, ...., и в основном коде, соответственно, arp.чего-то на arp->чего-то. И работать прямо по месту, в буферах местного MAC-уровня у Вашего процессора.

     

    Я, к сожалению, не знаю, как устроен MAC в STM32 (не разбирался), но все они примерно по одному и тому же принципу - есть какая-то очередь приема, есть какая-то очередь передачи. Вот из одной надо брать пакеты (это самое начало тела цикла for(;;) в моем коде до p=arp.type; switch(p) ...), а в другую - укладывать (это ETH_Out).

  4. можно. Но!

    1. надо быстро.

    2. надо еще заморочиться с драйвером физуровня.

     

    на компе, винде, сырые сокеты простыми способами не поддерживаются.

     

    Так кто-нибудь вообще пробовал?

     

    Я просто оставлю это здесь.

    Bootcore.zip

     

    На самом деле это tftp-бутлоадер для LPC1768. В нем есть ARP, ICMP (на пинг отвечает) и UDP (ибо сам tftp по UDP бегает).

     

    Переделываете под свои нужды всякие InitEMAC()/ETH_Out() и отпиливаете все, что в ветке switch(udp.tftp_rq.opcode), ибо это уже TFTP. Крайне сложная цепочка функций SendUDP -> SendIP -> ETH_Out - вот это Ваше все будет. Для красоты не забудьте выбросить там лишнее копирование.

     

    Ну а по поводу настоящего прибора - у меня тут многоканальный аудиоинтерфейс живет на Ethernet'е (проц LPC1768/100МГц), 16 каналов на вход, 16 на выход, 48кГц, 32 бита. Т.е. 25Мбит/с в каждую сторону. По TCP живет, шлет данные в обе стороны один раз в миллисекунду, с полноценной реализацией Fast Retransmit в обе стороны, так что джиттер в случае потери пакета не превышает 500мкс. И до 100% загрузки процессора там очень и очень далеко.

     

  5. Предположим от АЦП приходит блок в 100 бит. Проводим свертку с какой-либо импульсной характеристикой.

    Получаем в результате блок уже больше чем 100 бит. Подаем этот результат на ЦАП.

    И тут возникает вопрос, а с какой частотой должен работать ЦАП?

    С той же частотой, что и АЦП? Или с более высокой частотой(т.к. на ЦАП приходит блок бит более длинный чем от АЦП)?

     

    Конечно с той же частотой. После свертки у Вас к блоку 100бит добавляется еще хвост размером с сам импульс. Вопрос "что делать с этим хвостом?" решается так: первые 100 бит Вы просто передаете в ЦАП, а вот хвост Вам надо будет просуммировать с результатом после свертки следующего блока. Для гугля ключевое слово будет "overlap-add", например.

    Depiction_of_overlap-add_algorithm.png

  6. Я, как модератор раздела - против. Там все вполне мирно уживается. И не такое огромное количество тем, чтобы требовалась дифференциация на подразделы.

  7. А почему два параллельных источника шума вдруг производят шума меньше, чем один? Сигнал то не суммируется в параллели, почему SNR выше станет?

     

    Сигнал суммируется (на оба ЦАПа подается один и тот же поток данных). Сумма двух одинаковых полезных сигналов - +6дБ, сумма двух некоррелированых шумов - +3дБ, итого выигрыш 6-3=3дБ.

     

    Но это все пыль. Показываю мои любимые картинки из описания этого самого Lynx'а.

     

    post-6610-1511274871_thumb.png

     

    Волшебный способ получения аудиофильских выходных параметров обведен мной на скриншоте. Самое главное - это FFT size. Считаем:

     

    Fbin=Fd/N=192k/512k=0.37Гц. Т.е. вот ширина отсчета - это 0.37Гц. В каждом таком отсчете есть сколько-то шума (ну вот по графику там на пару дБ больше, чем -145дБ).

     

    Теперь пересчитывем эквивалент на полосу в 20кГц:

     

    k=sqrt(Fbw/Fbin)=sqrt(20000/0.37)=234. Это на самом деле во столько раз шумнее на выходе в полосе 20кГц, чем на картинке (квадратный корень учитывает то, что шум некоррелирован). Итого, в реальности шум не -143дб, а на 20log(234)=47дБ выше. Т.е. уровень шума в полосе полезного сигнала где-то порядка -96дБ. Что вполне соответствует моей прикидочной оценке по сопротивлению резисторов.

     

    В общем аудиофилия - она такая аудиофилия. И особенно смешно смотрится на профессиональном форуме электронщиков.

  8. Шлак??? Каждому бы домой такой шлак.

    Во-первых шум не коррелированный и в схеме вычитателя будет в корень из 2 раз меньше. Во-во вторых, если бы вы прочитали бы описание, то знали бы, что резисторы используются mma0204. На странице 8 "даташита" находим график зависимости шума от приложенного напряжения. При сопротивлении 13 КОм и входном напряжении вычитателя 2В имеем суммарные шумы 150-250нВ. При выходном напряжении в 2В динамический диапазон преобразования больше 140Дб.

    Что-то вы считаете по-особенному, научите меня так.

     

    Ой-ой-ой, вот это провал. Про тепловой шум резистора в ВУЗе Вас не учили?

     

    А на странице 8 - это график дополнительного шума от приложенного напряжения. Причем непонятно, в какой полосе.

     

    Чисто теоретический еще вопрос - нафига она ЦАПы паралелят?

     

    Ну как, каждое запараллеливание - это -3дБ к шуму. Только вот ставить при этом резисторы с сопротивлением в десятки килоом - это именно по аудиофильски.

     

    И как обычно для таких понтов - нет балансных выходов. Что лично для меня однозначно определяет сей девайс в категорию "для золотоухих".

     

    Нахрен не впились эти 140 дб, на записи и близко ничего такого нет, мне что, тишину генерировать и слушать на нем ?

     

    Да нету там 140дБ. Только первый каскад простым тепловым шумом уже гробит С/Ш до -110дБ, а там еще и второй есть (с номиналами подобного порядка).

     

  9. Asahi Kasei Microdevices в 4490 аж на целых 4 варианта предлагает. И они отличаются. Верить или нет - дело ваше, но разработчики ЦАП это изменение свойств фильтра в большинстве своем слышат.

     

    Ну вообще-то там переключение сделали не от того, что слышат, а от того, что часто важна задержка (например, в цифровых консолях/DAW). Был у них такой кошерный АЦП AK5394 (я его в гидроакустическом модеме как-то применял, он кошерен, как еврейское рождество). Все в нем хорошо было, но задержка в 63 семпла - это был перебор (особенно с учетом того, что типичная задержка на обработку в DAW на достаточно производительном компе выбирается меньше). В новой серии там уже можно переключиться на фильтр с малой задержкой. Да, ценой ухудшения подавления сигналов выше Fd/2 (имеется в виду уже после даунсемплинга, не на 6МГц, где там сигма-дельта работает) и/или ухудшения фазовых характеристик. Аналогичная история с ЦАПами. А вот это разное звучание - это все маркетинговый ход.

     

    Дело не в микросхеме, а в том, как ее приготовили, попробуйте послушать ЦАП хотя-бы уровня Lynx D78.

    Да, если вы любите БАС в синтетической музыке, возможно уже уши подсели....

     

    Вы хоть схему этого шлака откройте. 2*13кОм с шумом 20нВ/sqrt(Гц) не жмет? И это только в первом каскаде фильтра, а там еще есть.

  10. Это вы журналами Радио за 95 год обложились? Студии Сони еще с 90х укомлпектованы микрофонами от басовых до конденсаторных зондов 40кГц, а с 2004-2005 переоборудованы под DXD/DSD. Какие там 44.1/16 бит; акститесь.

     

    Совершенно верно. Это называется DDD, DIgital recording, mixing, mastering. Чтобы получить SACD на выходе, на входе должен быть соответствующий тракт. Лентовое оборудование в студиях - это дань совместимости. Современная запись идет прямо на диски. Но аналогия не абсолютно верная. Аналогия тут прямая - частота - мегапиксели; raw-pcm24/32. Разве что DSD пишется как PWM, затем перегоняется в PCM DXD (по вашей аналогии из RAW в полутоновый поканальный) и монтируют привычным образом. Вы же понимаете что мегапиксели в камере превышают всякую разрешающую способность объектива, и на то есть причины.

     

    Походу журналами "Радио" обложились именно Вы. 44.1/16 - это выходной формат. Накопление - это 44.1/24 (ну или местами 32). Не 192, не 384. В DSD ничего не накапливают, потому что нет смысла - для обработки надо превратить его в обычные отсчеты с таким-то количеством бит. Более того, все эти носители для "золотоухих" делаются просто с обычного выхода 44.1/16 - винилы так пишутся, этот же материал после мастеринга конвертируется в этот Ваш DSD (иногда воткнувши в разрыв какой-нибудь винтажный ламповый компрессор, дабы породить каких-нибудь гармоник выше 20кГц, ну чтобы не палиться полной пустотой, вдруг кто на спектроанализатор посмотрит).

     

    Далее. Ленты на студиях (исключая ленточные сатураторы у особых любителей понтов) нет уже лет 25. Причем, 25 лет назад это был ADAT, чисто аналоговой ленты нет еще больше лет.

     

    Ну и про микрофоны отдельно повеселили, да. "Басовые микрофоны" - это как раз показатель знатока студийного оборудования. "Конденсаторный зонд" - это вообще именно тот термин, которого всегда не хватало в музыкальной индустрии.

     

    Вы-то хоть раз фейдер на консоли двигали? Я уж не говорю о том, знаете ли что такое DAW и прочее?

  11. работала. ну да, сделанное до 2005 примерно года продолжают штамповать, но это уже не работа а эхо забытых дней.

    студийные форматы давно добрались до сотен кГц. А в бытовухе... при подготовке SACD вообще все решается возможностями микрофонного тракта и выбором звукорежиссера.

     

    Я не хочу Вас расстраивать, но Вы совершенно не в курсе дела.

     

    Любая, это в подвале на Восстания?

     

    Нет. Abbey Road - нормально? Это как раз дятлы "в подвале на Восстания" будут Вам рассказывать про моднейшие 192кГц и прочее.

     

    Чтобы осознать необходимость высоких частот дискретизации и большего разрешения подайте цифровой меандр частотой так в 18-20 КГц, в 44/16 и 192/24 и посмотрите форму сигнала на выходе. Много интересного узнаете про свой ЦАП.

     

    О, оказывается, что к нам на огонек заглянул человек, слышащий "звон импульсного отклика фильтра ЦАПа". Это да, особая стадия "золотоухости".

  12. Почему вы забываете про аудиосигналы высокого разрешения?

     

    Это какие-такие "аудиосигналы"? Вы вообще в курсе, что индустрия работает с выходом 44.1/16 бит (киношники - 48к)? Вот именно в таком формате Вы получите результат с мастеринга на любой студии. Других выходных форматов в музыкальной индустрии нет. DSD и прочее - это все баловство для аудиофилов на всю голову, не имеющее отношение к продакшну.

  13. Это так же может означать что люди не в состоянии верно объяснить разницу.

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

     

    Изначально разговор зашел о том, что люди различают разницу между mp3 и не-mp3. И вот прям mp3 - зло-зло, слушать невозможно, и так далее. С опровержением именно этого посыла такой простейший тест справился на пять баллов.

  14. К сожалению, тестовое прослушивание каждый проводит на своей, зачастую, не оптимальной системе. Потому по такому эксперименту на форуме мы ничего не можем сказать. Информация не несет смысла, так как складываются два фактора - тракт и уши. Для полноценного сравнения ушей нужно застабилизировать одну переменную - тракт.

     

    Несет смысл еще и какой. Главный смысл - сразу понятно ху из ху.

     

    Прикладываю картинку того, что происходит на ВЧ при сжатии МП-3. Хороший тракт всю эту ВЧ грязь высвечивает.

     

    Т.е. то, что там полностью отрезаны ВЧ выше 16кГц - этого "хороший ВЧ тракт" не "высвечивает", да? Только внезапные превышения? Ну ок.

  15. Дал брату послушать. Он назвал правильно где mp3-шка. Но добавил что разница слышна однозначно. А вот чтобы выбрать где оригинал где mp3 говорит нужно знать куда смотреть. Но так же добавил что без второго файла это не определить. Т.е. только сравнение двух файлов позволяет найти и понять разницу.

     

    На самом деле при достаточно большом количестве ответов примерно 50 на 50 распределятся голоса, а это означает, что разница не слышна. Даже в таком упрощенном двухфайловом виде тест вполне работает.

  16. Итуны требуются когда индуктивность начинает преобладать над потерями на излучение, в мощных концертных системах,

     

    Все усилители для концертных АС - это обычные ИНУНы. До киловатта - это обычный AB (ну и всякие его разновидности с коммутацией питания для не такого провального КПД), выше - D-класс. Ну и как раз где-то с киловатта мощности уже делят полосы кроссовером до УМ, т.е. раздельные усилители на каждую полосу.

  17. Как бы так сказать, чтобы не обидеть. Я удосужился послушать ЭТО.

     

    Конечно-конечно. Всегда мне очень умилительно читать такие отзывы после оглашения результатов ;) Это один из необходимых элементов перформанса c двумя файлами - знатоки с других форумов, знатоки после оглашения результатов, неприятие исходного материала с любой из точек зрения (не такая музыка, не так записана, не так сведена), etc.

  18. А какой битрейт мп3 тут?

    Это pandora's pinata?

     

    320.

     

    Да.

     

    Да, трек изрядно попортил мне мозг.

    Если в любое блюдо добавить майонез и кетчуп чили по массе равные блюду, то что вы почувствуете на языке отведав блюдо?

    Вот примерно такие ощущения майонеза-кетчупа у меня возникли при прослушивании этого трека. Что это? Как это записано? Почему инструменты с голосом не выведены?

     

    По - делу, в районе с 18-19 секунды начинает вылазить ВЧ песок от артефактов кодирования - декодирования мп3. Это прекрасно слышно. Я не поленился и запустил программку снять спектр. Да, в районе 18-26 секунды вылазы ВЧ. На Y все ровненько в районе 16 КГц идет. В X - все в районе 15 КГц порезано и всплески аж до 21КГЦ резкие. Если надо - пришлю спектры посмотреть. Вообще с ВЧ явные проблемы, что на оригинале, что на пере-MP3. Вступают тарелки, где тарелки? Не слышно их.

    PS Удивительно неудачный выбор записи для оценки тракта. Это вы специально или оно само получилось?

     

    Я как в воду глядел :))))))

     

    Но сейчас должен кто-то обязательно проснуться и сказать "Я сразу услышал, что X - это mp3, только глухой бы не услышал, но не написал потому что потому".

     

     

  19. Для таких сравнений предпочёл бы несколько тщательно и лично отобранных, изначально качественно записанных композиций своих любимых исполнителей.

     

    Ну в общем настоящие тесты проводят так - материала, конечно, берут больше, сама методика прослушивания немного не такая, так называемый ABX-тест, а вот выбирать исходный материал экспертам не дают. Иначе это может сильно повлиять на результат.

  20. Я понимаю если мп3 уменьшает количество информации, убирая лишнее. Но у Вас выходит наооборот.

     

    Ну так внутри mp3 количество информации уменьшено. А после распаковки там еще может быть куча мусора. Вы разницу послушайте между этими файлами, она, конечно, коррелирует с музыкальным материалом, но шумов там масса.

  21. Думаю можно огласить :)

     

    Запросто.

     

    X - mp3.

    Y - оригинал.

     

    Так что кого-то Вы будете поить пивом.

     

    Но сейчас должен кто-то обязательно проснуться и сказать "Я сразу услышал, что X - это mp3, только глухой бы не услышал, но не написал потому что потому".

×
×
  • Создать...