Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pattern.hpp File Reference
#include <pulp/music/detail/random_range.hpp>
#include <array>
#include <compare>
#include <cstddef>
#include <cstdint>
#include <optional>
#include <span>

Go to the source code of this file.

Classes

class  pulp::music::BinaryPattern< MaxSteps >
struct  pulp::music::PatternResult< MaxSteps >
struct  pulp::music::EuclideanPatternRecipe
class  pulp::music::PatternWalker< MaxSteps >
struct  pulp::music::MutationChance
struct  pulp::music::ShiftRegisterResult< MaxSteps >

Namespaces

namespace  pulp
namespace  pulp::music

Enumerations

enum class  pulp::music::PatternError : std::uint8_t {
  pulp::music::none = 0 , pulp::music::empty_pattern , pulp::music::capacity_exceeded , pulp::music::pulses_exceed_steps ,
  pulp::music::invalid_probability , pulp::music::invalid_mode , pulp::music::unsupported_recipe_version
}
enum class  pulp::music::PatternWalkerMode : std::uint8_t { pulp::music::forward = 0 , pulp::music::reverse , pulp::music::ping_pong , pulp::music::random }
enum class  pulp::music::CellularBoundary : std::uint8_t { pulp::music::fixed_off = 0 , pulp::music::wrap }

Functions

template<std::size_t MaxSteps = 64>
constexpr PatternResult< MaxSteps > pulp::music::euclidean_pattern (std::size_t steps, std::size_t pulses, std::int64_t rotation=0) noexcept
template<std::size_t MaxSteps = 64>
constexpr PatternResult< MaxSteps > pulp::music::materialize_pattern (EuclideanPatternRecipe recipe) noexcept
template<std::size_t MaxSteps = 64>
constexpr PatternResult< MaxSteps > pulp::music::cellular_evolve (const BinaryPattern< MaxSteps > &input, std::uint8_t rule, CellularBoundary boundary=CellularBoundary::wrap) noexcept
template<std::size_t MaxSteps = 64>
constexpr ShiftRegisterResult< MaxSteps > pulp::music::looping_shift_register (const BinaryPattern< MaxSteps > &input, MutationChance chance, std::uint64_t random_word) noexcept

Variables

constexpr std::uint16_t pulp::music::euclidean_pattern_recipe_version = 1