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

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

Собственно, в чем заключался тот самый вброс: все кто учился в школе, наверное помнят про дуализм природы света, и про то, что одной из сторон его является представление о свете как о волне. Волны света принадлежат определенному диапазону частот, причем каждому оттенку видимого спектра соответствует некоторая длина волны. С одной стороны, этот диапазон непрерывен. С другой стороны, доказанный факт, что человеческий глаз непосредственно воспринимает только три частоты, а остальные цвета добираются до восприятия как комбинация из двух или трех компонентов, из которых мозг «додумывает» исходный оттенок цвета. Как в мониторе, ставим три лампочки красного, зеленого и синего цветов, задаем требуемую интенсивность компонентов и получаем пиксель.

Теперь следим за руками: если звук — это тоже волна, и разной частотой кодируется разная высота звука, наблюдается ли в восприятии звука тот же эффект? Можно ли разделить набор воспринимаемых частот, на те, которые снимаются одним «датчиком», и те, которые воспринимаются за счет «комбинации»?

Предупреждаю сразу, морали под катом не будет, но если интересны рассуждения по поводу опровержения вбросов…

… то рассуждений эта незамысловатая идея породила массу.

Прямо не отходя от кофемашины начали сыпаться аргументы за и против. Основной аргумент «за» продиктован красотой аналогии. У отдельных личностей встречается так называемый цветной слух, явление плохо изученное, но определенно навевающее мысли о возможной схожести механизмов восприятия.

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

Встретившийся среди нас музыкант-любитель подтвердил, что есть такие музыкальные интервалы, в которых явно слышатся два звука, а есть те, в которых услышать два звука на порядок сложнее. Убедиться не смогли, за отсутствием музыкального слуха у некоторых присутствующих.
Встретившийся среди нас же бывший художник рассказал, что желтой, розовой и голубой краской можно, конечно, смешать любой цвет, но нужен именно определенный оттенок красок, чем дальше он от идеального — тем грязнее получается результирующий цвет в смешении (CMYK же, по сути, инвертированная RGB, разве нет?).

Основное возражение против: звук — продольная волна, а свет — поперечная. Это может сильно отразиться на осуществимости того самого складывания, и к тому же указывать на все-таки разные подходы к восприятию того и другого организмом.

Второе возражение, не менее сильное — возможность транспонирования музыки в другие тональности. Можно повысить/понизить все ноты на полтона, например, и результат не сильно будет отличаться в восприятии. Для людей без абсолютного слуха и вовсе не будет разницы.

Но любимая тональность в массах все равно ля-минор!

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

Собственно, к делу.


Как говорится, что думать, надо прыгать.

Попробуем оттолкнуться от аналогии с красками. С одним цветом — или звуком — ничего не понятно, но если смешать два — по результату можно увидеть — или услышать — достаточно ли «чистыми» были исходные компоненты. Если будет похоже на «простую» волну некоторой частоты — мы нашли сразу две искомые компоненты. Если нет — как минимум одна из них «грязная». Диапазон слышимых частот от 20 до 40 000 Гц, за его пределами что-то с чем-то складывать явно смысла нет.

Второй вопрос: как должен выглядеть один набор тестов? Если мы берем две частоты, то — как в случае с цветом — наверное логично попробовать сложить их в разных пропорциях амплитуды. Первый и последний звуки — чистые для складываемых частот, в середине — в пропорции 50 на 50, и по паре вариантов между центром и серединой. То есть, надо где-то 7 шагов, по секунде каждый. Плюс секунду на перерыв между тестами.

В каждом наборе мы складываем по несколько частот, чтобы из набора вариантов подобрать наиболее «похожий на правду», но при этом длительность прослушивания всего набора не должна быть больше, скажем 10 минут, чтобы можно было сделать паузу, оценить ущерб, нанесенный психике, сделать вывод о том, есть ли что-то интересное в наборе, подумать о том, хотим ли мы продолжать или на сегодня хватит.

