New Modes for the Group Module
in progress
Nikolozi
- Instead of having separate modules, the Split and Merge features have been integrated into the Group module. I think this approach makes more sense.
- The update Group module is available as of build 439.
- Feedback on this approach is welcome. Details below.
Group Module
- The Group module is now even more versatile.
- The module lets you group a sequence of modules using its sublane.
- The signal flow between the containing lane and the sublane depends on one of four modes: Insert, Isolate, Split, or Merge.
- The module actions menu icon displays the current mode instead of the ellipsis used by other modules.
- Tapping it opens a menu to change the mode and access standard module actions.
Insert Mode
- The Group module passes its input signals to the sublane and forwards the sublane's output to its own output.
- Ideal for organising modules.
Isolate Mode
- The Group module doesn't provide any input to the sublane, and ignores its output.
- The module input and output remain identical.
- Ideal for creating an independent sublane that appears inline with the containing lane.
- For example, it can be used to generate an Envelope Follower modulator from a side-chain input.
Split Mode
- The Group module forwards a copy of the input signals to its sublane, and ignores its output.
- The module input and output remain identical.
- Ideal for pre-processing signals before sending them to Audio Out, MIDI Out, or Envelope Follower modules.
Merge Mode
- The Group module doesn't provide any input to the sublane, but merges the sublane's output signals with the module's input.
- The module's MIDI output is a merge of its input and the sublane's output MIDI signals.
- The Audio output is the sum of the module's input and the sublane's output signals.
- The output signal is Poly only if both the module's input and the sublane's output are Poly.
- Ideal for pre-processing signals coming from Audio In, Feedback, or MIDI In modules before merging.
Abandoned Split & Merge Modules
Split Module
- The module forwards a copy of the input signals to its sublane.
- Split's input and output signals are identical.
- The module is ideal for pre-processing signals before sending them to Audio Out, MIDI Out, or Envelope Follower modules.
- Split is a Mela Lab module and part of Collection 4.
Merge Module
- The module merges its sublane output signals into the containing lane.
- The MIDI output is a merge of its input and the sublane's output MIDI signals.
- The Audio output is the sum of its input and the sublane's output Audio signals.
- The output signal is Poly only if both the module's input and the sublane's output are Poly.
- The module is ideal for pre-processing signals coming from Audio In, Feedback, or MIDI In modules before merging.
- Merge is a Mela Lab module and part of Collection 4.
Nikolozi
Ok, thinking about this some more. I thought it would be useful:
- Be able to easily convert between the Group, Split, Merge and Isolate module types.
- Be able to "Ungroup" Split, Merge and Isolate.
- Allow Split, Merge and Isolate to be dragged and dropped as root-level lanes, just like Groups.
- But then the question becomes, should Lanes now be one of these 4 types, or always forced to be converted to Group? But Lanes have no I/O, so if they are forced, then it makes sense they become the Isolate type.
These all sound good, but then the problem becomes it's hard to distinguish these 4 types visually. Especially because if a root-level lane is called, say "Lane 2", is dragged into another lane, it retains the name but its type is Isolate, and then the user can convert it to say Split. There's no way to know if the "Lane 2" module is of type Isolate, Split, Group or Merge, unless the user clicks on the action menu (the latest build now displays type in the menu).
The above train of thought led me to conclude that these 4 modules should go back to being 1 module, a bit like the original Sublane, but this time with better UX:
- It will be called Group.
- It will have 4 modes: Insert, Split, Merge and Isolate.
- Insert will behave like Group. Maybe there's a better word, I'm open to suggestions.
- When the module becomes a root-level lane, it will be forced to Isolate mode.
- This makes sense because when Lane is dragged into another lane, by default, it shouldn't disrupt the host lane's signal flow. And then the user can switch to Split, Group or whatever. So I think this is preferred behaviour over existing.
- Need a 4-state button with the, there won't be space for words, as Group has minimal UI, and I want to keep it that way. Need to find a good place to place this button/symbol. Maybe even multiple places (including the actions menu).
- Symbols will look something like this maybe, I mean this is my starting point:
Insert
, trying to look like an insert[–]
Split
-<
Merge
>-
Isolate
, trying to look like parallel processing=
- When tapping on the button, you will also see the full words.
- The "Group" action menu will default to Insert mode. And creating a new root level lane will put it in Isolate mode. The lane's won't need the mode symbol, because users won't be allowed to change it and they will always be in Isolate mode unless moved into another lane.
Nikolozi
Ok, thinking about this some more. I thought it would be useful:
- Be able to easily convert between the Group, Split, Merge and Isolate module types.
- Be able to "Ungroup" Split, Merge and Isolate.
- Allow Split, Merge and Isolate to be dragged and dropped as root-level lanes, just like Groups.
- But then the question becomes, should Lanes now be one of these 4 types, or always forced to be converted to Group? But Lanes have no I/O, so if they are forced, then it makes sense they become the Isolate type.
These all sound good, but then the problem becomes it's hard to distinguish these 4 types visually. Especially because if a root-level lane is called, say "Lane 2", is dragged into another lane, it retains the name but its type is Isolate, and then the user can convert it to say Split. There's no way to know if the "Lane 2" module is of type Isolate, Split, Group or Merge, unless the user clicks on the action menu (the latest build now displays type in the menu).
The above train of thought led me to conclude that these 4 modules should go back to being 1 module, a bit like the original Sublane, but this time with better UX:
- It will be called Group.
- It will have 4 modes: Insert, Split, Merge and Isolate.
- Insert will behave like Group. Maybe there's a better word, I'm open to suggestions.
- When the module becomes a root-level lane, it will be forced to Isolate mode.
- This makes sense because when Lane is dragged into another lane, by default, it shouldn't disrupt the host lane's signal flow. And then the user can switch to Split, Group or whatever. So I think this is preferred behaviour over existing.
- Need a 4-state button with the, there won't be space for words, as Group has minimal UI, and I want to keep it that way. Need to find a good place to place this button/symbol. Maybe even multiple places (including the actions menu).
- Symbols will look something like this maybe, I mean this is my starting point:
Insert
, trying to look like an insert[–]
Split
-<
Merge
>-
Isolate
, trying to look like parallel processing=
- When tapping on the button, you will also see the full words.
- The "Group" action menu will default to Insert mode. And creating a new root level lane will put it in Isolate mode. The lane's won't need the mode symbol, because users won't be allowed to change it and they will always be in Isolate mode unless moved into another lane.
Nikolozi
Make me wonder if adding another module, let's call it
Isolate
, makes sense. It's sublane would take no input from the parent lane, and also wouldn't merge the output to it. That would provide the 4th mode, the original Sublane module supported. Stack module's Passthru mode behaves the same way, has no I/O. Maybe that mode should be called Isolate. Not sure, which name is better Isolate
or Passthru
for the Stack. It's a matter of perspective, from Stack's point of view, it's isolated. From the parent lane's it's passing signals through. But considering Sum Audio and Merge MIDI are both from Stack's perspective, Isolate might be a good name. Especially, if I end up adding the Isolate module. Anyway, food for thought.Nikolozi
in progress
Available for testing in Mela 6.6 Build 437, once Apple approves the build.