Это дополнительная информация к плагинам DCD и sndRemote

Три вида модуляции
Bi-phase coding
Длина импульсов и промежутки между ними по 0.9мс или 1.8 мс.
Логические 0 и 1 определяются, как показано на рисунке:


Pulse-distance modulation

Длина импульсов постоянна.
Промежутки большей длительности - лог. 1 , меньшей - лог. 0.


Pulse-length code

Длина промежутков постоянна.
Импульсы большей длительности - лог. 1 , меньшей - лог. 0.


Сразу нужно сделать оговорку по поводу "импульсов". На самом деле каждый
такой "серый" импульс - это 20-30 очень коротких импульсов идущих с большой
постоянной частотой (от 30 до 56 кГц) или даже вообще инфракрасный фон
с частотой 400 кГц. При оцифровке звуковой картой (44100Гц) этот "фон" сливается
в импульсы по форме близкие к прямоугольным. Этого достаточно для точного
декодирования.


Стандарты кодировок
RC-5

Модуляция Bi-phase. Сначала идут старшие биты, потом младшие.

Если нажать кнопку на дистанционке и держать, будут слаться посылки (DataWord)
с одинаковым значением Toggle bit. Если отпустить кнопку и нажать снова,
пойдут те же посылки, но уже с инверсным значением Toggle bit.

Этот стандарт использует PHILIPS и SAMSUNG без каких-либо отклонений.

NEC
Модуляция Pulse-distance. Сначала идут младшие биты, потом старшие.

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

В посылке адрес и команда идут два раза - сначала просто, затем с инверсией
(что-то не совпало - команда не принята). Кроме того, основная посылка идет
только один раз при нажатии на кнопку. Вероятность того, что она пройдет
правильно с первого раза, не очень высока.

Data word:


Пример: адрес "00110111" и команда "00011010"
кодируются как "00110111'11001000'00011010'11100101".

Этот стандарт используют HITACHI, NOKIA, AIWA, AKAI, AverMedia.

Creative RM-900 (от SoundBlaster Live Platinum) повторяет первую посылку 2 раза,
кроме того первый байт адреса равен C1h, а второй 44h, то есть между первым и
вторым байтом нет ничего общего. Для совместимости первые 2 байта адреса не
сравниваются и используются оба.

RECS 80 / RC-4

Модуляция Pulse-distance. Сначала идут старшие биты, потом младшие.
На 100% этому стандарту не соответствует ничего. Например в дистанционках
JVC использован этот стандарт с сильными отклонениями (расхождения по
длительностям, Toggle bits никогда не меняются, адресных битов 6,
а командных 8 вместо 4 и 6 соответственно).

Используется JVC.

SONY / Panasonic

Модуляция Pulse-length. Сначала идут младшие биты, потом старшие.
В начале посылки есть длинный стартовый импульс. До 20 бит данных.

В плагинах DCD и sndRemote при декодировании сигнала получается 28-битный идентификатор
вида 0FAAAACC, где F - флаг определяющий модуляцию, A - адрес, C - команда.
Исключение составляет SONY, где 24 младших бита определяют просто код команды.

AverMedia TVPhone98 w/VCR

JVC HR-J727MS

SAMSUNG CK-6202WTR

SONY RM-SR130

SONY RM-836

CREATIVE RM-900

Pioneer CU-PD046 (CD Player Pioneer PD-203)

TV Tuner Tekram M205