Считаем. Общую продолжительность набора делим на длительность прослушивания пары частот: (10 минут x 60) / (7 секунд + 1 секунда) = 75. Так как измерений у нас два, и мы считаем что наборы у нас «квадратные», возьмем квадратный корень от 75 получим примерно 8,66. Для простоты возьмем 8 шагов по каждому из измерений.

Теперь подберем дискретизацию: поймем на сколько проверяемых точек делить исходный диапазон. Все-таки если явление наблюдается, логично предположить определенную «гладкость». При приближении к искомой «точке» результат будет все больше похож на правду, пока мы не услышим (если услышим) в комбинации двух разных звуков один звук «новой» частоты. Для ориентира возмьмем таблицу с высотами нот, благо их полно в свободном доступе.

Полтона — можно ориентироваться на этот интервал как субъективный показатель чувствительности (хороший музыкант порой слышит и половину от этого интервала и четверть, но «простым смертным» и полтона это слишком близко) — в абсолютной разнице частот тем больше, чем выше звук. Если около 40Гц речь идет о единицах герц между двумя полутонами, то около 400Гц — о десятках, а около 4000Гц — о сотнях.

Хорошо, будем считать ширину шага в тестовом наборе в зависимости от частоты первого элемента. Для простоты возьмем линейную зависимость: длина шага = частота начала * 0.005

Теперь посчитаем количество тестовых наборов. Мы знаем размер набора по кажому измерению, знаем диапазон частот измерения и коэффициент ширины шага в нем — 0.005. Пишем нехитрый алгоритм, запускаем, получаем ответ: 194. Напоминаю, это по каждому измерению. Так как порядок при сложении волн не важен, вместо простого возведения в квадрат результирующее количество наборов считаем как: (194 * (194 — 1)) / 2 = 18721. Длительность прослушивания набора: 64 * 8 = 512 секунд.

18721 * 512 = 9585152 секунд = 159752 минут = 2662 часов = 111 суток

Отмотали назад, мы что, спать совсем не собираемся? Если поделим на 8 часов в сутках а не на 24, получим примерно 333 суток. Где-то год. Нда.

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

При чем тут crowd-research


Однако сдаваться просто так не хотелось. Если задача, в общем-то, делится на части, почему бы не разделить ее на некоторое число участников и решить быстрее? Технологии сегодня вполне позволяют делиться результатами своих наблюдений быстро и без лишних усилий.

Итак, нам нужен интерфейс, автоматически перебирающий и проигрывающий тестовый набор. В нем должна быть возможность перемещения по отдельным тестам, возможность отметить интересные точки, повторить еще раз проигрывание конкретного теста. Кроме этого, нужен «опорный звук». То есть тест той же длительности, но в нем будут «чистые» волны, с разными частотами в диапазоне от первой частоты теста до второй. А можно еще и «нарисовать» волну, чтобы изучать явление не только на слух, но и визуально.



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

Кроме того нужен интерфейс для просмотра общей базы данных и выбора набора тестов «на сегодня». Основное, что мы хотим увидеть — проверялся ли какой-то квадрат. И если где-то нашли что-то интересное — прочитать в комментариях, на что именно это было похоже. Примерно так:



Под эту задачу неспешно ведется проект на гитхабе.

На Java, чтобы в перспективе не было проблем с переносимостью на другие платформы. На Spring — потому что почему бы и нет. Под IDEA — потому что удобная же вещь, в самом деле. В плане: организовать это именно как клиент-сервер, с дополнительными (нечто на скриншотах пока сделано на Swing под Ubuntu) вариантами клиентов в виде web-приложения и android-приложения. Если кто-то — чем леший не шутит — хочет помочь советом или пул-реквестом, кто я такой чтобы ему мешать.

Вместо заключения предлагаю обсудить в комментариях перспективу формата «исследований толпой». Если успешно удается собирать деньги на производство устройства, которое много людей захотело, почему бы так же не собирать отдельные факты для формирования ответа на вопрос, который многих людей заинтересовал? Возможно, стоит распространить такой формат исследований шире?