Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
arpeggiator.hpp File Reference
#include <pulp/midi/detail/arpeggiator_math.hpp>
#include <pulp/midi/utility_contract.hpp>
#include <pulp/music/pitch.hpp>
#include <pulp/timebase/compiled_tempo_map.hpp>
#include <pulp/timebase/quantize.hpp>
#include <algorithm>
#include <array>
#include <cmath>
#include <compare>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <optional>

Go to the source code of this file.

Classes

struct  pulp::midi::ArpeggiatorGate
struct  pulp::midi::ArpeggiatorSpec
struct  pulp::midi::ArpeggiatorBlock
 Block timing for one sample-accurate arpeggiator call. More...
struct  pulp::midi::ArpeggiatorCapacityContract
class  pulp::midi::Arpeggiator< MaximumHeldNotes, MaximumOctaves, MaximumStepsPerBlock, MaximumOwnershipRuns >
 Fixed-capacity, sample-accurate MIDI arpeggiator. More...

Namespaces

namespace  pulp
namespace  pulp::midi
namespace  pulp::midi::arpeggiator_detail

Enumerations

enum class  pulp::midi::ArpeggiatorOrder : std::uint8_t {
  pulp::midi::Up , pulp::midi::Down , pulp::midi::UpDown , pulp::midi::AsPlayed ,
  pulp::midi::Random , pulp::midi::Chord
}
enum class  pulp::midi::ArpeggiatorRepeatedNotePolicy : std::uint8_t { pulp::midi::Retrigger , pulp::midi::Tie }
enum class  pulp::midi::ArpeggiatorBoundaryOrder : std::uint8_t { pulp::midi::InputBeforeStep , pulp::midi::StepBeforeInput }
enum class  pulp::midi::ArpeggiatorTransportEvent : std::uint8_t {
  pulp::midi::Continuous , pulp::midi::Started , pulp::midi::Stopped , pulp::midi::Seeked ,
  pulp::midi::LoopWrapped
}

Functions

constexpr bool pulp::midi::arpeggiator_detail::valid_order (ArpeggiatorOrder order) noexcept
constexpr bool pulp::midi::arpeggiator_detail::valid_repeated_note_policy (ArpeggiatorRepeatedNotePolicy policy) noexcept
constexpr bool pulp::midi::arpeggiator_detail::valid_boundary_order (ArpeggiatorBoundaryOrder order) noexcept