September 4, 2025

life-coding documentation(Tidal)  (ru)

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

воркшоп

вообще всё компится через 2 основных саппорта: .tidal ; SuperDirt.

1) запуск SuperDirt
SD должен авто запускаться после лоуда прилы SuperCollider IDE. если нет, то в окне редактора SuperCollider IDE, пишем -

'SuperDirt.start'

и запускаем код нажатием кеев Cntrl + Enter (в то время как курсор на одной линии с кодом)

2) запуск Tidal Cycles

в вашем редакторе (Pulsar, vim, VS Code, итп), создайте новый файл и сохраните его с .tidal расширением (examples.tidal). Tidal должен автоматически запуститься, после запуска и выполнения команды.

бтв вы можете просто юзать Estuary. для начала как амулятор оч удобно. но будет доступ не ко всем возможностям редактора кода.

заметки/комменты в Haskell

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

базовые паттерны

вщ овербейз вид создания звука выглядит около так:

но после 20 минут вы будете прописывать такие строки хоткееями.

вы можете остановить ЗВУК проекта, но НЕ САМ проект юзнувsilence:

вщ оверлей во всем проекте есть 2 варианта звуков, которые можно юзать вместе с базис-саундом: синты и семплы. если нужно юзнуть семпл, прописанный заранее, просто роутите до папки с ним. бэйз идёт первый в списке, но если пророутить до самого звука, с помощью : и номера, то юз будет именно он.

такж можно указать папку и сэмпл в 2 частях:

здесь s - это синоним к sound, -> d1 $ s "drum" # n 1 этот тот же паттерн

библио с семплами по умолчанию:

есть базисная библио с Dirt-Samples. в основном для написания чего-либо нужно будет импортить собственные сэмплы и роутить к ним. в Pulsar можно добавить настройки, которые загружают таб со всеми Dirt-Samples.

составьте последовательность:

чем больше в последовательности шагов, тем быстрее она выполняется:

прикольно оч, что работает именно так. это связано с тем, как Tidal обрабатывает время. cуществует универсальный цикл, который всегда работает. Tidal будет воспроизводить все звуки между речевыми знаками в одном цикле, если мы не укажем ему иного. вы также заметите, что Tidal равномерно распределяет звуки внутри цикла, что позволяет получать полиритмические структуры. можно изменять длительность цикла, используя setcps (где cps означает количество циклов в секунду) - это немного похоже на bpm (удары в минуту):

можно юзать d1, d2, d3...d9 чтобы воспроизводить несколько последовательностей одновременно:

чтобы стопнуть весь раш звуков - hush (или Cntrl+.)

можно остановить всё, изменив длину цикла на отрицательное число(главное заключить отрицательное число в скобки):

дальше запустить с положительным:

или можно использовать solo для конкретной строки:

а плагин Pulsar добавляет хоткеи:

Cntrl+1 - для мута первого паттерна

Cntrl+0 - анмутит все паттерны.

все хоткеи есть в паке самого Pulsar.

больше вариантов

можно добавлять фулл стоп или перерыв, с помощью ~:

добавлять предпоследовательность с помощью - []:

для более вариативного размера такта:

предпоследовательность в предпоследовательности

чтобы повторить паттерн - *

тож самое с предпоследовательностью

или используя / сделать обратное:

* работает ускоряя шаг, который воспроизводится. / работает обратно, замедляя.

оч помогают <> для планирования паттернов по циклам:

другие распространенные символы мини-обозначений: | - выбор случайного варианта, , - одновременное воспроизведение двух шаблонов и ! - воспроизведение шаблона.

эффекты

гласные

вщ можно юзать некст апы для изменения звучания. vowel - мейн фильтр, который может ченджить звучание - основные кодэйпы - a, e, i, o и u:

в самом проде эффекты = паттерны звуко. есть базисный нейм - паттерны контроля:

тут важно помнить, что можно юзать "<>"для планировки тейка по звукам:

такж если играться, можно добавить негласную букву(non-vowel), чтобы остановить свойства гласной(vowel):

