10#ifndef PULP_HAS_SCALA_TUNING
11#define PULP_HAS_SCALA_TUNING 0
18#if PULP_HAS_SCALA_TUNING
22 ScalaTuningProvider();
23 ~ScalaTuningProvider()
override;
25 ScalaTuningProvider(
const ScalaTuningProvider&) =
delete;
26 ScalaTuningProvider& operator=(
const ScalaTuningProvider&) =
delete;
28 ScalaTuningProvider(ScalaTuningProvider&&)
noexcept;
29 ScalaTuningProvider& operator=(ScalaTuningProvider&&)
noexcept;
31 bool load_scl_file(
const std::filesystem::path& path, std::string* error =
nullptr);
32 bool load_kbm_file(
const std::filesystem::path& path, std::string* error =
nullptr);
33 bool load_scl_kbm_files(
34 const std::filesystem::path& scl_path,
35 const std::filesystem::path& kbm_path,
36 std::string* error =
nullptr);
38 bool load_scl_data(std::string_view scl_data, std::string* error =
nullptr);
39 bool load_kbm_data(std::string_view kbm_data, std::string* error =
nullptr);
40 bool load_scl_kbm_data(
41 std::string_view scl_data,
42 std::string_view kbm_data,
43 std::string* error =
nullptr);
45 bool tune_note_to(
int midi_note,
double frequency_hz, std::string* error =
nullptr);
46 void reset_to_equal_temperament();
48 bool has_loaded_scale()
const noexcept;
49 bool has_loaded_keyboard_mapping()
const noexcept;
59 TuningNoteResult frequency_to_note_and_channel(
double frequency_hz)
const override;
64 std::unique_ptr<Impl> impl_;
Definition custom_node_events.hpp:26
constexpr bool kHasScalaTuning
Definition scala_tuning.hpp:16
constexpr int kUnknownMidiChannel
Definition tuning.hpp:9
#define PULP_HAS_SCALA_TUNING
Definition scala_tuning.hpp:11