Implemented Lock for the amp speaker impedance curve

Which amp block would it apply to if you have two?
For that matter, which Cab block would it apply to if you have more than one Cab block? And which of the four slots in a single Cab block would get to decide what the impedance curve will look like?
 
I'm thinking if there were a way, specifically in instances of one amp going into one cab, in which the file loaded in the IR player block or cab block acted essentially as a modifier to the default impedence curve, it might be easier to implement. Since this thought is based on communication between two different blocks, resulting in a charging of parameter values, in this way it would be truly similar to how modifiers work. It might be easier to tie the impedence curved only to the IR Player block instead of the amp block, since you only have one IR in that case. But even then the unit would have to decide what to do if you use more than one IR Player block, and you're back to the same problem. Of course what I'm saying is, for the loaded IR to be an global default modifier of the amp block impedence curve parameter, the Axe FX would have to recognize how many amps and cabs are running, how they're linked to each other, and kick in this modifier-style behavior only when it understands that a single amp block is running only into a single IR Player block.

As far as the linkage goes, I'm thinking there could be a menu in Manage Cabs in AxeEdit where you could link any IR or group of IRs (possibly using search terms) to default impedence curves. You'd be setting up default global behavior only, of course tweakable after the fact.

This might be less feasible than I'm guessing, and surely there are other factors I'm not considering.

In instances of anything other than a single amp going directly into a single IR (or two parallel instances of this), perhaps the impedence curve would revert to it's current behavior of loading a default curve tied only to the amp.

Just an idea, but it's with putting out there. Happy Holidays! :)
 
Nope. It's component modeling. The speaker impedance affects how the power amp model processes the signal — it's not just an EQ curve — so putting the impedance curve into the Cab block would require backwards processing flow, which the box doesn't do.

It might be component modeling, but it isn't like we can't put the control for the amp wherever we wanted to in the UI. Sort of like you put a switch in one part of a circuit to control a relay in a completely different part of the circuit. That's basically what I'm suggesting.
 
For that matter, which Cab block would it apply to if you have more than one Cab block? And which of the four slots in a single Cab block would get to decide what the impedance curve will look like?

All of those are solvable IMO, or at least smart defaults are. Curve in the cab slot applies to whatever amp blocks are active at the time. Curves in the cab block for more than one cab? You get more than one resonance curve.

But it's a moot point if it can't be done at all.
 
It might be component modeling, but it isn't like we can't put the control for the amp wherever we wanted to in the UI. Sort of like you put a switch in one part of a circuit to control a relay in a completely different part of the circuit. That's basically what I'm suggesting.
It's the backwards data flow between blocks that's problematic. It's the reverse of the Fractal preceding-block-feeds-data-to-the-next-block paradigm.
 
Curve in the cab slot applies to whatever amp blocks are active at the time.
So the impedance curve applies to any Amp that's not bypassed? That means the impedance effects have to be recalculated every time you bypass or engage an Amp block.


Curves in the cab block for more than one cab? You get more than one resonance curve.
I think that applying two, three or four different impedance curves (potentially eight, if you use two Cab blocks) would substantially increase the CPU hit.
 
The other logical issue is that the "CAB" block is mostly just an IR mixer along with nice features like EQ, preamp, air, room. It isn't modeling a physical cab as such but up to 4 mic'd cabs mixed.

Perhaps CAB would better named IRM (IR mixer) but we tend to think of guitar amps going into cabs.
 
Last edited:
Maybe you're right. IDK.
So the impedance curve applies to any Amp that's not bypassed? That means the impedance effects have to be recalculated every time you bypass or engage an Amp block.

I already have 1 of 8 different curves getting calculated every time I switch scenes in my kitchen sink presets; one per amp channel, two amp blocks. So I'm not sure how "recalculated every time you bypass or engage an amp block" is different.

I think that applying two, three or four different impedance curves (potentially eight, if you use two Cab blocks) would substantially increase the CPU hit.

I'm not saying that every channel of the cab needs its own impedance curve.* At any one time, I'd only see one or two impedance curves being applied, since there are only two cab blocks. And, again, they are already there in numbers up to 8 in a preset, right?

*although that would be kind of cool, potentially.
 
Which amp block would it apply to if you have two?

Also, how does putting it in the Cab block make it easier?

If you have two different amps sharing one cab (something not possible IRL) they'd both see the same impedance.

It makes it easier because when you switch amps, but not the cab, the cab impedance stays with the cab, which it should. If I'm using a greenback IR, and select the basketweave curve, that's where it should stay regardless of what amp you choose.

For that matter, which Cab block would it apply to if you have more than one Cab block? And which of the four slots in a single Cab block would get to decide what the impedance curve will look like?

For it to work right, each individual cab in the cab block needs its own selection.

The problem arises if you have more than one speaker active and they have different curves. An amp would see the parallel combination of the two speakers IRL.

