К содержанию
КОНСТРУКТ

Продукт · браузер

Tone Setter

Держит гармонию, пока вы играете поверх неё. Набираете аккорд — до семи тонов сразу, — задаёте темп и длину, и он звучит сам, столько, сколько нужно.

Открыть Tone Setter Все продукты

Что это

Задача, из которой прибор вырос, простая: чтобы подобрать рифф, под ним должно что-то звучать. Обычно это либо записанный луп, который на ходу не поменять, либо второй человек. Tone Setter занимает это место: он держит выбранную гармонию сколько угодно долго и меняет её по команде, а не по записи.

Это не библиотека сэмплов и не аранжировщик. Он не пишет за вас партию и ничего не предлагает — он звучит ровно тем, что набрано, и не останавливается. Всё остальное играете сами.

Считается всё в браузере, на Web Audio через Tone.js. Сервера нет, звук никуда не уходит, записать он тоже ничего не может. Интерфейс собран на React и TypeScript.

Прибор живёт страницей внутри набора AudioViz — прикладных браузерных инструментов, которые делаются как пульты, а не как веб-страницы. Ставить нечего, сборок под настольную систему и телефон нет.

Как набирается гармония

Единица работы — секция: набор одновременно звучащих тонов, от одного до семи, у каждого своя громкость. Гармония набирается двумя способами, и выбор между ними решает, что произойдёт, когда понадобится сдвинуть всё целиком.

Интервалов тринадцать, от унисона до октавы. Десять заготовок аккордов — Power, Major, Minor, Sus2, Sus4, Dim, Aug, Dom7, Maj7, Min7 — расставляют интервалы одним нажатием и сами переводят секцию в относительный режим. Транспонирование сдвигает всё звучащее до четырёх октав в любую сторону, не трогая набранное.

Тембры и секвенсор

Тембров шесть. Четыре осциллятора — синус, треугольник, квадрат, пила — считаются на месте и меняют высоту мгновенно. Два сэмплерных, струнные и медь, собраны из записей скрипки и трубы и подгружаются из открытого набора tonejs-instruments в фоне; пока сэмплы не пришли, тон звучит синусом. Сэмплерный голос заводится свой на каждый тон: один общий сэмплер не умеет держать разные высоты одновременно и стягивает весь аккорд в одну ноту.

Секций до четырёх. У каждой свои тоны, своя гармония, свой тембр и своя длина в щелчках — от одного до тридцати двух, по умолчанию восемь. На воспроизведении секции идут по кругу, так что заготовка из двух-трёх аккордов крутится сама и под неё можно играть, не трогая экран. Темп от 40 до 240 ударов в минуту, по умолчанию 120.

Метроном отдельный: акцент на первой доле — 1760 герц, остальные доли — 1100 герц на шесть децибел тише, размер 4/4, громкость своя. По умолчанию выключен.

Почему это не щёлкает

Половина работы в таком приборе — не выдать звук, а не испортить его на стыке.

Смена тембра или секции идёт кроссфейдом в пятнадцать миллисекунд: старый источник гаснет на своём отдельном узле громкости, новый сразу стартует на общем. Без этого каждое переключение давало бы щелчок, а через паузу — провал громкости.

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

Громкость с линейной шкалы от нуля до ста переводится в децибелы. Web Audio работает по логарифмической шкале, и линейное значение, поданное напрямую, делает ползунок неравномерным на слух: половина хода уходит впустую.

На выходе стоит лимитер на минус три децибела — семь тонов, сложенных в унисон, уходят в перегруз быстрее, чем кажется. С того же выхода снимается волна на 2048 отсчётов и рисуется на холсте: видно, что звучит и как складываются фазы.

Как открыть

Нужен любой современный браузер — прибор опирается на Web Audio, отдельных требований к видеокарте у него нет.

Звук поднимается только по нажатию: браузеры не дают запустить аудио без действия человека, и звуковой контекст открывается на первом нажатии кнопки воспроизведения. Тишина до него — не поломка.

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

Открыть Tone Setter Все продукты Поддержка