Случайные модификаторы 🌀 Bulka

Случайные модификаторы

Эти методы добавляют случайное поведение к вашим Patterns.

choose

Случайно выбирает из заданного списка элементов.

  • xs (any): значения / patterns для выбора.
note("c2 g2!2 d2 f1").s(choose("sine", "triangle", "bd:6"))

wchoose

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

  • pairs (any): массивы значения и веса
note("c2 g2!2 d2 f1").s(wchoose(["sine",10], ["triangle",1], ["bd:6",1]))

chooseCycles

Synonyms: randcat

Выбирает один из элементов случайным образом каждый cycle.

    chooseCycles("bd", "hh", "sd").s().fast(8)
    s("bd | hh | sd").fast(8)

    wchooseCycles

    Synonyms: wrandcat

    Выбирает один из элементов случайным образом каждый cycle, задавая вероятность каждому элементу

      wchooseCycles(["bd",10], ["hh",1], ["sd",1]).s().fast(8)
      wchooseCycles(["c c c",5], ["a a a",3], ["f f f",1]).fast(4).note()
      // Вероятность сама может быть pattern
      wchooseCycles(["bd(3,8)","<5 0>"], ["hh hh hh",3]).fast(4).s()

      degradeBy

      Случайно удаляет события из pattern на заданную величину. 0 = 0% вероятность удаления 1 = 100% вероятность удаления

      • amount (number): число от 0 до 1
      s("hh*8").degradeBy(0.2)
      s("[hh?0.2]*8")
      //генератор beat
      s("bd").segment(16).degradeBy(.5).ribbon(16,1)

      degrade

      Случайно удаляет 50% событий из pattern. Сокращение для .degradeBy(0.5)

        s("hh*8").degrade()
        s("[hh?]*8")

        undegradeBy

        Обратное degradeBy: случайно удаляет события из pattern на заданную величину. 0 = 100% вероятность удаления 1 = 0% вероятность удаления События, которые были бы удалены degradeBy, пропускаются undegradeBy и наоборот (см. второй пример).

        • amount (number): число от 0 до 1
        s("hh*8").undegradeBy(0.2)
        s("hh*10").layer(
          x => x.degradeBy(0.2).pan(0),
          x => x.undegradeBy(0.8).pan(1)
        )

        undegrade

        Обратное degrade: случайно удаляет 50% событий из pattern. Сокращение для .undegradeBy(0.5) События, которые были бы удалены degrade, пропускаются undegrade и наоборот (см. второй пример).

          s("hh*8").undegrade()
          s("hh*10").layer(
            x => x.degrade().pan(0),
            x => x.undegrade().pan(1)
          )

          sometimesBy

          Случайно применяет заданную функцию с заданной вероятностью. Похоже на someCyclesBy

          • probability (number|Pattern): число от 0 до 1
          • function (function): преобразование для применения
          s("hh*8").sometimesBy(.4, x=>x.speed("0.5"))

          sometimes

          Применяет заданную функцию с вероятностью 50%

          • function (function): преобразование для применения
          s("hh*8").sometimes(x=>x.speed("0.5"))

          someCyclesBy

          Случайно применяет заданную функцию с заданной вероятностью на основе cycle за cycle. Похоже на sometimesBy

          • probability (number|Pattern): число от 0 до 1
          • function (function): преобразование для применения
          s("bd,hh*8").someCyclesBy(.3, x=>x.speed("0.5"))

          someCycles

          Сокращение для .someCyclesBy(0.5, fn)

            s("bd,hh*8").someCycles(x=>x.speed("0.5"))

            often

            Сокращение для .sometimesBy(0.75, fn)

              s("hh*8").often(x=>x.speed("0.5"))

              rarely

              Сокращение для .sometimesBy(0.25, fn)

                s("hh*8").rarely(x=>x.speed("0.5"))

                almostNever

                Сокращение для .sometimesBy(0.1, fn)

                  s("hh*8").almostNever(x=>x.speed("0.5"))

                  almostAlways

                  Сокращение для .sometimesBy(0.9, fn)

                    s("hh*8").almostAlways(x=>x.speed("0.5"))

                    never

                    Сокращение для .sometimesBy(0, fn) (никогда не вызывает fn)

                      s("hh*8").never(x=>x.speed("0.5"))

                      always

                      Сокращение для .sometimesBy(1, fn) (всегда вызывает fn)

                        s("hh*8").always(x=>x.speed("0.5"))

                        Далее: Условные модификаторы