Wish Block Insertion

GlennO

Axe-Master
As fond as I am of AxeEdit, it's starting to look a little clunky compared to editors from NDSP, Line6, Fender, and even Kemper. One area in particular where it frustrates me is insertion of blocks. I suspect this is one of the factors that leads people to believe the Axe-FX is difficult to use.

I often want to insert a new block between two existing blocks. This conceptually simple operation can be quite cumbersome in AxeEdit. Moving all of the blocks to one side to make room for the new block can be tedious. Worse, it breaks the connections. If you have parallel signal paths, it can be difficult to reconstruct the connections. I often have to take a screen shot of the "before" case so I can reassemble things afterwards.

And of course, if you're out of room on the row, you'll have to put in send and return blocks.

I would humbly suggest making it easier to insert blocks. It should be possible to drop a new block between two existing blocks and have AxeEdit move blocks to insert it while preserving connections. And, if there isn't room on the row, automatically insert send/return as necessary. This would be a big help when editing presets.

Here's a brief mockup of the idea. I want to insert a multi band compressor between the cab block and the parametric eq. This simple operation is surprisingly cumbersome in axedit. If you have multiple rows, it can be downright daunting. The proposed idea demonstrated in this video is: you drag a new block between two existing blocks and it is inserted in the chain at that point by shifting columns.



Strictly speaking, from a routing point of view, I would argue there are no complicated cases in the Axe-FX. This is because flow is unidirectional, left-to-right, and the topology is fully specified prior to inserting the new block.

There are potential capacity problems of course if there are insufficient columns. It would be a nice bonus feature in that case if a send/return was inserted to solve that, or wrapping if a send/return is already present.

If the insert can't be done for any reason, it would be ok for the insert to "snap back" to indicate it isn't possible to insert a block and the user must proceed manually, as they do today.
 
Last edited:
And, if there isn't room on the row, automatically insert send/return as necessary. This would be a big help when editing presets.
That’s a big ask I think. How would it determine what row to put it on? What if all rows are already used?

Connections break so you don’t get sudden loud noises from the new block creating potential feedback loops. It happened with early versions of the Axe and was not fun.

I agree improvement in this area would be welcome, but the box can’t know what we’re wanting in our minds.
 
Because of the unidirectional signal flow in the AxeFX, the "maintain connection" issue is actually topologically simple. Just move everything to one side, including the connections, to make room for a new column. So no mind-reading is necessary and there are no feedback loops :).

Sure, there might be unusual cases where you are out of rows or columns, but you can simply prohibit the insertion in those cases and let the user deal with that manually. But you're right, the important thing is the automatic insertion...the automatic send/return would just be a nice bonus feature.
 
Last edited:
I get why you want this. I do, too. But i also think it's a big ask. Autorouting is a complex task that's prone to error.
 
True, autorouting can indeed be complex. But, strictly speaking, this is not autorouting because the paths are already defined prior to the insertion.

Anyway, in my experience, all the best features in audio software begin by exploring "what if?" before getting into the analysis of how difficult it would be :).
 
Last edited:
True, autorouting can indeed be complex. But, strictly speaking, this is not autorouting because the paths are already defined prior to the insertion.
It is autorouting, though. The easy cases are almost trivial. But beyond that, things can fall apart quickly.


Anyway, in my experience, all the best features in audio software begin by exploring "what if?" before getting into the analysis of how difficult it would be :).
So true. :)
 
I think it would be beneficial even if it started out with some very simple behaviours. For example if you want to insert a block in between two other blocks, and there is an empty column available all the way on the right of the grid, all the columns on the right of the insertion point could just over by one and any connections in other rows are extended with a shunt. Even with just this it would already make patch editing a fair bit more convenient.
 
A modest initial goal like that would be great. Imagine how cool it would be to use Quick Build to drag a block between two blocks on the grid.

There have been times when I've wanted to insert a block into the signal chain, but the thought of shuffling all the columns and reconnecting the blocks is so daunting that I abandon the idea.
 
Here's a brief mockup of the idea. I want to insert a multi band compressor between the cab block and the parametric eq. This simple operation is surprisingly cumbersome in axedit. If you have multiple rows, it can be downright daunting. The proposed idea demonstrated in this video is: you drag a new block between two existing blocks and it is inserted in the chain at that point by shifting columns.
 
This would be great - I'm surprised it doesn't work exactly like it showed in your video. For more complicated routing (eg. if one of the neighbouring blocks has multiple cables running out of it), you could simply grey out the option to do this, so that it only works in simple setups like this.

Or perhaps on the Axe FX itself, a function called "Add empty block to the right/left of selected block" could make it easier too.
 
I agree. CAD programs aren't allowed to break the connections.

EVERY time I refactor a preset….

I appreciate that the modeler isn't a general-purpose computer, but at the same time Edit is on one and we're dragging things around on that computer so it has the resources. And, none of it matters to the modeler until we click Save.
 
I try to avoid posting wishes and rarely do so these days, but this is one that IMHO really deserves attention. It just took me five minutes to do a simple insert of a block into the grid because of needlessly broken connections to parallel rows.

IMHO the way blocks are inserted into the grid is the primary reason people consider the Axe-FX difficult to use compared to other modelers. It's frustrating for newcomers since it's not obvious how you insert blocks and it's frustrating for oldcomers since it can be tedious even when you know how.
 
Honestly if there is one thing I feel I am still missing from my Axe-FX / FM9 or the editor software, it's this. I would prefer it over any other improvements since I'm happy with the rest of the system as is.
 
I think there's good ideas here, that potentially become a bit difficult to implement and have a lot of edge cases. Figuring out how to reconnect everything if you slap a column in the middle can become complicated.

Since the grid system is a 2D array, but the connected blocks should be more like a node tree, this can mean complications in managing it all and then building a visual representation.

If Fractal moved to a freeform node tree where you are no longer putting blocks in a grid but just connecting nodeA (Amp1) to nodeB (Cab1) and just rendering a connecting line between the two, that would in some ways simplify the whole thing. Maybe for their next gen product?
 
I think there's good ideas here, that potentially become a bit difficult to implement and have a lot of edge cases. Figuring out how to reconnect everything if you slap a column in the middle can become complicated.

Since the grid system is a 2D array, but the connected blocks should be more like a node tree, this can mean complications in managing it all and then building a visual representation.

If Fractal moved to a freeform node tree where you are no longer putting blocks in a grid but just connecting nodeA (Amp1) to nodeB (Cab1) and just rendering a connecting line between the two, that would in some ways simplify the whole thing. Maybe for their next gen product?

IMHO, it isn‘t necessary to replace the entire grid architecture in order to make progress on this problem. The logic to be implemented isn’t that complicated. It would go like this:

Find an empty column to the right of the insertion point, move it to the insertion point and shift everything to the right over one column, preserving connections. If you run out of columns and have a single row in use near the right edge, wrap that to a new row using send/return. If it's an edge case and that can't be done, punt and let the user deal with it manually, but I believe this will work fine for the vast majority of the cases where the user simply wants to insert a block into their signal chain.

IMHO, the fact that this conceptually simple (from the point of view of the user) operation is difficult to perform on the Axe-FX is one of the primary factors why it has the reputation of being complicated to use.
 
Last edited:
Back
Top Bottom