Tidal будет авто сопоставлять звуки между друг другом:

можно потраить поменять параметры. структура воспроизведения будет идти слева:

усиление, высота тона(питч), панорама

усилиние(gain) может изменять громкость различных звуков:

скорость(speed) и нота(note) юзаются для того, чтобы задать высоту тона сэмплов. скорость(speed) влияет на скорость воспроизведения определённого тейка (напр. 2 = на октаву выше):

есть такж шаблон из параметра скорости:

up повышает тональность сэмпла на полутона (напр. 12 = выше на октаву):

панорамирование (pan) даёт возможность создавать стереоэффекты( 0 = left, 0.5 = middle, 1 = right):

дисторшн, ревёрб, делэй, фильтры

shape одна из функций, которая помогает для добавления дисторшна (но он очень сильно может искажать звук по громкости(нужна калибровка)):

делэй достигается за счет комбинации до четырех функций:

можно юзать lock 1, чтобы указать, что время, предоставляемое delaytime, указывается в циклах, а не в секундах.

все они получают паттерны:

для добавления эффекта reverb используйте функции dry, room и size:

также доступны несколько частотных фильтров: фильтр нижних частот, фильтр верхних частот, фильтр типа DJ и тд.

фильтр нижних частот:

фильтр верхних частот:

cutoff и hcutoff получают частоту в герцах точки среза. resonance и hresonance изменяются 0-1, но высокие значения резонанса могут привести к очень громкому звуку.

djf - более быстрый фильтр: он принимает число 0-1. при значениях меньше 0,5 это фильтр нижних частот, а при значениях больше 0,5 - фильтр верхних частот.

можете посмотреть тейк про эффекты

преобразование паттернов

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

медленно, быстро и поспешно

fast сжимает паттерн менее чем за один цикл. есть ещё density(это одно и то же):

hurry похожа на fast, но также применяет преобразование скорости:

доп инфу о времени, можно посмотреть во вкладке время.

реорганизация паттернов

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

можно изменить паттерн с помощью rev:

или воспроизведите его вперед и назад с помощью palindrome:

iter запускает шаблон с новой точки в каждом цикле, сдвигая его заданное количество раз, пока он не вернется в исходное положение:

every позволяет планировать преобразования или эффекты в разных циклах. пример будет воспроизводиться в два раза быстрее каждые четыре цикла:

... или вы можете запланировать эффект таким же образом, используя #:

jux (сокр. от juxtapose) берет преобразование или эффект и воспроизводит его в одной динамике, исходный паттерн воспроизводится в другой динамике:

chunk каждый раз применяет преобразование или эффект к разной части узора. если параметр равен 4, он будет проходить каждую четверть цикла.

еще больше про трансформацию

вообще можно преобразовывать более чем 1. можно объединить их вместе, используя .:

(почти) всё является паттерном, поэтому мы можем применять эти преобразования и к эффектам:

можете создать LFO на основе любого паттерна, используя fast или slow диапазон и осциллятор, например sine или saw:

по умолчанию такие осцилляторы, как sine, cosine или saw, выдают значения от 0 до 1. Этого достаточно для некоторых параметров (например, pan), но вы можете использовать range, чтобы масштабировать эти значения до любого желаемого вами диапазона.

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

здесь мы слышим, как звук постепенно меняется в течение цикла. существуют контроль управления для множества параметров, все они названы как «параметр плюс bus». в этом последнем примере segment 32 сообщает осциллятору о необходимости выбирать 32 значения в каждом цикле.


различные виды паттернов

циклический / повторяющийся

мы можем использовать n для выбора сэмплов из папки, это позволяет нам применять паттерны и там:

run - это краткий способ записи последовательных паттернов:

или

симметрия

полиметрические / полиритмические последовательности

можно воспроизвести две подпоследовательности одновременно, используя квадратные скобки (что-то типо одной большой подпоследовательности!), разделяя их запятой:

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

Евклидов ритм/Бьорклунд

если вы укажете два числа в скобках после элемента паттерна, то Tidal попытается равномерно распределить первое количество звуков по второму количеству шагов:

