?

Log in

No account? Create an account
интересное для программистов - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

интересное для программистов [авг. 30, 2017|07:12 pm]
Anatoly Vorobey
[Tags|]

Три интересные статьи, из увиденного недавно.

1. How it feels to learn Javascript in 2017. Дает некое представление о том, как устроены популярные фреймворки последних лет - с виртуальными DOMами, современным синтаксисом ES6, HTML внутри джаваскрипта (JSX). Я довольно далеко от этого мира, и во многом отношусь к нему скептически, но эта небольшая, живо и инересно написанная статья меня покорила.

2. Fizzlefade. Рассказ о том, как в классической игрушке Wolfenstein 3D был сделан эффект "экран постепенно покрывается красными точками, символизирующими кровь, пока целиком не становится красным". Есть исходники на 16-битном ассемблере и эквивалент на C, для тех, кто не хочет вспоминать ассемблер. Очень советую вчитаться как следует и разобраться для себя в том, как устроен LFSR, и особенно - почему "Галуа"-версия LFSR, которая обходится всего одним XOR'ом, эквивалентна обычной. Там весьма элегантный хак.

В качестве бонуса - статья Антиреза Doing the FizzleFade effect with a Feistel network, о совершенно другом способе добиться того же эффекта.

3. Digital Show & Tell - захватывающее видео о некоторых заблуждениях насчет того, как работает аналогово-цифровое конвертирование и наоборот, и почему самплинг типа "24 бита, 192кгц" не дает дополнительных преимуществ в сравнении с обычным CD-уровнем. Это возможно звучит довольно сухо, но я, никоим образом не аудиофил, был заворожен этим видео - исключительно ясные объяснения, на редкость наглядные демонстрации с помощью аналоговых генератора сигнала и осциллоскопа итд. Особенно понравилось объяснение того, почему концептуально неверно рисовать цифровой сигнал в виде "лесенки", и почему все равно это всегда делают. Очень круто.
СсылкаОтветить

Comments:
[User Picture]From: spamsink
2017-08-30 05:02 pm
В статье про FizzleFade есть очевидная ошибка: LFSR никогда не принимает значение 0 (иначе он в нем останется навсегда), поэтому количество возможных значений для 17-битного варианта - не 131,072, а 131,071, и в выбранной реализации позицию (0, 0) надо физзлить вручную.
(Ответить) (Thread)
[User Picture]From: avva
2017-08-30 05:08 pm
Зачем вручную? Для 300x200 остается куча пространства для маневра, можно просто сдвинуть одну из координат на 1 вниз по сравнению с значением из LFSR, например (как и сделано в коде).
(Ответить) (Parent) (Thread) (Развернуть)
(Удалённый комментарий)
[User Picture]From: spartach
2017-08-30 09:19 pm
Нет. :) На Хабре - перевод прошлогоднего текста, заметно другого и от другого автора. Статья по ссылке Аввы начинается со ссылки на неё и как раз сказано, что это - ответ на ту прошлогоднюю.

Нынешняя куда оптимистичней и слегка вернула мне веру в прогресс.
(Ответить) (Parent) (Thread)
(Удалённый комментарий)
[User Picture]From: nlothik
2017-08-30 07:53 pm
> почему самплинг типа "24 бита, 192кгц" не дает дополнительных преимуществ в сравнении с обычным CD-уровнем.

Вот этого я как-то там не увидел. Наоборот, говорится о том, что чем ниже битность, тем больше шум.
(Ответить) (Thread)
From: (Anonymous)
2017-08-30 08:21 pm
Но ещё говорится о том, что в лучшей аналоговой студийной аппаратуре динамический диапазон был порядка 13 бит, и никто особо не жаловался.
(Ответить) (Parent) (Thread) (Развернуть)
From: a_shen
2017-08-30 08:47 pm

про цифровой

звук - это какое-то бессмысленное шоу, те, кто не знают базовых вещей, ничего не поймут, а те, кто знает, удивятся - какая же это схемотехника, спрашивается, проводит через точки кривую ограниченного спектра?!
(Ответить) (Thread)
From: (Anonymous)
2017-08-30 09:21 pm

Re: про цифровой

я думал, что я в этом шоу про звук все понял, и тут ваш комментарий, который я вообще не понимаю о чем. можете объяснить?
(Ответить) (Parent) (Thread)
[User Picture]From: oppad1
2017-08-30 10:04 pm
по пункту 3 - там у него "идеальный сигнал" имеет гармонику -70дБ, что соответствует 12 разрядному АЦП (грубо 1 бит 6дБ). то есть разбирать что хуже лучше он может только в пределах 12бит, а 16 и 24 естественно будут одинаковыми.

(Ответить) (Thread)
[User Picture]From: sergey_cheban
2017-08-30 11:46 pm
Ну так он и говорит, что лучшая аналоговая аппаратура даёт 13 битов. А что сверх этого, то от лукавого, поскольку сигнал лучшего качества просто неоткуда взять.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: shadow_ru
2017-08-31 03:53 am
1. По-моему исходная статья дает большее представление о современном программировании на JS:

https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f
(Ответить) (Thread)
[User Picture]From: avva
2017-08-31 12:28 pm
Таких саркастических статей много в последнее время расплодилось, а вот позитивных и информативных, типа той, на что я ссылку дал - мало.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: p2004r
2017-08-31 07:42 am
Этот "минималист" (тема про АЦП) какой то совсем уж глупый.

1.

Динамический диапазон имеет у уха человека "динамическую" же природу. Все вот эти самые "косточки и стремечки".

Да типа "большой кондер на входе" это как то там эмулирует. Но ключевое слово "как то там".

Если за вас в ресторане прожевали кашку и подали на стол... пусть даже прожевал шеф повар... наверное что то не так?

Ну так и в аппаратуре динамический диапазон очень важен.

Это окно в 12 децибел постоянно "бегает" по "шкале усиления" у человека. И реальная картина по разрешению куда как круче. В отсутствии громкого звука вы различаете самый тихий шепот, а в полной тишине слышите как течет кровь по сосудам. У аппаратуры альтернатива "тупому конденсатору" это делать очень широкий дипазон динамический (ну или синтезировать его записывая сигнал сразу на нескольких уровнях усиления как в фотографии).

2.

Про осциллограф смешно.

Представим сигнал состоящий из кучи взаимодействующих между собой "синусов" частотой лежащих выше 20 кГц и _активно_ "шевелящих фазой". Вы что поверили этому перцу, что ничего не будет регистрироваться ниже?

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

Ergo: Разрешение "по времени" нужно не только для того что бы зафиксировать частоты звуков, но и что бы отразить их динамику (фронты и вот это вот всё).
(Ответить) (Thread)
From: (Anonymous)
2017-08-31 09:36 am
он не глупый. глупый не он.

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

2. если высокочастотный сигнал будет шевелить фазой с частотой, например, 50 герц, то естественно в нем появятся спектральные составляющие, кратные 50 герц. и вы их прекрасно услышите. как гудение с частотой 50 герц. что в этом такого странного или ужасного или противоречащего каким-нибудь выводам?
(Ответить) (Parent) (Thread)
From: (Anonymous)
2017-08-31 02:40 pm
Похожее, ЖЖ стал терять глубоко вложенные комментарии. То есть, кнопка "развернуть" иногда становится вроде бы не видна, и свернутые ветки под ней поэтому тоже не видны. Но они есть. Если открыть ветку над свернутой веткой, то все развернется.

Пример: ветка, открытая уважаемым a_shen, под названием "про цифровой".

У меня это так на лаптопе и на телефоне. Кто-нибудь еще это наблюдает?
(Ответить) (Thread)