Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pitch.hpp File Reference
#include <array>
#include <bit>
#include <compare>
#include <cstddef>
#include <cstdint>
#include <initializer_list>
#include <limits>
#include <optional>
#include <span>
#include <string_view>

Go to the source code of this file.

Classes

class  pulp::music::PitchClassSet
struct  pulp::music::ScaleCompatibilityEntry
class  pulp::music::Scale

Namespaces

namespace  pulp
namespace  pulp::music
namespace  pulp::music::detail

Enumerations

enum class  pulp::music::PitchClass : std::uint8_t {
  pulp::music::c = 0 , pulp::music::c_sharp = 1 , pulp::music::d = 2 , pulp::music::d_sharp = 3 ,
  pulp::music::e = 4 , pulp::music::f = 5 , pulp::music::f_sharp = 6 , pulp::music::g = 7 ,
  pulp::music::g_sharp = 8 , pulp::music::a = 9 , pulp::music::a_sharp = 10 , pulp::music::b = 11
}
enum class  pulp::music::NamedScale : std::uint8_t {
  pulp::music::major = 0 , pulp::music::natural_minor = 1 , pulp::music::dorian = 2 , pulp::music::phrygian = 3 ,
  pulp::music::lydian = 4 , pulp::music::mixolydian = 5 , pulp::music::harmonic_minor = 6 , pulp::music::melodic_minor = 7 ,
  pulp::music::major_pentatonic = 8 , pulp::music::minor_pentatonic = 9 , pulp::music::locrian = 10 , pulp::music::chromatic = 11 ,
  pulp::music::blues = 12 , pulp::music::whole_tone = 13
}

Functions

constexpr bool pulp::music::is_valid (PitchClass pitch_class) noexcept
constexpr std::optional< PitchClass > pulp::music::pitch_class_from_index (int index) noexcept
constexpr PitchClass pulp::music::wrap_pitch_class (int index) noexcept
constexpr PitchClass pulp::music::transpose (PitchClass pitch_class, int semitones) noexcept
constexpr std::uint16_t pulp::music::detail::pitch_class_mask (std::initializer_list< int > semitones) noexcept
constexpr std::optional< PitchClassSet > pulp::music::scale_intervals (NamedScale scale) noexcept

Variables

constexpr int pulp::music::kPitchClassesPerOctave = 12
constexpr std::uint16_t pulp::music::kPitchClassMask = 0x0FFFu
constexpr std::size_t pulp::music::kNamedScaleCount = 14
constexpr std::array< ScaleCompatibilityEntry, 10 > pulp::music::kPulpSignalScales
constexpr std::array< ScaleCompatibilityEntry, 10 > pulp::music::kPulpTimelineScales
constexpr std::array< ScaleCompatibilityEntry, 10 > pulp::music::kForgeRuntimeScales
constexpr std::array< ScaleCompatibilityEntry, 14 > pulp::music::kForgePrimitiveScales