Nice! I know it’s been a while but have you documented your work anywhere?I am still 100% stoked about the library.
I still use my FBV into arduino to play my Axe3 every day. I can make this thing act exactly how I want it to act. I'm working on incorporating my 2nd FBV into my setup.
FC12 would be neato, but this gives me absolute control. I can choose at a granular level what every button does in every context.
I have 1200 lines of code in my thingy. I think tysonlt has half that in his library to do 10x the shit. He's the man.
Can you post your code? Hard to help otherwiseI have a few question
I registered connection call back and define function to response callback already , to get connected true or false. After call begin() i don't get callback connection.
I want to check connection and display connecting info on screen. But i don't get callback to check it
How i do it . Or i mistake something.
Thank you.
And i have a few request, i want to get effect name or effect name tag when fxid is not in current preset
I have fxid , want know effect name or tag only.
I haven't. But I do have the docs from the guys who figured out the FBV protocol and wiring.Nice! I know it’s been a while but have you documented your work anywhere?
For some reason the file looks corrupted and I'm not able to open it.I haven't. But I do have the docs from the guys who figured out the FBV protocol and wiring.
change the filetype to .xlsFor some reason the file looks corrupted and I'm not able to open it.
Can you post your code? Hard to help otherwise
void setup()
{
Serial.begin(115200);
pinMode(SwitchInput_Int_Pin, INPUT);
Axe_Setup();
}
void Axe_Setup()
{
Serial.println("- Axe System Setup -> Begin");
//register a callback so we know when preset details are available
Axe.registerConnectionStatusCallback(onConnection);
Axe.registerPresetChangingCallback(onPresetChanging);
Axe.registerPresetChangeCallback(onPresetChange);
Axe.registerSceneNameCallback(onSceneName);
Axe.registerSystemChangeCallback(onSystemChange);
Axe.registerConnectionStatusCallback(onConnection);
Axe.registerEffectsReceivedCallback(onEffectReceived);
Axe.setMidiChannel(midi_channel);
Axe.begin(Serial2);
Axe.setStartupDelay(1000);
Axe.requestFirmwareVersion();
Axe.fetchEffects(true);
//delay(500);
Axe.requestPresetDetails();
Serial.println("- Axe System Setup -> End");
}
void onConnection(const bool Connected)
{
Serial.println("\n+++++++++++Call Connection Change +++++++++++++\n\n");
connection = Connected;
Serial.println("\n+++++++++++End Call Connection Change +++++++++++++\n\n");
}
void onSystemChange()
{
}
void onPresetChange(AxePreset preset)
{
}
void onPresetChanging(const PresetNumber number)
{
}
void onSceneName(const SceneNumber number, const char* name, const byte length)
{
}
void onEffectReceived(PresetNumber number, AxePreset preset)
{
}
void loop()
{
Axe.update();
}
#include <AxeFxControl.h>
AxeSystem Axe;
midi_channel
. If you leave that off it will revert to OMNI.Plus:Is that the whole file? I don't see you including headers or declaring the Axe variable, like:
C++:#include <AxeFxControl.h> AxeSystem Axe;
Apart from that it looks ok, except I can't see where you've declaredmidi_channel
. If you leave that off it will revert to OMNI.
Try this example and see if that works: https://github.com/tysonlt/AxeFxControl/blob/main/examples/PresetDetails/PresetDetails.ino
If it's still not working I'd check how you've wired up Serial2.
#include <AxeFxControl.h>
#define SwitchInput_Int_Pin 14
AxeSystem Axe;
static byte midi_channel = 0;
bool connection = false;
void setup()
{
Serial.begin(115200);
pinMode(SwitchInput_Int_Pin, INPUT);
Axe_Setup();
}
void Axe_Setup()
{
Serial.println("- Axe System Setup -> Begin");
//register a callback so we know when preset details are available
Axe.registerConnectionStatusCallback(onConnection);
Axe.registerPresetChangingCallback(onPresetChanging);
Axe.registerPresetChangeCallback(onPresetChange);
Axe.registerSceneNameCallback(onSceneName);
Axe.registerSystemChangeCallback(onSystemChange);
Axe.registerConnectionStatusCallback(onConnection);
Axe.registerEffectsReceivedCallback(onEffectReceived);
//Axe.setMidiChannel(midi_channel);
Axe.begin(Serial2);
//Axe.setStartupDelay(1000);
//when i comment this while loop to skip this loop it working. but when i put this loop it not pass to next code. because connection it false not change to true
while(1)
{
if(connection)
{
break;
}
}
Axe.requestFirmwareVersion();
Axe.fetchEffects(true);
//delay(500);
Axe.requestPresetDetails();
Serial.println("- Axe System Setup -> End");
}
void onConnection(const bool Connected)
{
Serial.println("\n+++++++++++Call Connection Change +++++++++++++\n\n");
connection = Connected;
Serial.println("\n+++++++++++End Call Connection Change +++++++++++++\n\n");
}
void onSystemChange()
{
}
void onPresetChange(AxePreset preset)
{
}
void onPresetChanging(const PresetNumber number)
{
}
void onSceneName(const SceneNumber number, const char* name, const byte length)
{
}
void onEffectReceived(PresetNumber number, AxePreset preset)
{
}
void loop()
{
//Input switch part
.
.
.
Axe.update();
}