Στοιχεῖα - двойной евклидов секвенсор. Он алгоритмически генерирует ритмические последовательности из входного триггерного сигнала.
Название (Στοιχεῖα, Stoicheia или Elements) происходит от названия книги Евклида «Элементы», в которой алгоритм был впервые описан.
ИсторияЭто было давным-давно. В третьем веке до нашей эры греческий математик Евклид описал способ определения наибольшего общего знаменателя любых двух целых чисел. Как оказалось, его метод такой же, как и тот, который люди использовали для разделения ударов на ритмы. По всему земному шару, от древних времен до наших дней; ритмы, которые пронизывают человеческое существование, могут быть созданы с использованием того же простого алгоритма.
Культурный и исторический диапазон, охватываемый этими ритмами, просто захватывает дух. От бразильской самбы и босса-новы до болгарских народных танцев, персидских барабанных паттернов XIII века и сложных полиритмов Западной и Центральной Африки.
Конечно, работы Евклида можно применить не только к ритмике. узоры. Ученый по имени Бьорклунд применил его к ядерной физике, чтобы оптимизировать работу ускорителя частиц SNS. Он также опубликовал свою работу с доказательством эффективности своего метода. Затем, в 2005 году, профессор компьютерных наук по имени Годфрид Туссен соединил точки и представил в исследовательской работе связь между творчеством Евклида, Бьорклунда и музыкальными ритмами.
Мы основали нашу реализацию на работе Туссен, Бьорклунд и Евклид.
Подключите левый выход секвенции (второй разъем снизу слева) к входу огибающей, управляющему источником звука, или чему-то вроде триггерного входа модуля ударных.
Убедитесь, что средний переключатель находится в центральном положении, а левый переключатель - в верхнем положении. Теперь подключите LFO к одному из двух тактовых входов (нижний левый или нижний правый разъем), и вы должны увидеть, что центральный светодиод загорается при получении сигнала. Если LFO работает очень быстро, индикатор будет тускло гореть - уменьшите (или увеличьте) скорость до того места, где он мигает в обычном темпе.
Когда получен входной сигнал синхронизации, центральный светодиод загорится. Когда последовательность запускает выходной сигнал затвора, соответствующий ей светодиод загорается.
Поверните все ручки в левом столбце в их центральные положения. Вы должны знать, что у вас есть последовательность длиной 8 с 4 заполнениями (50% длины шага). Это означает, что каждая вторая доля будет «включена», и вы должны увидеть, как светодиодный индикатор секвенсора будет мигать на каждой второй входной частоте. Следовательно, выход последовательности должен генерировать стробирующий сигнал, запускающий модуль, к которому вы его подключили.
Если вы поверните нижнюю левую ручку против часовой стрелки, вы услышите все меньше «включенных» ударов. в последовательности до тех пор, пока не будет включаться только одно из 8 (длина последовательности) ударов. При повороте по часовой стрелке последовательность начнет заполнять все больше и больше ударов, пока не включатся все доли.
Теперь подключите другую огибающую или источник звука к другой последовательности и повторите!
Каждая последовательность управляется колонкой из трех ручек и переключателя. Входными параметрами алгоритма являются длина последовательности и заполнение.
Длина последовательности, измеряемая в тактах или ударах, регулируется второй ручкой сверху. Диапазон составляет от 1 (до упора против часовой стрелки) до 16 (до упора по часовой стрелке), при этом 8 в центре.
Число вставок или включенных долей устанавливается третьей ручкой. В крайнем положении против часовой стрелки устанавливается значение 1. В центральном положении каждая вторая доля будет включена, или 50%. Полностью по часовой стрелке устанавливает каждый бит "включенным", другими словами: количество сбивок равно длине секвенции.
Верхняя ручка регулирует, с какой доли начинается секвенция - и, следовательно, сбрасывается на. В его центральном положении последовательность начнется с первого шага. Начальное положение можно изменить, повернув верхнюю ручку влево или вправо: это приведет к повороту последовательности влево или вправо соответственно.
Режим триггераЕсли переключатель находится в центральном положении, последовательность будет выключено. Чтобы включить его (режим триггера), нажмите переключатель вверх. В режиме триггера последовательность переключает свой выходной сигнал на высокий уровень при приеме нарастающего фронта синхросигнала (переход от низкого к высокому), при условии, что следующий такт в последовательности «включен». Когда будет получен задний фронт тактового сигнала (переход от высокого к низкому), выход будет переключен обратно на низкий уровень (0 В). Это означает, что выходные триггерные сигналы имеют такую же ширину импульса, что и входные тактовые импульсы. Таким образом, если часы генерируются с очень короткими импульсами, выходные триггеры будут одинаково короткими. Как следствие, широтно-импульсная модуляция входного синхросигнала будет проходить через секвенсор.
Чередующийся режимНажатие переключателя вниз из его центрального (выключенного) положения переводит последовательность в чередующийся режим. В режиме чередования выходной сигнал становится высоким на первой «включенной» доле и остается высоким до следующей «включенной» доли. Другими словами, выход переключается при каждой «включенной» доле в последовательности. Переходы вверх и вниз происходят по нарастающему фронту входной тактовой частоты.
ResetЦентральное гнездо можно использовать для подключения триггера сброса. Когда получен сброс, обе последовательности перезапускаются с их первой позиции. При этом учитывается настройка поворота: если последовательности A и B имеют разные вращения, они останутся смещенными относительно друг друга. Сброс также можно запустить вручную, нажав на мгновение центральный переключатель вверх.
Режим привязкиЦентральный переключатель можно нажать вниз, что включает режим цепочки. В цепочке две последовательности повторяются одна за другой, а не одновременно. Это очень полезно для создания более сложных шаблонов. В связанном режиме выход объединенной последовательности доступен на обоих выходных разъемах. При запуске первая последовательность будет воспроизводиться до заданной длины. Затем он остановится, и вторая последовательность будет воспроизведена до конца, после чего снова запустится первая. Например, установка первой последовательности на длину 12, а второй на длину 4 приведет к объединенной 16-шаговой последовательности. Сигнал сброса в цепном режиме переводит комбинированную последовательность в начало первого шаблона. Вращение работает как в штатном режиме. Цепной режим также можно использовать для создания последовательностей длиной более 16 шагов.
ПаттерныПростую последовательность ударов можно записать как комбинацию точек и крестиков. Например ... x ... x будет означать последовательность из 8 шагов с двумя тактами. Кроме того, мы можем кратко записать соответствующий евклидов шаблон как E (2,8). Это просто означает 8 шагов с 2 заливками; точное распределение будет определяться алгоритмом Евклида. С помощью этого мы можем записать, что представляют собой некоторые из этих шаблонов:
(Как описано Годфридом Т. Туссен в этой блестящей статье)
ВзломΣτοιχεῖα управляется микроконтроллером, который связывает модульные уровни сигналов через дискретные транзисторные сети. Он функционирует, отвечая на входящие сигналы запуска, используя встроенные аппаратные прерывания MCU. Последовательности шагов предварительно вычисляются в цикле главного процессора и обновляются при повороте регуляторов, что означает, что прерывания могут обрабатываться очень эффективно. Это приводит к очень низкой задержке включения/выключения.
Эффективный дизайн, надежный код и хорошее использование аппаратных прерываний означает, что Stoicheia может хорошо обрабатывать тактовые сигналы до слышимых частот.
Схема Плата имеет 6-контактный разъем, который выводит последовательный порт и контакты сброса MCU. Он соединяется с последовательным кабелем FTDI USB TTL. Он совместим с уровнями TTL 3,3 В и 5 В.
MCU - это AVR ATMega168. Он загружается с помощью загрузчика Arduino и может быть запрограммирован как Arduino Diecimila. Прошивка зависит только от avr-gcc и от Arduino/Wiring для дополнительного последовательного интерфейса отладки.
Технические характеристикиРазмеры
Мощность
Импеданс
Диапазон напряжения
Στοιχεῖα - это оборудование с открытым исходным кодом и открытое оборудование, опубликованное под лицензией Gnu GPL.
Весь исходный код общедоступен на github.
Пожалуйста, присылайте нам свои патчи как запросы на вытягивание на github.
Последняя версия принципиальной схемы всегда здесь.
Στοιχεῖα is a dual Euclidean Sequencer. It algorithmically generates rhythmic sequences from an input trigger signal.
The name (Στοιχεῖα, Stoicheia, or Elements) comes from the title of Euclid’s book Elements in which the algorithm was first described.
HistoryThis goes way back. In the third century BCE, the Greek mathematician Euclid described a way to determine the largest common denominator of any two integers. As it turns out, his method is the same as what people have used to divide beats into rhythms. Across the globe, from ancient to modern times; the rhythms that pervade human existence can be generated using the same, simple algorithm.
The cultural and historical range covered by these rhythms is nothing short of breathtaking. From Brazilian Samba and Bossa-Nova, to Bulgarian folk dances, thirteenth century Persian drum patterns, and complex poly-rhythms of West and Central Africa.
Of course, Euclid’s work can be applied to more than just rhythmic patterns. A scientist named Bjorklund applied it to nuclear physics, in order to optimise the operation of the SNS particle accelerator. He also published his work with a proof of the efficiency of his method. Then, in 2005, a Professor of Computer Science called Godfried Toussaint linked up the dots and presented in a research paper the connection between the work of Euclid, Bjorklund, and musical rhythms.
We have based our implementation on the work of Toussaint, Bjorklund and Euclid.
Connect the left sequence output (second jack from the bottom left) to an envelope gate input controlling a sound source, or something like the trigger input of a drum module.
Make sure the middle switch is in the centre position, and the left switch is in the up position. Now connect an LFO to one of the two clock inputs (bottom left or bottom right jack) and you should see the centre LED light up when a signal is received. If the LFO is very fast, the LED will appear to be dimly on – turn the speed down (or up) to where it is flashing at a regular pace.
When an input clock signal is received, the centre LED will light up. When a sequence triggers an output gate signal, its corresponding LED will light up.
Turn all the knobs in the left column to their centre positions. You should know have a sequence of length 8 with 4 fills (50% of the step length). This means that every other beat will be ‘on’, and you should see the sequencer LED flash on every second input clock. Consequently, the sequence output should generate a gate signal, triggering the module you have connected it to.
If you turn the bottom left knob in the anti-clockwise direction, you will hear progressively fewer ‘on’ beats in the sequence until only one in 8 (the sequence length) beats is on. Turning in the clockwise direction, the sequence will start filling in more and more beats, until every beat is on.
Now connect a different envelope or sound source to the other sequence and repeat!
InstructionsEach sequence is controlled by a column of three knobs and a switch. The input parameters to the algorithm are sequence length and fills.
The length of the sequence, measured in clocks or beats, is controlled by the second knob from the top. The range goes from 1 (fully counter clockwise) to 16 (fully clockwise), with 8 in the centre position.
The number of fills, or on-beats, is set by the third knob. In fully counter-clockwise position, this is set to 1. Centre position will set every other beat ‘on’, or 50% . Fully clockwise sets every beat ‘on’, in other words: the number of fills are equal to the sequence length.
The top knob adjusts which beat the sequence starts on – and hence resets to. In its centre position, the sequence will start on its first step. The start position can be changed by turning the top knob left or right: this will have the effect of rotating the sequence left or right, respectively.
Trigger ModeWith its switch in the centre position, the sequence is turned off. To turn it on (Trigger Mode), push the switch up. In trigger mode, the sequence will switch its output high when receiving a clock signal rising edge (low to high transition), provided the next beat in the sequence is ‘on’. When the clock signal falling edge is received (high to low transition), the output will be switched back to low (0v). This means that the output trigger signals have the same pulse width as the input clock. So if the clocks are generated with very short pulses, the output triggers will be equally short. As a consequence, a pulse width modulation on the input clock signal will be passed on through the sequencer.
Alternating ModePushing the switch down from its centre (off) position puts the sequence into Alternating Mode. In alternating mode, the output goes high on the first ‘on’ beat, and remains high until the next ‘on’ beat. In other words, the output toggles on every ‘on’ beat in the sequence. The up and down transitions occur on the rising edge of the input clock.
ResetThe centre jack can be used to connect a reset trigger. When a reset is received, both sequences restart at their first position. This takes into consideration the rotation setting: If sequence A and B have different rotations, they will remain offset in respect to each other. Reset can also be manually triggered by pushing the centre switch momentarily upwards.
Chained ModeThe centre switch can be pushed down, which enables Chained mode. When chained, the two sequences are repeated one after the other, instead of concurrently. This is very useful to build up more complex patterns. In chained mode, the output of the combined sequence is available at both output jacks. On startup, the first sequence will play through to its determined length. It will then stop, and the second sequence will play through to the end, at which point the first one starts up again. For example, setting the first sequence to length 12, and the second to length 4, will result in a combined 16-step sequence. A reset signal in Chained mode brings the combined sequence to the start of the first pattern. Rotation works as in regular mode. Chained mode can also be used to create sequences longer than 16 steps.
PatternsA simple beat sequence can be written as a combination of dots and crosses. For example ...x...x would mean a sequence of 8 steps, with two on-beats. Furthermore, we can write the corresponding Euclidean pattern concisely as E(2,8). This simply means 8 steps with 2 fills; the exact distribution will be determined by the Euclidean algorithm. With this, we can write out what some of those patterns are:
(As described by Godfried T. T