But consider the case now. Suppose I set up the cab block with a 4x12 greenback and a 4x12 V30, both on. Which impedance curve should I select in the amp block?

The answer to that question is "whichever one sounds best". You guys are trying to make this way too hard. All I wanted was a way to scroll through the Marshalls without having to reset the impedance curve to basketweave every time.
 
I already have 1 of 8 different curves getting calculated every time I switch scenes in my kitchen sink presets; one per amp channel, two amp blocks. So I'm not sure how "recalculated every time you bypass or engage an amp block" is different.
The impedance curve isn’t an EQ curve. It’s a representation of the impedance of a cab. It determines, among other things, which frequencies will distort first in the power amp sim. Every amp will react differently to it, and different amp settings will give different behaviors. You proposed multiple impedance curves when multiple IRS are active. If you have two cab blocks with four slots each, that’s way more calculations you need to apply when you’re applying speaker impedance to an amp.


I'm not saying that every channel of the cab needs its own impedance curve.* At any one time, I'd only see one or two impedance curves being applied, since there are only two cab blocks. And, again, they are already there in numbers up to 8 in a preset, right?
But each Cab block can have four completely different IRs, each with its own default impedance curve.
 
You guys are trying to make this way too hard. All I wanted was a way to scroll through the Marshalls without having to reset the impedance curve to basketweave every time.
Exactly. Your request is for a way to lock in the impedance curve, not to migrate that curve to the Cab block or force default curves or anything else. IMO, those things add unnecessary complications to what seems to be a simple and fairly feasible wish.
 
The impedance curve isn’t an EQ curve. It’s a representation of the impedance of a cab.
[snip]
But each Cab block can have four completely different IRs, each with its own default impedance curve.
I think it's a representation of the effect of the cab's impedance on the amp.

If an amp is plugged into 4 cabs, they combine into a single net impedance curve, which effects the amp accordingly. If you bypass (disconnect) one of them, that changes what the amp sees.
 
But each Cab block can have four completely different IRs, each with its own default impedance curve.

I think I see what you're saying: by confining the impedance curve selection to the amp, you apply that one impedance curve to any of the four available channels of the cab block? Rather than having up to 4 impedance curves in the cab block applying to potentially one amp?

But I guess I'm thinking that once I save a preset, I have 8 scenes that are usually defining whatever the amp/cab combination is. Those calculations shouldn't need to be redone for all possible combinations, just those 8. Which is presumably what already happens (two amp blocks of 4 channels each).
 
I think it's a representation of the effect of the cab's impedance on the amp.
It's not, though. The impedance curves are exactly what their name implies: a representation of impedance. The effect of that impedance is calculated on the fly, based on the specific amp model and the signal it's being fed at any given moment.


If an amp is plugged into 4 cabs, they combine into a single net impedance curve, which effects the amp accordingly. If you bypass (disconnect) one of them, that changes what the amp sees.
True. You could calculate a new combined impedance curve every time you changed scenes and/or channels. But the Cab block throws in an added twist with a capability that doesn't exist in real life: if you combine one Cab slot at 0 dB with another Cab slot at -9 dB, what should the final calculated impedance be? The answer to that question has no counterpart in the real world.

When you start to move beyond the OP's wish by moving impedance curves to the Cab block and trying to assign meaningful defaults there, you introduce complications that have no "right" solution.
 
I think I see what you're saying: by confining the impedance curve selection to the amp, you apply that one impedance curve to any of the four available channels of the cab block? Rather than having up to 4 impedance curves in the cab block applying to potentially one amp?
Yes. Exactly this.


But I guess I'm thinking that once I save a preset, I have 8 scenes that are usually defining whatever the amp/cab combination is. Those calculations shouldn't need to be redone for all possible combinations, just those 8. Which is presumably what already happens (two amp blocks of 4 channels each).
That's not what already happens, though, because the impedance curve lives in the Amp block, and there's no need to calculate it at all. It's predefined. :)
 
That's not what already happens, though, because the impedance curve lives in the Amp block, and there's no need to calculate it at all. It's predefined. :)

First of all, apologies to the OP for potentially hijacking this thread, but I think it IS related.

OK, so we currently have 8 predefined impedance curves in 2 amp blocks. What I'm asking for is 8 predefined impedance curves in 2 cab blocks. Not seeing how they're substantively different. Again, it's like that cab block selection is choosing which impedance curve is selected in the amp block. But the control for setting that curve (in the amp block) is now located in the cab block, and changing the cab selection changes it.

To me, that works fine as long as you're only using one cab slot. It does get tricky as you combine unlike cabs. But even then...whichever cab is in the first slot of the channel could be what picks the impedance curve, or something simple like that. And it could be overridden by the user, as it is currently.

So think of this proposed cab block impedance curve selector as a remote switch that controls something in the amp block that is already user-selectable. But because it is in the cab block, it's sensitive to what cab you have selected.
 
