Jam Guides · sonargale

sonargale

Аудіовізуальна іграшка на п'ять хвилин, у браузері телефона. Звук і картинка народжуються тут-таки — жодних семплів, жодних проєктів. Гайд по всьому, що там є, і по текстовій консолі.

Що це взагалі

Відкривається за посиланням і одразу грає. Немає файлів, немає збереження проєкту, немає таймлайну. Є стійка: одна основа (двигун, що виробляє і звук, і картинку — вони з одного джерела, не «візуалізація під музику») плюс три гнізда для ефектів. Плюс вісім ручок, полотно, по якому грають пальцем, і крихітна текстова мова, якщо захочеться керувати ручками формулами.

Все зберігається саме собою в браузері. Закрив вкладку — повернувся до того самого.

Перші тридцять секунд. Тицьни tap → звук пішов. Торкнись полотна кілька разів у різних місцях по висоті. Тицьни першу плитку згори — основа зміниться. Тицьни другу-третю-четверту — накинуться ефекти. Оце і є вся модель.

Панель управління

Полотно (воно ж інструмент)

Дотик будь-де: звучить нота, і крокова сітка починається заново з цього моменту. Висота ноти — це висота дотику на екрані, від низу до верху три октави, вкладені в обрану гаму.

Головне: не відпускай і веди пальцем. Ноти переходять одна в одну зі ковзанням висоти — кожна зі своєю атакою, але без стрибка. Веди туди-сюди, і воно грає як портаменто, а не як натиснуті клавіші.

Що видно на полотні: тьмяні горизонтальні лінії — усі ноти обраної гами. Яскрава смужка їде за пальцем, поки він притиснутий, — це та сама висота, яку чуєш. Найяскравіша з тьмяних лінія — нота, на якій ти зупинився.

І вона не одноразова: ця нота стає основною. Мелодійні основи (ґратка, пульсар, підкладка) переносять свій малюнок у цю тональність і лишаються там, поки не торкнешся знову. Тобто дотик перебудовує те, що вже грає, а не просто піпікає зверху.

Чотири плитки

Перша — основа. Три наступні — гнізда ефектів, у порядку обробки.

ЖестНа основіНа гнізді
дотикнаступна основанаступний ефект
утриманняпопередня основаприбрати ефект

Порядок гнізд має значення: drive перед space — це підсилений звук у залі; space перед drive — це підсилений зал.

Ручки

Два ряди по чотири. Колонка ручок належить плитці над нею. Верхня ручка завжди «наскільки» (на нулі ефекту наче й немає), нижня — «яким чином». Крутиться пальцем угору-вниз.

Третій ряд — спільні на все:

РучкаЩо робить
ТЕМПмножник темпу основи, ×0.5…×2. Швидкий дотик по ній кілька разів у такт — темп підлаштується під твій палець
СВІНҐзсуває слабкі долі
ГУЧНІСТЬзагальний рівень
НАХИЛодна ручка тембру: вліво — тепліше (низ угору, повітря вниз), вправо — яскравіше. Картинка теплішає і холоднішає разом зі звуком

Смуга кольору

Завжди зверху екрана, поверх усього. Тягни в будь-якій точці — не тільки за кружечок. Крутить колір картинки й одночасно ганяє три резонансні піки по спектру звуку. Довге утримання скидає в нуль (нуль — це справжній обхід, а не «майже нічого»).

Пресети

Чотири комірки. Дотик — завантажити, утримання — записати туди поточний стан (стійка + всі спільні ручки). На чистому пристрої там уже лежать чотири зібрані стійки — щоб було з чого починати, а не з тиші.

Нижній ряд

