21#include <JuceHeader.h>
23#include <MidiCommandRangeAssignment.h>
24#include <MidiLearnerComponent.h>
100 std::unique_ptr<juce::TabbedComponent> m_tabs;
102 OscTab* m_oscTab =
nullptr;
Settings panel for MIDI- and OSC-based external control of the six upmix transform parameters (rotati...
~UmsciExternalControlComponent() override
std::function< void(UpmixMidiParam, JUCEAppBasics::MidiCommandRangeAssignment)> onMidiAssiChanged
std::function< void(int)> onOscInputPortChanged
static const juce::String s_oscDefaultAddresses[UpmixMidiParam_COUNT]
Default OSC address for each parameter, indexed by UpmixMidiParam.
void setOscInputPort(int port)
void setMidiAssi(UpmixMidiParam param, const JUCEAppBasics::MidiCommandRangeAssignment &assi)
static const juce::String s_paramLabels[UpmixMidiParam_COUNT]
Human-readable parameter labels shared by both tabs.
static const std::array< std::pair< float, float >, UpmixMidiParam_COUNT > s_paramRanges
Natural parameter ranges for normalised MIDI→domain mapping. Indexed by UpmixMidiParam.
const juce::String & getMidiInputDeviceIdentifier() const
const JUCEAppBasics::MidiCommandRangeAssignment & getMidiAssi(UpmixMidiParam param) const
UpmixMidiParam
Identifies each controllable upmix transform parameter.
@ UpmixMidiParam_OffsetX
m_upmixOffsetX — ring centre X offset.
@ UpmixMidiParam_HeightTranslation
m_upmixHeightTrans — height ring fraction.
@ UpmixMidiParam_Translation
m_upmixTrans — radial scale factor.
@ UpmixMidiParam_OffsetY
m_upmixOffsetY — ring centre Y offset.
@ UpmixMidiParam_Rotation
m_upmixRot — ring rotation (−π – +π rad).
@ UpmixMidiParam_AngleStretch
m_upmixAngleStretch — angular spread.
int getOscInputPort() const
juce::String getOscAddr(UpmixMidiParam param) const
void setOscAddr(UpmixMidiParam param, const juce::String &address)
std::function< void(const juce::String &)> onMidiInputDeviceChanged
UmsciExternalControlComponent()
std::function< void(UpmixMidiParam, juce::String)> onOscAddrChanged
void setMidiInputDeviceIdentifier(const juce::String &identifier)