Home - unityconstruct/CtrlrDocs GitHub Wiki
CtrlrDocs
- Companion Documents for Ctrlr/CtrlrX(latest dev work here)
- Most, if not ALL assets in this repo should be readable via a webbrowser - hopefully on the github site
- some HIGH VALUE documents are placed here for easy access
wiki-prefix-legend
key | value |
---|---|
rel | release information |
guide | long-form walkthroughs & guides |
src | source/code documentation, notes, tables, diagrams |
ui | ui design: notes covering Ctrlr application use, lua scripting, design patterns, and c++ code-behind |
lua | lua language notes |
c++ | c/c++ language notes |
X-Station Panel Info-Graphic
- Working on dissecting this panel to understand how a well-designed panel is wired up.
- It isn't very intuitive to setup beyond basic CC implementation, but even then - that will only provide SEND functionality.. NOT receive
- Ctrlr does A LOT of things, including offline-patch edit, patch library, sysex backup/restore, patch backup/restore + more
- This power comes with the prices of complexity
- This repo has the single-minded purpose of understanding every aspect of the application itself, the project code & JUCE relationships, Lua/lua-binding, graphics generation, composition, layering, and techniques to properly/successfully implement all the required customization to fully support outboard hardware.
minutia-todo
- documentation
- produce dev documents/diagrams
- aggregate information from various forks, discussion & issue boards
- create derivative documents & compilations
- Lua Lib
- aggregate Lua examples/lib
- categorize into logical/intuitive hierarchies - formatting functionality of no concern
- parse methods add doxygen comments - including @param, @return annotations
- this adds intellisense support
- strongly types methods so they are self-documenting
- reduces errors due to less ambiguity
- create overloaded methods for flexibility, while forcing logic into one place
- plan an entire lua wrapper framework to provide a layer of abstraction between Ctrlr Lua API and actual implementation
- this provides critical flexibility for future updates by decoupling Ctrlr from the implementation scripts
- ie: if Ctrlr API is changed - particularly moving/adding things - Lua scripts will necessarily break...along with existing panels
- the abstraction layer provides the ability to update the Ctrlr-LuaFramework links without impacting Panel-LuaFramework links
- add Lua methods to expose the entire LuaBind API
- add purpose/vendor agnostic utility methods such that they become part of the
Ctrlr Core
and relieve panel authors of the need to understand the C++ Core - add Graphics API for generating various ui widgets such as displays, status messages and modulators
- extend further with full APIs for each Component, such as complex calculations, listener & callback logic, and error handling to avoid crashes & provide debug logging
- this provides critical flexibility for future updates by decoupling Ctrlr from the implementation scripts
- aggregate Lua examples/lib
- C++ Lib
- comment c++ codebase for improved intellisense
- Look for opportunities for refactoring to reduce class size & modularity
- Lua 5.4.6? boost is old.. not sure if this can be updated, so new tech solution is likely needed.
UI Design Guide Notes
Editing Approach
- Locking Panel
- Using Panel Modulator List
- for Location & Size