Comments (5)
Can you show me another console/device that does this? The topic intrigues me.
from companion.
I've done a survey in a group with 700 AV people. I asked should the pages be incremented with arrow up or arrow down. After 24h 20 perfer page increment to be arrow up and 11 prefer it to be arrow down. The up supporters are almost all lighting guys, the down supporters are almost all sound and video guys. (The group has more lighting guys than sound and video)
Some suggested the most natural and intuitive way would be left/right buttons with right is increment. One audio guy mentioned that on many audio consoles the direction is user definable.
After rethinking all of that I think we should drop the concept of the pages like they are at the moment and replace it with a more flexible solution. Also thinking of upcoming multi-device functionality. My proposal: Introduction of windows or whatever you want to call it. Basically a window should be a 2d array of buttons mapped onto physical keys. Like in a computer window, when the key area is smaller than the button array, overflow with scrolling can happen. Properties of a window are id or name, position on keys (top left), border size (w,h), pane size (w,h), pane position (x,y).
We should introduce companion as a new pseudo-device and offer actions to control it: window open at position (x/y and size w/h) (also brings window on top), window close, window scroll (direction and increment), window scroll to (x/y).
One can rebuild the workflow like it is with two windows. Window one occupying the three left buttons and window two occupying the remaining buttons. In window one you have buttons for scrolling window two up or down (or left and right).
The big advantage is, that you can have much more flexibility. Lets say I have only two pages. I can make one window with a button in top left "scroll to where page two is" and on page two in the same location one button with "scroll to where page one is".
This also is a solution for the sticky button request. Just make a second window and don't scroll it. If you only wan't to have one sticky button and it should be in the middle of the keys, no problem, just make sure window two is on top of window one. That means windows should not be brought to front when using a button.
Also the Page navigation system suggested by Deanbau could be user programmable that way, you just have to open a window with several buttons to new windows with several buttons to scroll positions. Ok it will take some time to program this as a user, but the point is that the power and flexibility is at the user end and they can customize their control surface the way they want.
Button naming could be w.y.x (w= window no, y= row no, x=column no). My suggestion is that the pane size is virtually infinite (fixed to some technical limit), so you can just place your buttons anywhere you want an scroll there, you don't have to grow the pane when you need more space and, more important, we don't need to reflow buttons when the pane shrinks.
Of course we need parameters for actions for that, but we need parameters anyway.
One more addition to the button flexibility (maybe I should do new issue): We should have a button pool. That means when creating a button with actions and so on it gets created in a pool and you can use the pool objects and place them in windows. With that you can reuse the button/have more instances of the same button. When editing the button you edit the pool object and all other instances reflect the edit. Copying a button in a window creates a new instance, copying in the pool creates an independent new button. We can also enumerate the pool objects and maybe put that number in the top right of a button.
BTW: Button creation and assignment should be drag and drop.
Discussion is open!
from companion.
from companion.
Dependent on #56
from companion.
Now optional from userconfig!
from companion.
Related Issues (20)
- Allow specifying xy in RossTalk HOT 1
- Start as a windows service HOT 4
- Latest 3.3.0 beta [4670f7f9201ffd7c736e07c5bd3d9433139791c8] on macOS not launching [BUG] HOT 1
- Some modules fail to start (legacy modules) [BUG] HOT 1
- [BUG] Latest 3.99.0+6793 experimental on macOS not launching [BUG HOT 3
- xkeys pedal support? HOT 4
- [BUG] TCP / HTTP remote control no longer working after update to 3.2.1 HOT 2
- Double sending OSC HOT 1
- Allow trigger conditions evaulated with more boolean logic, and allow actions to be performed when condition evaluates to false as well as true HOT 8
- Companion Pi should not recommend notifications of new stable releases for regular Companion HOT 1
- [BUG] Trigger Condition Invert Not Working HOT 1
- [BUG] Hidden list items when <select> is at the bottom of the screen HOT 1
- [BUG] Keywords not used for search when adding module HOT 4
- Add surface name to debug logs
- [BUG] `allowCustom` property not working in config dropdown HOT 3
- Tally in main application that auto creates triggers HOT 5
- [BUG] Feedback (bg-change) still sending old Page: and Bank: data HOT 1
- Feature request: user resizable panels in webui HOT 4
- [BUG] Companion Trigger based on the "Time of Day" event not working HOT 5
- Settings page instructions update for RossTalk
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from companion.