2 #include <Control/Widgets.hpp>
4 #include <ossia/detail/enum_map.hpp>
12 static const constexpr std::array<std::pair<const char*, float>, 14> durations{
21 {
"Dotted Half", 3. / 4.},
22 {
"Dotted 4th", 3. / 8.},
23 {
"Dotted 8th", 3. / 16.},
24 {
"Dotted 16th", 3. / 32.},
25 {
"Dotted 32th", 3. / 64.},
27 static const constexpr std::array<std::pair<const char*, float>, 13> notes{
36 {
"Dotted Half", 3. / 4.},
37 {
"Dotted 4th", 3. / 8.},
38 {
"Dotted 8th", 3. / 16.},
39 {
"Dotted 16th", 3. / 32.},
40 {
"Dotted 32th", 3. / 64.}}};
42 static const constexpr std::array<std::pair<const char*, float>, 12> nonnull_notes{
50 {
"Dotted Half", 3. / 4.},
51 {
"Dotted 4th", 3. / 8.},
52 {
"Dotted 8th", 3. / 16.},
53 {
"Dotted 16th", 3. / 32.},
54 {
"Dotted 32th", 3. / 64.}}};
56 static const constexpr std::array<std::pair<const char*, int>, 5> arpeggios{
57 {{
"Forward", 0}, {
"Backward", 1}, {
"F->B", 2}, {
"B->F", 3}, {
"Chord", 4}}};
71 inline auto& waveformMap()
73 static const ossia::enum_map<Waveform, std::string_view, 8> waveform_map{
75 {Triangle,
"Triangle"},
78 {SampleAndHold,
"Sample & Hold"},
84 static constexpr
auto WaveformChooser()
86 return Control::make_enum(
89 "Sin",
"Triangle",
"Saw",
"Square",
"Sample & Hold",
"Noise 1",
"Noise 2",
91 std::array<const char*, 16>{
92 ":/icons/wave_sin_off.png",
":/icons/wave_sin_on.png",
93 ":/icons/wave_triangle_off.png",
":/icons/wave_triangle_on.png",
94 ":/icons/wave_saw_off.png",
":/icons/wave_saw_on.png",
95 ":/icons/wave_square_off.png",
":/icons/wave_square_on.png",
96 ":/icons/wave_sample_and_hold_off.png",
":/icons/wave_sample_and_hold_on.png",
97 ":/icons/wave_noise1_off.png",
":/icons/wave_noise1_on.png",
98 ":/icons/wave_noise2_off.png",
":/icons/wave_noise2_on.png",
99 ":/icons/wave_noise3_off.png",
":/icons/wave_noise3_on.png"});
109 constexpr
auto LoopChooser()
111 return Control::make_enum(
112 "Loop", 0U, ossia::make_array(
"Play",
"Record",
"Overdub",
"Stop"));
114 constexpr
auto LoopPostActionChooser()
116 return Control::make_enum(
"Loop", 0U, ossia::make_array(
"Play",
"Overdub"));
118 constexpr LoopMode GetLoopMode(std::string_view str) noexcept
121 return LoopMode::Play;
122 else if(str ==
"Record")
123 return LoopMode::Record;
124 else if(str ==
"Overdub")
125 return LoopMode::Overdub;
126 else if(str ==
"Stop")
127 return LoopMode::Stop;
128 return LoopMode::Stop;
131 constexpr
auto QuantificationChooser()
135 constexpr
auto ArpeggioChooser()
140 constexpr
auto MusicalDurationChooser()
143 "Duration", 2, nonnull_notes);
145 constexpr
auto DurationChooser()
149 constexpr
auto FreqSlider()
153 constexpr
auto LFOFreqSlider()
157 constexpr
auto FreqKnob()
161 constexpr
auto LFOFreqKnob()
165 constexpr
auto TempoChooser()
170 template <
typename T>
171 constexpr
auto MidiSpinbox(
const T& name)
175 template <
typename T>
176 constexpr
auto MidiChannel(
const T& name)
180 template <
typename T>
181 constexpr
auto MidiSlider(
const T& name)
185 template <
typename T>
186 constexpr
auto DefaultSlider(
const T& name)
191 template <
typename T>
192 constexpr
auto OctaveSlider(
const T& name,
int neg_octaves,
int octaves)
Definition: score-lib-process/Control/Widgets.hpp:486
Definition: score-lib-process/Control/Widgets.hpp:77
Definition: score-lib-process/Control/Widgets.hpp:178
Definition: score-lib-process/Control/Widgets.hpp:223