You guys are trying to make this way too hard. All I wanted was a way to scroll through the Marshalls without having to reset the impedance curve to basketweave every time.

An "impedance curve lock" in the amp block per the OP is relatively easy, but a change to the design where the AMP reads the impedance data from another block somewhere in the grid (e.g. CAB) is hard because:
  1. It breaks the Axe grid signal processing design philosophy: Each block is self-contained, and signal processing flows left to right likely for "decoupled design" and CPU performance reasons (e.g. independent time invariant effects can be done in parallel or any order).

    For the AMP block to detect & read one or more impedance curves from the CAB block breaks this paradigm. It could require a large redesign of the overall behavior to allow such cross-block configuration while also detecting real-time which CAB blocks/channels are active, including if the CAB is anywhere downstream (or upstream?). Also what happens if there is no CAB block? Etc.

  2. The CAB block has up to 4 IRs and each would ideally have it's own "appropriate impedance curve". Do they all get applied or only the "first" one (as @greiswig suggests)? Do they get "averaged" according to the relative levels (per @Rex)? And so on.

    EDIT: Would also need to detect and respond to the IR Player block of which there can be two active instances in addition to two CABs.

I like it in theory and it is doable in principle, but not an easy design to figure out given the current constraints (which might have a performance objective) and all the variables that come into play.
 
Last edited:
  • Like
Reactions: Rex
First of all, apologies to the OP for potentially hijacking this thread, but I think it IS related.

OK, so we currently have 8 predefined impedance curves in 2 amp blocks. What I'm asking for is 8 predefined impedance curves in 2 cab blocks. Not seeing how they're substantively different. Again, it's like that cab block selection is choosing which impedance curve is selected in the amp block. But the control for setting that curve (in the amp block) is now located in the cab block, and changing the cab selection changes it.

To me, that works fine as long as you're only using one cab slot. It does get tricky as you combine unlike cabs. But even then...whichever cab is in the first slot of the channel could be what picks the impedance curve, or something simple like that. And it could be overridden by the user, as it is currently.

So think of this proposed cab block impedance curve selector as a remote switch that controls something in the amp block that is already user-selectable. But because it is in the cab block, it's sensitive to what cab you have selected.
I get what you're saying. Maybe it's possible to violate the block independence rule to have the Cab block tell the Amp block which impedance curve to apply. If we ignore the pitfalls of asking the Amp block to determine whether the Cab block exists and then interrogate the Cab block if it exists — note that all this has to happen while the Axe-Fx is switching scenes — we still wind up in a situation where, in many cases (multiple Cab blocks/channels, varying blend rations, first slot not being the "primary" one, etc.), we end up with an "incorrect" impedance curve. If the goal is to apply the "correct" impedance curve, we've just added complications without reaching that goal.

I think @JWDubois ' original request of locking the impedance curve is more likely to give the desired result while giving the user simple, one-stop control over the choice of impedance curve.
 
An "impedance curve lock" in the amp block per the OP is relatively easy, but a change to the design where the AMP reads the impedance data from another block somewhere in the grid (e.g. CAB) is hard because:
  1. It breaks the Axe grid signal processing design philosophy: Each block is self-contained, and signal processing flows left to right likely for "decoupled design" and CPU performance reasons (e.g. independent time invariant effects can be done in parallel or any order).

    For the AMP block to detect & read one or more impedance curves from the CAB block breaks this paradigm. It could require a large redesign of the overall behavior to allow such cross-block configuration while also detecting real-time which CAB blocks/channels are active, including if the CAB is anywhere downstream (or upstream?). Also what happens if there is no CAB block? Etc.

  2. The CAB block has up to 4 IRs and each would ideally have it's own "appropriate impedance curve". Do they all get applied or only the "first" one (as @JWDubois suggests)? Do they get "averaged" according to the relative levels (per @Rex)? And so on.

I like it in theory and it is doable in principle, but not an easy design to figure out given the current constraints (which might have a performance objective) and all the variables that come into play.
This.
 
Think Rex and I have been circling around the same challenges... then magically in FW 16.00 Cliff ends up figuring something out :p

Another option to get around this on the Axe itself would be for Axe-Edit to have a utility that lets a user assign a default SIC (speaker impedance curve) to a given IR or set of IRs (e.g. Basketweave to 4x12 MAR* and 4x12 BASKET*). Once a user selects whatever IR(s) in the CAB/IRP they can click a little button (near the IR) or enter a KB shortcut to launch a pop-up with a selection of which AMP blocks + channels to populate with their default. It puts the onus on the user to set it up how they like. Still a significant dev effort in AE though.

Now some might then suggest that Axe-Edit could already have a list of IR → SIC associations embedded to make this easier, but (1) this is a lot of maintenance not directly AE related, (2) not everyone would want the same SIC for a given IR, and (3) it wouldn't cover 3rd party IRs (of which there are 1000s more).
 
Back
Top Bottom