{ }консоль — див. наступний розділ
гіроскоп: нахил телефона крутить дві ручки. З'являється, лише якщо датчик є; на iOS перший дотик питає дозвіл
схрещування: екран ділиться начетверо, у кожній чверті — варіація того, що грало. Обираєш одну — від неї народжуються наступні чотири. Спосіб знаходити те, що сам би не набрав
запис: відео з полотна разом зі звуком, віддається в меню поділитися
спільна кімната: копіює посилання. Хто відкриє — крутить ті самі ручки в реальному часі
гама (лад, до якого прив'язані всі ноти) і довідка — жести й консоль, тими самими словами, що тут

Гама — налаштування пристрою, а не стійки: у спільній кімнаті кожен може грати у своєму ладі, і це не конфліктує.

Консоль

Кнопка { } відкриває однорядкове поле. Це крихітна мова, яка крутить ручки замість тебе — наново кожен кадр. Не JavaScript: свого коду вона не виконує й вийти за межі ручок, гнізд і нот не може. Перезбирається через 300 мс після останньої літери, помилка — червоним під полем, і поки помилка не виправлена, працює попередній робочий варіант.

p0 = sin(t/2)*.5+.5

Ось і все, що потрібно, щоб почати: перша ручка тепер дихає з періодом близько тринадцяти секунд.

Писати можна в чотири види цілей: ручки стійки p0p7, спільні g0g4, гнізда s0s2 і note — ступінь обраної гами, що спрацьовує раз на крок. Читати — час, позицію в сітці, гучність і чотири смуги спектра. Повний перелік — у вкладці «Довідка».

# картинка й звук реагують на власний низ і повітря
p4 = b0
p5 = lerp(.2, .9, b3)
g4 = fract(t/24)

Найцікавіше в цій мові — note, бо це єдиний спосіб отримати від sonargale послідовність, яку ти справді задав, а не яку видала основа:

# чотири ступені гами по колу
note = mod(floor(s), 4)
# ступінь повзе вгору й падає назад раз на вісім тактів
note = floor(saw(s/32) * 7)

Від'ємне значення — пауза. Тому будь-який вираз, що іноді йде нижче нуля, дає ритмічні дірки задарма.

Порожнє поле вимикає консоль і повертає ручки тобі. Поки консоль пише в ручку, крутити її пальцем марно — наступний кадр перезапише. Під час схрещування консоль мовчить: на екрані чотири стійки, а писати їй нема в яку.

Прийоми джему

Знайти звук, а не збудувати його

Швидший шлях, ніж підбирати ефекти по одному: візьми будь-який пресет, натисни , обери ту чверть, яка більше подобається, і ще раз, і ще. Через п'ять-шість поколінь опиняєшся там, куди свідомо не пішов би. Далі — вже руками ручки.

Грати мелодію поверх машини

Постав lattice або pad основою, дай їй іти, і веди пальцем по полотну повільно. Оскільки дотик переносить тональність усього, що грає, це не соло поверх бітів — це модуляція всієї фактури пальцем. Ковзання між нотами робить перехід тональності чутним, а не клацаючим.

Один ефект — це часто краще, ніж три

Три гнізда спокушають забити всі. Але верхні ручки перемножуються: echo+space+veil на середині — це вже каша, де нічого не розрізниш. Робочий підхід: один ефект на максимум, два на нулі, і крути нижню ручку — «яким чином» дає більший розкид, ніж «наскільки».

Темп ловити пальцем, а не ручкою

Якщо треба потрапити в щось зовнішнє (пластинка, метроном, інша людина) — не крути ТЕМП, а постукай по ній чотири рази в такт. Ручкою в чужий темп не потрапиш ніколи.

Записувати одразу

Найкращі тридцять секунд трапляються, коли запис вимкнено. Стан зберігається сам, але звучання — ні: та сама стійка з тими самими ручками звучить інакше залежно від того, де ти торкався полотна. Побачив, що пішло добре — тисни одразу.

Удвох

Кімната () синхронізує стійку й ручки, але не гаму й не дотики по полотну. Робочий поділ: один тримає стійку і ручки, другий грає полотном у своєму ладі. Двоє, що одночасно крутять ту саму ручку, — це просто боротьба, і чути її як смикання.