If you have for example #define NUM_BLADES 4
each presets needs 4 StylePtr<…>(),
and your blade array needs to have 4 blades or 4 subblades or a combination of 4 blades/subblades
For example:
Preset presets[] = {
{ "TeensySF", "tracks/venus.wav",
StyleNormalPtr<CYAN, WHITE, 300, 800>(), // style for your 1st blade
StyleNormalPtr<CYAN, WHITE, 300, 800>(), // style for your 2nd blade
StyleNormalPtr<CYAN, WHITE, 300, 800>(), // style for 3rd
StyleNormalPtr<CYAN, WHITE, 300, 800>(), // style for 4th
"cyan"},
{ "SmthJedi", "tracks/mars.wav",
StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(),
StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(),
StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(),
StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(), "blue"},
{ "SmthGrey", "tracks/mercury.wav",
StyleFirePtr<RED, YELLOW, 0>(),
StyleFirePtr<RED, YELLOW, 1>(),
StyleFirePtr<RED, YELLOW, 2>(),
StyleFirePtr<RED, YELLOW, 3>(), "fire"},
...
};
BladeConfig blades[] = {
{ 0,
WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(), // my 1st blade (the main blade)
SubBladeWithStride(0, 15, 2, WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()), // my 2nd blade (the NPXL connector - part1)
SubBladeWithStride(1, 15, 2, NULL), // my 3rd blade (the NPXL connector - part2)
WS281XBladePtr<1, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin1> >(), // my 4th blade (the crystal chamber), in your case it probably is your motor
// and your 4th blade style could be:
// StylePtr<Black>(), <-- never runs, or
// StylePtr<White>(), <-- always runs at full speed, or
// StylePtr<InOutHelper<Blue,300,800>>(), <-- runs at one third speed but only when your main blade is on, ...
CONFIGARRAY(presets) },
};
A blade in ProffieOS can be defined as “anything that lights up, or moves/rotates (like a motor)”
The order of your blades in BladeConfig blades[] can be anything you want but the order of your blade styles must match your blades order.