#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 |