7#ifndef PULP_HAS_MTS_ESP
8#define PULP_HAS_MTS_ESP 0
19 MtsEspTuningProvider();
20 ~MtsEspTuningProvider()
override;
22 MtsEspTuningProvider(
const MtsEspTuningProvider&) =
delete;
23 MtsEspTuningProvider& operator=(
const MtsEspTuningProvider&) =
delete;
25 MtsEspTuningProvider(MtsEspTuningProvider&&)
noexcept;
26 MtsEspTuningProvider& operator=(MtsEspTuningProvider&&)
noexcept;
36 TuningNoteResult frequency_to_note_and_channel(
double frequency_hz)
const override;
38 void parse_midi_data(std::span<const std::uint8_t> data)
override;
39 bool has_session_tuning()
const;
43 std::unique_ptr<Impl> impl_;
46enum class MtsEspFallbackPolicy {
51class MtsEspFallbackTuningProvider final :
public TuningProvider {
53 explicit MtsEspFallbackTuningProvider(
54 std::unique_ptr<TuningProvider> local_fallback =
55 std::make_unique<EqualTemperamentTuningProvider>(),
56 MtsEspFallbackPolicy policy = MtsEspFallbackPolicy::PreferMtsSession);
57 explicit MtsEspFallbackTuningProvider(MtsEspFallbackPolicy policy);
58 ~MtsEspFallbackTuningProvider()
override;
60 MtsEspFallbackTuningProvider(
const MtsEspFallbackTuningProvider&) =
delete;
61 MtsEspFallbackTuningProvider& operator=(
const MtsEspFallbackTuningProvider&) =
delete;
63 MtsEspFallbackTuningProvider(MtsEspFallbackTuningProvider&&) noexcept;
64 MtsEspFallbackTuningProvider& operator=(MtsEspFallbackTuningProvider&&) noexcept;
66 TuningQueryResult note_to_frequency(
68 int midi_channel = kUnknownMidiChannel) const override;
70 TuningNoteResult frequency_to_note(
72 int preferred_midi_channel = kUnknownMidiChannel) const override;
74 TuningNoteResult frequency_to_note_and_channel(
double frequency_hz) const override;
75 TuningStatus status() const override;
76 void parse_midi_data(
std::span<const
std::uint8_t> data) override;
78 bool using_mts_session() const;
79 bool mts_session_available() const;
80 const MtsEspTuningProvider& mts_provider() const noexcept {
return mts_; }
81 MtsEspTuningProvider& mts_provider() noexcept {
return mts_; }
82 const TuningProvider* local_fallback() const noexcept {
return fallback_.get(); }
83 TuningProvider* local_fallback() noexcept {
return fallback_.get(); }
86 bool local_tuning_available()
const;
87 bool should_use_mts_session()
const;
89 MtsEspTuningProvider mts_;
90 std::unique_ptr<TuningProvider> fallback_;
91 MtsEspFallbackPolicy policy_ = MtsEspFallbackPolicy::PreferMtsSession;
#define PULP_HAS_MTS_ESP
Definition mts_esp_tuning.hpp:8
Definition custom_node_events.hpp:26
constexpr bool kHasMtsEspTuning
Definition mts_esp_tuning.hpp:13
constexpr int kUnknownMidiChannel
Definition tuning.hpp:9