Arduino Axe-Fx control library

Good info, really interesting and easy implemented imo.

Asking such questions on coding forums end up in mostly answers like "how its meant to work" but not actuallyshowing the purpose, or like "if you need a programmer pay up". But actually examples on how its done is not so common. In my case this is a very usefull resource. Thnx for sharing

Cheers 🍻
No problem... I learned about the concept about 25 years back when I was hired to take over maintenance of a source code release management process written with Perl wrapped around RCS.

It was chock-full of hashes of hashes, arrays and strings and made heavy use of lookups to allow for a very modular "abstraction" to be applied.

Very clever and efficient, but I had to learn it from the code as the developer was long gone, and I'd never seen such things before :)
 
No problem... I learned about the concept about 25 years back when I was hired to take over maintenance of a source code release management process written with Perl wrapped around RCS.

It was chock-full of hashes of hashes, arrays and strings and made heavy use of lookups to allow for a very modular "abstraction" to be applied.

Very clever and efficient, but I had to learn it from the code as the developer was long gone, and I'd never seen such things before :)
It's funny, I come from a java background but have mostly used php and ruby for the last 10 years or so. I use hashes all the time and do some sneaky things with them, but I don't really know how they work internally! The risk of using those 'high-level' languages I suppose. AlbertA really saved the day contributing that hash algorithm for the effect names.
 
Hi tysonIt,
I checked out your GitHub... very nice!
Do you know if there's any way to control Global EQ(n) sliders via MIDI (or any other way)?

I've got an FM3 I'm trying to work with.
 
Hey, the public MIDI spec is really only for switching blocks and channels. It can’t set specific parameters on effects. You’d be better off checking out FracPad for that, with a Bluetooth midi dongle.
 
You’re looking at reverse-engineering the protocol used by AxeEdit. This is no mean feat, and I’m sure FAS has not released that protocol for a reason. I believe Al has said previously that he paid for access to the protocol?
 
Yeah... I hear what you're sayin'
Sometimes it's just a dream to imagine more, better or easier especially when comes to gear. Thanks for the voice of reason!
 
Has anyone else had problems with the active preset name not properly updating via Sysex?

The Preset Details example no longer updates the changed preset name on the serial monitor.
 
Has anyone else had problems with the active preset name not properly updating via Sysex?

The Preset Details example no longer updates the changed preset name on the serial monitor.
Hi snooze, have you got sysex update messages turned on in the Axe midi settings? That’s the most likely culprit.
 
Hi snooze, have you got sysex update messages turned on in the Axe midi settings? That’s the most likely culprit.
Yes, I have it set correctly.

Some more info, it is only the preset name that is not updating via sysex.

Scene name updates work completely fine.

EDIT: It is only recently that preset name updates have not been working properly. I have had several months of proper sysex operation prior to this issue.
 
Hmm I have no idea! I don’t have the hardware anymore, so it’s hard for me to test from here. Perhaps ask if anyone else has the same issue or has it working and compare code
 
Hmm I have no idea! I don’t have the hardware anymore, so it’s hard for me to test from here. Perhaps ask if anyone else has the same issue or has it working and compare code
I must admit the error was on my part...had recently reset the FM3 to factory configuration and forgot to re-emable "Send MIDI PC"!
 
Another question, is there provision in this library to read MIDI PC/CC from the FM3?

For example, have the control library be able to respond to MIDI messages from the MIDI block in a scene/preset.
 
I have few Question
- how to set to FM3 Model in Version 1.2 . Because in source code not same previous verion , i'm not sure to edit

Please tell me. i'm a newby for arduino coding.


Axecontrol Previous Version
class AxeSystem {
public:
const static byte FRACTAL_PRODUCT_AXEFX3 = 0x10;
const static byte FRACTAL_PRODUCT_FM3 = 0x11;
AxeSystem(byte sysexFractalVersion = FRACTAL_PRODUCT_FM3) {
_sysexFractalVersion = sysexFractalVersion;
_looper.setAxeSystem(this);
}


Axe Control Version 1.2 (latest)
class AxeSystem {
public:
AxeSystem() {
_looper.setAxeSystem(this);
}
 
Another question, is there provision in this library to read MIDI PC/CC from the FM3?

For example, have the control library be able to respond to MIDI messages from the MIDI block in a scene/preset.
It listens for every MIDI message coming from the Axe, so AFAIK there's no reason this shouldn't work. However I don't think the library will issue a callback for messages that aren't currently handled. You can call registerSysexPluginCallback to add a function to handle sysex. Make sure you check the message type and return false if you're not handling it, or no other sysex will be processed.

As for handling custom PC/CC, it currently only responds to messages defined in the MIDI spec. All PC messages will be processed by onPresetChange so you could add custom stuff in there. As for CC, which would probably be more useful, it currently only listens for bank change. Some hacking would be required to change this.

I must find my arduino stuff so I can test some changes. Haven't seen it since I moved.
 
Back
Top Bottom