эту штуку можно использовать внутри одного элемента паттерна:

вы также можете добавить третий параметр, который «поворачивает» паттерн так, чтобы он начинался с другого шага:


рандом

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

often (75%) работает как sometimes (50%), но случается чаще:

irand генерирует случайное целое число до указанного числа. (например, для воспроизведения случайного сэмпла):

вы можете использовать degradeBy для удаления случайных элементов. число указывает вероятность воспроизведения сэмпла:

degrade сама по себе то же самое, что и degradeBy 0.5

взаимодействие с сэмплами

пока что мы только короткие сэплы. вот что будет происходить в длинных сэмплах:

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

число в cut определяет группу, поэтому вы можете играть с помехами в разных паттернах:

legato также обрезает сэмплы, но используя фиксированную длину:

мы также можем нарезать сэмплы для получения эффекта гранулярного синтеза:

striate похож на chop, но организует воспроизведение по-другому:

randslice разбивает сэмпл на части, а затем воспроизводит случайную часть в каждом цикле:

можно использовать loopAt для фита сэмплов к заданному количеству циклов:

можно добавлять паттерны и преобразования к этим функциям или комбинировать их для получения интересных эффектов:

больше тут - "как управлять сэмплами"

синтезаторы

до этого юзались только сэмплы, но SuperDirt также поставляется со многими синтезаторами Supercollider, такими как superpiano, supersaw или superfm, также для краткости называемыми synths.

каждый из них имеет свои собственные функции и параметры, но в целом вы можете использовать их очень похожим образом, как и сэмплы:

можно управлять внешними синтезаторами по MIDI или OSC.

разница между функциями n и note

при использовании синтезаторов функции n и note абсолютно одинаковы: вы могли заметить, что в примере выше воспроизводятся ноты C, E (на 4 полутона выше C) и G (на 7 полутонов выше C). это то же самое, что:

при использовании сэмплов n обозначает индекс файла в папке сэмплов, отсортированный по алфавиту (по возрастанию) и отсчитываемый от 0 (нуля). каждый сэмпл может соответствовать ноте, если вы засэмплировали каждую ноту инструмента. однако при использовании note сэмпл изменяется по высоте (и соответственно изменяется его длительность).:

это позволит воспроизвести первый сэмпл из папки bd в нечётных циклах и пятый сэмпл в чётных циклах. в каждом цикле сэмпл будет воспроизведен 4 раза: один раз без изменений, один раз с повышением тональности на октаву (12 полутонов), один раз на квинту (7 полутонов) и последний раз на октаву ниже.


воспроизведение нот

большая часть этой доки/гайда посвящена ритму, но Tidal Cycles также предлагает способы игры нотами, гаммами, аккордами и арпеджио.

уже известно, как играть ноты: используя функцию note или, если у вас инструмент с понотным сэмплированием, выбирая ноты с помощью функции n.

также можно записывать ноты, используя систему обозначений Western Music Theory, которая использует первые 7 букв алфавита (от A до G). например, эти два кода эквивалентны:

названия нот в tidal просто преобразуются в номера, поэтому вы можете использовать любой из методов или оба одновременно.

после названия любой ноты можно добавить s или f для обозначения sharp и respectively соответственно. 0 и c относятся к ноте C пятой октавы. после названия любой ноты можно добавить номер октавы:

также может быть полезно перемещаться по октаве с помощью клавиш |+ или |-. это будет играть на третьей октаве:

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


бб

эта работа стакает собственные наработки и наблюдения по TidalCycles + полный перевод документации на русский язык, чтобы сделать материал более доступным. в совокупности она показывает, что лайв-кодинг - это не только инструмент создания музыки, но и способ эксперимента, поиска новых звучаний и развития творческого подхода к звуку.


for supp:

GgMrVeeWdYBAj7NAA3Fp7jDUayYN86xqMZ3hqwGSRpvL (sol)

0x55352ba6e917ad7ec07bb2a8acc01c05c36c488d (evm)