Сигналы 🌀 Bulka

Непрерывные сигналы

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

saw

Пилообразный signal от 0 до 1.

    note("<c3 [eb3,g3] g2 [g3,bb3]>*8")
    .clip(saw.slow(2))
    n(saw.range(0,8).segment(8))
    .scale('C major')

    sine

    Синусоидальный signal от 0 до 1.

      n(sine.segment(16).range(0,15))
      .scale("C:minor")

      cosine

      Косинусоидальный signal от 0 до 1.

        n(stack(sine,cosine).segment(16).range(0,15))
        .scale("C:minor")

        tri

        Треугольный signal от 0 до 1.

          n(tri.segment(8).range(0,7)).scale("C:minor")

          square

          Прямоугольный signal от 0 до 1.

            n(square.segment(4).range(0,7)).scale("C:minor")

            rand

            Непрерывный pattern случайных чисел от 0 до 1.

              // случайно изменяем cutoff
              s("bd*4,hh*8").cutoff(rand.range(500,8000))

              Диапазоны от -1 до 1

              Также существуют saw2, sine2, cosine2, tri2, square2 и rand2, которые имеют диапазон от -1 до 1!

              perlin

              Генерирует непрерывный pattern шума Перлина в диапазоне 0..1.

                // случайно изменяем cutoff
                s("bd*4,hh*8").cutoff(perlin.range(500,8000))

                irand

                Непрерывный pattern случайных целых чисел от 0 до n-1.

                • n (number): максимальное значение (исключая)
                // случайно выбираем ноты scale от 0 до 7 (= от C до C)
                n(irand(8)).struct("x x*2 x x*3").scale("C:minor")

                brand

                Непрерывный pattern 0 или 1 (двоичный случайный)

                  s("hh*10").pan(brand)

                  brandBy

                  Непрерывный pattern 0 или 1 (двоичный случайный), с вероятностью того, что значение будет 1

                  • probability (number): число от 0 до 1
                  s("hh*10").pan(brandBy(0.2))

                  mouseX

                  Позиция мыши по x в диапазоне от 0 до 1.

                    n(mousex.segment(4).range(0,7)).scale("C:minor")

                    mouseY

                    Позиция мыши по y в диапазоне от 0 до 1.

                      n(mousey.segment(4).range(0,7)).scale("C:minor")

                      Далее: Random Modifiers