Axe-Fx II "Quantum" Rev 10.01 Firmware Release

As a programmer I am amused that an uninitialized variable would manifest as background noise.

One of the tricks-of-the-trade when doing embedded programming is to make local copies of member variables. I.e., if you have an object foo with a member bar you would do this:

float bar;
...

bar = foo.bar;

for(i = 0; i < FRAME_SIZE; i++)
{
...
bar = bar * x; // for example
...
}

foo.bar = bar;

The operation on bar is a "Read-Modify-Write (RMW)" and most embedded processors are optimized for this if the memory is L1 cache (or some other tightly-coupled on-chip memory). By making a local copy you force the compiler to use fast, local memory. When you are done with the loop you then save the local variable to the object.

Some compilers will do this automatically if you give them some information about the variable via a pragma. I think it's just easier to manually do it rather than dealing with pragmas which aren't portable.

The danger with doing this is if you forget to initialize bar or save it at the end, which is what I did.
 
What does Ares (or some com details from it which have been imported to the Axe II)do?. I can remember some tests from Cliff with Amps on full volume - comparing with real amps.
 
As a programmer I am amused that an uninitialized variable would manifest as background noise.
As an hardware/software engineer, I'm not amused, obviously the tools you're using don't catch those type of errors. Sounds like you're not doing code reviews. I would love to have more usable effects in my AX8 - so get those firmware updates rolling !!
 
Thanks so much Cliff for letting us to have a piece of the III taste in the II, just a question ... Friedman 2018 is based on which mode of a BE amp or that's a new version???
 
Back
Top Bottom