Vital
Loading...
Searching...
No Matches
master_controls_interface.h
Go to the documentation of this file.
1#pragma once
2
3#include "JuceHeader.h"
4#include "memory.h"
6#include "synth_constants.h"
7#include "synth_section.h"
8
9class TextSelector;
10class DisplaySettings;
12class VoiceSettings;
13class OutputDisplays;
15
25public:
37
43 TuningSelector(String name);
44
48 virtual ~TuningSelector();
49
55 void mouseDown(const MouseEvent& e) override;
56
62 void valueChanged() override;
63
69 void parentHierarchyChanged() override;
70
74 void mouseWheelMove(const MouseEvent&, const MouseWheelDetails& wheel) override { }
75
81 void setTuning(int tuning);
82
83private:
89 void loadTuning(TuningStyle tuning);
90
94 void loadTuningFile();
95
101 void loadTuningFile(const File& file);
102
108 String getTuningName();
109
115 void setCustomString(std::string custom_string) {
116 strings_[kNumTunings] = custom_string;
117 repaint();
118 }
119
120 std::string strings_[kNumTunings + 1];
121};
122
139public:
147 MasterControlsInterface(const vital::output_map& mono_modulations,
148 const vital::output_map& poly_modulations, bool synth);
149
153 virtual ~MasterControlsInterface();
154
160 void paintBackground(Graphics& g) override;
161
165 void resized() override;
166
173 void setOscillatorBounds(int index, Rectangle<int> bounds) { oscillator_advanceds_[index]->setBounds(bounds); }
174
181 void passOscillatorSection(int index, const OscillatorSection* oscillator);
182
188 void setOscilloscopeMemory(const vital::poly_float* memory);
189
195 void setAudioMemory(const vital::StereoMemory* memory);
196
197private:
198 std::unique_ptr<OscillatorAdvancedSection> oscillator_advanceds_[vital::kNumOscillators];
199 std::unique_ptr<DisplaySettings> display_settings_;
200 std::unique_ptr<OversampleSettings> oversample_settings_;
201 std::unique_ptr<VoiceSettings> voice_settings_;
202 std::unique_ptr<OutputDisplays> output_displays_;
203
204 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(MasterControlsInterface)
205};
Definition master_controls_interface.cpp:371
A top-level UI component that contains various sections for configuring the synthesizer.
Definition master_controls_interface.h:138
MasterControlsInterface(const vital::output_map &mono_modulations, const vital::output_map &poly_modulations, bool synth)
Constructs a MasterControlsInterface.
Definition master_controls_interface.cpp:563
void setOscillatorBounds(int index, Rectangle< int > bounds)
Sets the bounds of a specific oscillator section.
Definition master_controls_interface.h:173
void paintBackground(Graphics &g) override
Paints the background of the interface.
Definition master_controls_interface.cpp:595
void setOscilloscopeMemory(const vital::poly_float *memory)
Sets the oscilloscope memory for audio visualization.
Definition master_controls_interface.cpp:635
void resized() override
Resizes and lays out all child components (oscillators, voice settings, etc.).
Definition master_controls_interface.cpp:599
void passOscillatorSection(int index, const OscillatorSection *oscillator)
Passes an oscillator section model to the corresponding advanced section UI.
Definition master_controls_interface.cpp:631
virtual ~MasterControlsInterface()
Destructor.
Definition master_controls_interface.cpp:593
void setAudioMemory(const vital::StereoMemory *memory)
Sets the audio memory for spectrogram analysis.
Definition master_controls_interface.cpp:639
A UI section representing an oscillator in the synthesizer.
Definition oscillator_section.h:32
Definition master_controls_interface.cpp:519
Definition master_controls_interface.cpp:263
Base class for all synthesizer sections, providing UI layout, painting, and interaction logic.
Definition synth_section.h:193
A specialized SynthSlider that displays a popup menu of text options.
Definition text_selector.h:14
A specialized TextSelector for selecting tuning systems or loading custom tuning files.
Definition master_controls_interface.h:24
void mouseDown(const MouseEvent &e) override
Handles mouse down events, including showing a popup menu for selecting tunings.
Definition master_controls_interface.cpp:42
void valueChanged() override
Called when the value of the selector changes.
Definition master_controls_interface.cpp:63
void mouseWheelMove(const MouseEvent &, const MouseWheelDetails &wheel) override
Ignores mouse wheel moves for this component.
Definition master_controls_interface.h:74
void setTuning(int tuning)
Sets the current tuning style.
Definition master_controls_interface.cpp:74
TuningSelector(String name)
Constructs a TuningSelector with a given name.
Definition master_controls_interface.cpp:31
virtual ~TuningSelector()
Destructor.
Definition master_controls_interface.cpp:40
void parentHierarchyChanged() override
Called when the component's parent hierarchy changes.
Definition master_controls_interface.cpp:69
TuningStyle
Enumerates the available tuning styles.
Definition master_controls_interface.h:30
@ k5Limit
Just intonation with a 5-limit scale.
Definition master_controls_interface.h:33
@ kDefault
Default equal-tempered tuning.
Definition master_controls_interface.h:31
@ kNumTunings
Number of available tuning styles.
Definition master_controls_interface.h:35
@ k7Limit
Just intonation with a 7-limit scale.
Definition master_controls_interface.h:32
@ kPythagorean
Pythagorean tuning.
Definition master_controls_interface.h:34
Definition master_controls_interface.cpp:138
A specialized MemoryTemplate for two-channel (stereo) audio.
Definition memory.h:216
Declares classes for time-domain memory storage and retrieval with cubic interpolation.
constexpr int kNumOscillators
Number of oscillators available in Vital.
Definition synth_constants.h:16
std::map< std::string, Output * > output_map
Maps parameter names to Output pointers, representing output signals from various modules.
Definition synth_types.h:229
Represents a vector of floating-point values using SIMD instructions.
Definition poly_values.h:600