This page documents how controller-specific integrations are wired around the shared sequencing/audio core.
TheNonagonSquiggleBoyWrldBldrDefined in private/src/TheNonagonSquiggleBoyWrldBldr.hpp.
GridsMode (ComuteAndTheory, Matrix, Intervals, SubSequencer, Config),DisplayMode (Controller/Visualizer),Route IDs:
45678Message flow:
MessageInBus route conversion,Apply(msg) routes message to encoder/analog or one of the three grids,ProcessFrame() publishes m_leftGrid/m_rightGrid/m_auxGrid colors into UIState::m_colorBus[3].TheNonagonSquiggleBoyQuadLaunchpadTwisterDefined in private/src/TheNonagonSquiggleBoyQuadLaunchpadTwister.hpp.
UIState::m_colorBus[4].WrldBLDRMidi)Defined in private/src/WrldBLDRMidi.hpp.
WrldBLDRMidi::FromMidi() maps channels to routed MessageIn:
WrldBLDRMidiWriter emits:
In JUCE/SmartGridOne/Source/NonagonWrapper.hpp:
MidiLaunchpadOutputHandler uses LPSysexWriter for Launchpad LEDs.MidiEncoderOutputHandler uses EncoderMidiWriter for encoder ring/value output.BasicMidi to integration owners.NonagonWrapper as top-level aggregatorNonagonWrapper owns:
NonagonWrapperQuadLaunchpadTwisterNonagonWrapperWrldBldrMidiSenderTheNonagonSquiggleBoyInternal corePer-sample/frame orchestration: