ProffieOS7 Style Library - Early Access Beta Testing Thread

Are you sure you enabled Special Abilities? You also need the define in your config per the title section of the Special Ability section :wink: So far, everyone who’s had trouble with Special Abilities forgot the define.

Yes. I use the Party Saber mode 1 as the first style on this board/hilt. Also, the ignition effects work with that blade style, but the color/phase does not change. Happy to take a short video if helpful.

Edit: here is the top section of my config:

// ProffieOS7 Config File
#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 2
#define NUM_BUTTONS 2
const unsigned int maxLedsPerStrip = 144;
#define VOLUME 1750
#define CLASH_THRESHOLD_G 4
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define MOTION_TIMEOUT 60 * 3 * 1000
#define IDLE_OFF_TIME 60 * 5 * 1000
#define DISABLE_BASIC_PARSER_STYLES
#define DISABLE_DIAGNOSTIC_COMMANDS
#define SHARED_POWER_PINS
#define ENABLE_ALL_EDIT_OPTIONS
#define SAVE_PRESET
#define NO_REPEAT_RANDOM
#define COLOR_CHANGE_DIRECT
#define BLADE_DETECT_PIN 17
#define FETT263_EDIT_MODE_MENU
#define FETT263_SPECIAL_ABILITIES
#define FETT263_DUAL_MODE_SOUND
#define FETT263_CLASH_STRENGTH_SOUND
#define FETT263_MAX_CLASH 16
#define FETT263_SAY_COLOR_LIST
#define FETT263_SAY_BATTERY_PERCENT
#define FETT263_LOCKUP_DELAY 200
#define FETT263_BM_CLASH_DETECT 6
#define FETT263_TWIST_ON
#define FETT263_TWIST_ON_NO_BM
#define FETT263_THRUST_ON
#define FETT263_THRUST_ON_NO_BM
#define FETT263_STAB_ON
#define FETT263_STAB_ON_NO_BM
#define FETT263_TWIST_OFF
#define FETT263_FORCE_PUSH_ALWAYS_ON
#define FETT263_FORCE_PUSH_LENGTH 5
#endif

Maybe, you only set Special Ability 1 & 4 in the style, are you sure you’re triggering the right ability?

This may not work with only 2 phases, try regular “Toggle Swing Change”, the Random function probably keeps returning the same value since it’s only got 2 to choose.

Yep. Ran through all of them. I’m a big fan of the Kestis Mutli phase mode 1 recipe (since it has been working for me) - been playing a lot with all 8 ability allocations, so I am relatively familiar at this point.

Changed this. Thanks. Did not fix the color change issue, though. I have tried different blade templates in the 2 slots, and different colors as well. I’ve tried Alt colors, fixed colors, and even setting it to the clash color. Nothing working there. I even tried adding a 3rd distinctive color (red) thinking it was a bug handling just 2 phases. Still no phase/color change.

It doesn’t seem to just be a color issue, either. I use rotoscope on phase 0, and Cal Kestis Survivor Red on phase 1. When I use special abilities, it does not seem to change color or from Hyper Responsive Rotoscope to Cal Kestis Red.

OK, I’ll take a look later just post the exact style you generated so I’m looking at the same thing.

Hmm, just thought of something, does your font for that preset contain alt000/ and alt001/? It’s possible the font is preventing the change.

It doesn’t have an alt font. Just the stock font folder. I am using Son of Correlia by Kyberphonic, and was considering changing out the hum, but his is so good. I may use one of his force effects or the stock force sound as an alt change sound, but so far, no alt000/ or alt001/

Following up on this one. I managed to be able to make changes here, but it does break if I add a 10th (style 9) phase. I wanted to add the Cal Kestis Survivor Red to the party mode 2. I can add the 10th/red color to party mode 1, but the 10th color breaks it in both the recipe, and manually building a multi-phase bladestyle.

Try adding alt000/ & alt001/ and just move boot.wav to both, can be same sound. I think that is the cause.

Does not seem to have fixed the problem. Still no phase changes. 1 or 2 alternates.

9 alternates to mimic the kestis recipe does seem to work.

OK when I added an altchng folder to alt000 and alt001, it started to work. I do get an “error in font directory” notification when I switch to the font or turn on the saber, now, but at least the phase change is working.

You most likely have a different number of sounds in the alt folders. There has to be the exact same number of each sound file in each alt/.

I have to do some rewriting for “Multi-Phase (Original ColorChange)” to let it work without alt folders and make some other changes I just ran out of time last night looking through. I’ll post when I’ve updated all the code and pushed the next version.

You will be shocked to find I am all in on “Yin Yang” :slight_smile:

So for my first test has it running but it’s slow on the switch up.

Video of first test:

The sound at the beginning is a classic “Boots to the Head” .wav as a activate spin mode.

Summary: detects angle and switches blade styles successfully but there seems to be a lag. A full spin seems to be too fast for it to detect the angle and change styles (so the blade stays constant). After the video I did an “orbit” and froze at different downward angles and the blade would eventually change over.

config:

// ProffieOS7 Config File
#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 2
#define NUM_BUTTONS 2
const unsigned int maxLedsPerStrip = 144;
#define EXTRA_COLOR_BUFFER_SPACE 30
#define VOLUME 1250
#define CLASH_THRESHOLD_G 1.5
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define KILL_OLD_PLAYERS
#define FILTER_CUTOFF_FREQUENCY 100
#define FILTER_ORDER 8
#define MOTION_TIMEOUT 60 * 15 * 1000
#define IDLE_OFF_TIME 60 * 15 * 1000
#define DISABLE_BASIC_PARSER_STYLES
#define DISABLE_DIAGNOSTIC_COMMANDS
#define ENABLE_ALL_EDIT_OPTIONS
#define SAVE_PRESET
#define NO_REPEAT_RANDOM
#define COLOR_CHANGE_DIRECT
#define FETT263_EDIT_SETTINGS_MENU
#define FETT263_SPECIAL_ABILITIES
#define FETT263_SPIN_MODE
#define FETT263_SAY_COLOR_LIST_CC
#define FETT263_SAY_BATTERY_PERCENT
#define FETT263_USE_BC_MELT_STAB
#define FETT263_LOCKUP_DELAY 200
#define FETT263_BM_CLASH_DETECT 6
#define FETT263_SWING_ON_SPEED 300
#define FETT263_SWING_ON
#define FETT263_SWING_ON_NO_BM
#define FETT263_TWIST_OFF
#endif

#ifdef CONFIG_PROP
#include "../props/saber_fett263_buttons.h"
#endif


#ifdef CONFIG_PRESETS

Preset presets[] = {
{ "PartyMix;common",  "common/tracks/GESW.wav",
/* copyright Fett263 JediSurvivor (Primary Blade) OS7 Style
https://fett263library.com/early-access/#JediSurvivor
OS7.8 v1.012
Single Style
Base Style: Cal Kestis Survivor Blue

Base Color: Kyber Select - BaseColorArg - AltColorArg - AltColor2Arg - AltColor3Arg - Rgb<255,0,255> - Rgb<255,68,0> - Rgb<115,15,240> - Rgb<100,100,150> - Rgb<180,130,0> (0)
Kyber Select Interactive Control: While Blade is On, use selected Special Ability to toggle, Swing Saber to change color (Phase).

NOTE:This style includes Control Layer. Only one Control Layer should be used per preset.

*This style supports Alt Fonts alt000/ to alt008/. Uses altchng.wav on change

--Effects Included--
Ignition Effect: Standard Ignition [Color: IgnitionColorArg]
Retraction Effect: Standard Retraction [Color: RetractionColorArg]
Lockup Effect: Intensity Lockup V1, Begin Effect: Real Clash, End Effect: Full Blade Absorb [Color: LockupColorArg]
LightningBlock Effect: Responsive Lightning Block [Color: LBColorArg]
Drag Effect: Intensity Sparking Drag [Color: DragColorArg]
Melt Effect: Intensity Melt [Color: StabColorArg]
Blast Effect: Blast Wave (Random) [Color: BlastColorArg]
Clash Effect: Real Clash V1 [Color: ClashColorArg]
Special Ability 1: Next Phase
Special Ability 2: Previous Phase
Special Ability 3: Select Random Phase
Special Ability 4: Toggle Swing Change (Random / Party Mode) Uses tr.wav #0 on toggle

*/
StylePtr<Layers<StripesX<Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<3000>,Int<3000>>,Int<8000>,Int<3000>>,Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<3000>,Int<3000>>,Int<-2600>,Int<-3600>>,ColorSelect<AltF,TrInstant,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>,Rgb<255,0,255>,Rgb<255,68,0>,Rgb<115,15,240>,Rgb<100,100,150>,Rgb<180,130,0>>,Mix<Int<12000>,Black,ColorSelect<AltF,TrInstant,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>,Rgb<255,0,255>,Rgb<255,68,0>,Rgb<115,15,240>,Rgb<100,100,150>,Rgb<180,130,0>>>,Pulsing<ColorSelect<AltF,TrInstant,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>,Rgb<255,0,255>,Rgb<255,68,0>,Rgb<115,15,240>,Rgb<100,100,150>,Rgb<180,130,0>>,Mix<Int<8000>,Black,ColorSelect<AltF,TrInstant,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>,Rgb<255,0,255>,Rgb<255,68,0>,Rgb<115,15,240>,Rgb<100,100,150>,Rgb<180,130,0>>>,1400>>,TransitionEffectL<TrDoEffectAlwaysX<TrInstant,EFFECT_ALT_SOUND,ModF<Sum<AltF,Int<1>>,Int<9>>,Int<-1>>,EFFECT_USER1>,TransitionEffectL<TrDoEffectAlwaysX<TrInstant,EFFECT_ALT_SOUND,ModF<Sum<AltF,Int<-1>>,Int<9>>,Int<-1>>,EFFECT_USER2>,TransitionEffectL<TrDoEffectAlwaysX<TrInstant,EFFECT_ALT_SOUND,ModF<Sum<AltF,Scale<RandomF,Int<1>,Int<8>>>,Int<9>>,Int<-1>>,EFFECT_USER3>,TransitionPulseL<TrSelect<IncrementModuloF<EffectPulseF<EFFECT_USER4>,Int<2>>,TrInstant,TrDoEffectX<TrInstant,EFFECT_ALT_SOUND,ModF<Sum<AltF,Scale<RandomF,Int<1>,Int<8>>>,Int<9>>,Int<-1>>>,ThresholdPulseF<SwingSpeed<320>,Int<31000>>>,TransitionEffectL<TrDoEffectX<TrInstant,EFFECT_TRANSITION_SOUND,Int<0>,Int<-1>>,EFFECT_USER4>,TransitionEffectL<TrWaveX<RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Scale<EffectRandomF<EFFECT_BLAST>,Int<100>,Int<400>>,Int<100>,Scale<EffectPosition<EFFECT_BLAST>,Int<100>,Int<400>>,Scale<EffectPosition<EFFECT_BLAST>,Int<28000>,Int<8000>>>,EFFECT_BLAST>,Mix<IsLessThan<ClashImpactF<>,Int<26000>>,TransitionEffectL<TrConcat<TrInstant,AlphaL<RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<ClashImpactF<>,Int<12000>,Int<60000>>>>,TrFadeX<Scale<ClashImpactF<>,Int<200>,Int<400>>>>,EFFECT_CLASH>,TransitionEffectL<TrWaveX<RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Scale<ClashImpactF<>,Int<100>,Int<400>>,Int<100>,Scale<ClashImpactF<>,Int<100>,Int<400>>,Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>>,EFFECT_CLASH>>,LockupTrL<TransitionEffect<AlphaMixL<Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>,BrownNoiseFlickerL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Int<200>>,StripesX<Int<1800>,Scale<NoisySoundLevel,Int<-3500>,Int<-5000>>,Mix<Int<6425>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<12850>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>>,AlphaL<AudioFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<10280>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Int<13000>>>,TrJoin<TrDelay<8000>,TrInstant>,TrFade<3000>,EFFECT_LOCKUP_BEGIN>,TrConcat<TrJoin<TrDelay<50>,TrInstant>,Mix<IsLessThan<ClashImpactF<>,Int<26000>>,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,AlphaL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<ClashImpactF<>,Int<20000>,Int<60000>>>>>,TrFade<300>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL<Strobe<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,AudioFlicker<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Blue>,50,1>,TrConcat<TrInstant,AlphaL<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Int<16000>>,30>,TrSmoothFade<600>>>,LockupTrL<AlphaL<RandomPerLEDFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrConcat<TrJoin<TrDelay<4000>,TrWipeIn<200>>,AlphaL<BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrFade<4000>>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Remap<Scale<RampF,Int<65536>,Int<0>>,StaticFire<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,Mix<TwistAngle<>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>,RotateColorsX<Int<3000>,Mix<Int<12000>,Black,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,0,3,5,3000,10>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrConcat<TrWipeIn<100>,AlphaL<RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrJoin<TrDelay<4000>,TrFade<300>>,AlphaL<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipeX<BendTimePowX<IgnitionTime<300>,Mult<IntArg<IGNITION_OPTION2_ARG,10992>,Int<98304>>>>,TrWipeInX<BendTimePowX<RetractionTime<0>,Mult<IntArg<IGNITION_OPTION2_ARG,10992>,Int<98304>>>>,Black>>>(),

/* copyright Fett263 JediSurvivor (Accent LED / PCB) OS7 Style
https://fett263library.com/early-access/#JediSurvivor
OS7.8 v1.012
Single Style
Base Style: Cal Kestis Survivor Blue

Off Behavior: Off [Color: OffColorArg]

Base Color: Kyber Select - BaseColorArg - AltColorArg - AltColor2Arg - AltColor3Arg - Rgb<255,0,255> - Rgb<255,68,0> - Rgb<115,15,240> - Rgb<100,100,150> - Rgb<180,130,0> (0)
Kyber Select Interactive Control: While Blade is On, use selected Special Ability to toggle, Swing Saber to change color (Phase).

*This style supports Alt Fonts alt000/ to alt008/. Uses altchng.wav on change

--Effects Included--
Ignition Effect: Instant [Color: IgnitionColorArg]
Retraction Effect: Instant [Color: RetractionColorArg]
Special Ability 1: Next Phase
Special Ability 2: Previous Phase
Special Ability 3: Select Random Phase
Special Ability 4: Toggle Swing Change (Random / Party Mode) Uses tr.wav #0 on toggle

*/
StylePtr<Layers<StripesX<Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<3000>,Int<3000>>,Int<8000>,Int<3000>>,Scale<HoldPeakF<Sum<EffectPulseF<EFFECT_IGNITION>,EffectPulseF<EFFECT_ALT_SOUND>>,Int<3000>,Int<3000>>,Int<-2600>,Int<-3600>>,ColorSelect<AltF,TrInstant,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>,Rgb<255,0,255>,Rgb<255,68,0>,Rgb<115,15,240>,Rgb<100,100,150>,Rgb<180,130,0>>,Mix<Int<12000>,Black,ColorSelect<AltF,TrInstant,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>,Rgb<255,0,255>,Rgb<255,68,0>,Rgb<115,15,240>,Rgb<100,100,150>,Rgb<180,130,0>>>,Pulsing<ColorSelect<AltF,TrInstant,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>,Rgb<255,0,255>,Rgb<255,68,0>,Rgb<115,15,240>,Rgb<100,100,150>,Rgb<180,130,0>>,Mix<Int<8000>,Black,ColorSelect<AltF,TrInstant,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,RgbArg<ALT_COLOR2_ARG,Rgb<0,255,0>>,RgbArg<ALT_COLOR3_ARG,Rgb<80,50,210>>,Rgb<255,0,255>,Rgb<255,68,0>,Rgb<115,15,240>,Rgb<100,100,150>,Rgb<180,130,0>>>,1400>>,InOutTrL<TrInstant,TrInstant,Black>>>(),

"PartyMix1"
},

{ "Ronin;common",  "common/tracks/mando.wav",
/* copyright Fett263 CustomBlade (Primary Blade) OS7 Style
https://fett263library.com/early-access/#CustomBlade
OS7.8 v1.012
Single Style
Yin and Yang Blade (Blade Angle)
Default: The Duel: Ronin
1: Unstable Rage

Base Color: Kyber Select - BaseColorArg - AltColorArg - AltColor2Arg - AltColor3Arg - Rgb<255,0,255> - Rgb<255,68,0> - Rgb<115,15,240> - Rgb<100,100,150> - Rgb<180,130,0> (0)
Yin and Yang Blade: Blade changes based on pointing up or down, creates yin and yang effect when spun. Kyber Select Interactive Control: While Blade is On, use selected Special Ability to toggle, Swing Saber to change color (Phase).

--Effects Included--
Ignition Effect: Standard Ignition [Color: IgnitionColorArg]
Retraction Effect: Standard Retraction [Color: RetractionColorArg]
Lockup Effect: Intensity Lockup V1, Begin Effect: Real Clash, End Effect: Full Blade Absorb [Color: LockupColorArg]
LightningBlock Effect: Responsive Lightning Block [Color: LBColorArg]
Drag Effect: Intensity Sparking Drag [Color: DragColorArg]
Melt Effect: Intensity Melt [Color: StabColorArg]
Blast Effect: Blast Wave (Random) [Color: BlastColorArg]
Clash Effect: Real Clash V1 [Color: ClashColorArg]
Special Ability 1: Next Phase
Special Ability 2: Previous Phase
Special Ability 3: Select Random Phase
Special Ability 4: Toggle Swing Change (Random / Party Mode) Uses tr.wav #0 on toggle

*/
StylePtr<Layers<Mix<IsLessThan<BladeAngle<>,Int<16000>>,HumpFlicker<Stripes<20000,-800,Gradient<RotateColorsX<Scale<Sin<Int<20>>,Int<0>,Int<4096>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RotateColorsX<Scale<Sin<Int<20>>,Int<4096>,Int<0>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,Mix<Int<12000>,Black,Gradient<RotateColorsX<Scale<Sin<Int<20>>,Int<0>,Int<4096>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RotateColorsX<Scale<Sin<Int<20>>,Int<4096>,Int<0>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>>>,Gradient<RotateColorsX<Scale<Sin<Int<20>>,Int<0>,Int<4096>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RotateColorsX<Scale<Sin<Int<20>>,Int<4096>,Int<0>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,50>,Stripes<3000,-3500,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,RandomPerLEDFlicker<Mix<Int<7710>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>>,Black>,BrownNoiseFlicker<RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,Mix<Int<3855>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>>,200>,RandomPerLEDFlicker<Mix<Int<10280>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>>,Mix<Int<3855>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>>>>>,TransitionEffectL<TrWaveX<RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Scale<EffectRandomF<EFFECT_BLAST>,Int<100>,Int<400>>,Int<100>,Scale<EffectPosition<EFFECT_BLAST>,Int<100>,Int<400>>,Scale<EffectPosition<EFFECT_BLAST>,Int<28000>,Int<8000>>>,EFFECT_BLAST>,Mix<IsLessThan<ClashImpactF<>,Int<26000>>,TransitionEffectL<TrConcat<TrInstant,AlphaL<RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<ClashImpactF<>,Int<12000>,Int<60000>>>>,TrFadeX<Scale<ClashImpactF<>,Int<200>,Int<400>>>>,EFFECT_CLASH>,TransitionEffectL<TrWaveX<RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Scale<ClashImpactF<>,Int<100>,Int<400>>,Int<100>,Scale<ClashImpactF<>,Int<100>,Int<400>>,Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>>,EFFECT_CLASH>>,LockupTrL<TransitionEffect<AlphaMixL<Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>,BrownNoiseFlickerL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Int<200>>,StripesX<Int<1800>,Scale<NoisySoundLevel,Int<-3500>,Int<-5000>>,Mix<Int<6425>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<12850>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>>,AlphaL<AudioFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<10280>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Int<13000>>>,TrJoin<TrDelay<8000>,TrInstant>,TrFade<3000>,EFFECT_LOCKUP_BEGIN>,TrConcat<TrJoin<TrDelay<50>,TrInstant>,Mix<IsLessThan<ClashImpactF<>,Int<26000>>,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,AlphaL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,16000>,Int<-10000>>>,Scale<ClashImpactF<>,Int<20000>,Int<60000>>>>>,TrFade<300>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL<Strobe<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,AudioFlicker<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Blue>,50,1>,TrConcat<TrInstant,AlphaL<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Int<16000>>,30>,TrSmoothFade<600>>>,LockupTrL<AlphaL<RandomPerLEDFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrConcat<TrJoin<TrDelay<4000>,TrWipeIn<200>>,AlphaL<BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrFade<4000>>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Remap<Scale<RampF,Int<65536>,Int<0>>,StaticFire<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,Mix<TwistAngle<>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>,RotateColorsX<Int<3000>,Mix<Int<12000>,Black,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,0,3,5,3000,10>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrConcat<TrWipeIn<100>,AlphaL<RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrJoin<TrDelay<4000>,TrFade<300>>,AlphaL<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipeX<BendTimePowX<IgnitionTime<300>,Mult<IntArg<IGNITION_OPTION2_ARG,10992>,Int<98304>>>>,TrWipeInX<BendTimePowX<RetractionTime<0>,Mult<IntArg<IGNITION_OPTION2_ARG,10992>,Int<98304>>>>,Black>>>(),

/* copyright Fett263 CustomBlade (Accent LED / PCB) OS7 Style
https://fett263library.com/early-access/#CustomBlade
OS7.8 v1.012
Single Style
Yin and Yang Blade (Blade Angle)
Default: The Duel: Ronin
1: Unstable Rage

Off Behavior: Off [Color: OffColorArg]

Base Color: Kyber Select - BaseColorArg - AltColorArg - AltColor2Arg - AltColor3Arg - Rgb<255,0,255> - Rgb<255,68,0> - Rgb<115,15,240> - Rgb<100,100,150> - Rgb<180,130,0> (0)
Yin and Yang Blade: Blade changes based on pointing up or down, creates yin and yang effect when spun. Kyber Select Interactive Control: While Blade is On, use selected Special Ability to toggle, Swing Saber to change color (Phase).

--Effects Included--
Ignition Effect: Instant [Color: IgnitionColorArg]
Retraction Effect: Instant [Color: RetractionColorArg]
Special Ability 1: Next Phase
Special Ability 2: Previous Phase
Special Ability 3: Select Random Phase
Special Ability 4: Toggle Swing Change (Random / Party Mode) Uses tr.wav #0 on toggle

*/
StylePtr<Layers<Mix<IsLessThan<BladeAngle<>,Int<16000>>,HumpFlicker<Stripes<20000,-800,Gradient<RotateColorsX<Scale<Sin<Int<20>>,Int<0>,Int<4096>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RotateColorsX<Scale<Sin<Int<20>>,Int<4096>,Int<0>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,Mix<Int<12000>,Black,Gradient<RotateColorsX<Scale<Sin<Int<20>>,Int<0>,Int<4096>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RotateColorsX<Scale<Sin<Int<20>>,Int<4096>,Int<0>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>>>,Gradient<RotateColorsX<Scale<Sin<Int<20>>,Int<0>,Int<4096>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RotateColorsX<Scale<Sin<Int<20>>,Int<4096>,Int<0>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,50>,Stripes<3000,-3500,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,RandomPerLEDFlicker<Mix<Int<7710>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>>,Black>,BrownNoiseFlicker<RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>,Mix<Int<3855>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>>,200>,RandomPerLEDFlicker<Mix<Int<10280>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>>,Mix<Int<3855>,Black,RgbArg<ALT_COLOR_ARG,Rgb<0,255,255>>>>>>,InOutTrL<TrInstant,TrInstant,Black>>>(),

"YinYang"
},

};

BladeConfig blades[] = {
 { 0, WS281XBladePtr<125, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
    WS281XBladePtr<14, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >()
  , CONFIGARRAY(presets) },
};

#endif

#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
Button AuxButton(BUTTON_AUX, auxPin, "aux");
#endif

 /* Generated with Fett263 Config Helper v3.0 */

It is probably the BladeAngle<> function, I’m not nearly as good at spinning so I can’t get to those speeds. The Mix<> is pretty responsive but if the BladeAngle<> function is slow to return the updated value it could be slightly behind where the blade actually is. I’ll see if I can tweak the function a bit but will probably need someone better at spinning to test.

Glad to help test.

I have a theory, can you try it again with just “Static” blades with different colors and add the following define. I did a simple test and Mix<> is normally pretty responsive but more complex blade styles might be delaying the BladeAngle<> calculation a bit. Also, in the beginning of the style look for “BladeAngle<>,Int<16000>”, just change the 16000 to 16384 (very minor tweak) just to give the blade a true 50/50 break.

#define EXTRA_COLOR_BUFFER_SPACE 60

This define will give a little more “juice” to the visual effect processing (in theory) and then running just “Static” blades should free up the processor to calculate blade angle faster. From there we can try other styles (try to avoid anything Fire or Unstable as those typically require the most processing). There’s going to be a tradeoff the faster you intend to spin and the speed the board can process the angle and effects together.

1 Like

I read the documentation maybe 15 times before attempting this. I have the exact same number of files, with the exact same names in all alt folders. Still getting “error in font directory,” but it does seem to be working otherwise, now, with the presence of alt000 & alt001, with /altchng/ included. Is there a minimum number of files required? like should it work if I just had 001.wav sound in /altchng/ and a hum.wav - should that work? Are there folders in the root font folder that might cause conflicts e.g. /_Extras/ often included with fonts?

Remove this define and upload, then connect to Tools > Serial Monitor and type ‘effects’ it will print out which sounds are causing the error message.

#define DISABLE_DIAGNOSTIC_COMMANDS

@LyleStyle *Borderline off-topic but I gotta ask.

Boot to the head as in old-school Dr. Demento (Frantics) regarding song 16? :smiley:

Ed Gruberman was a master in training. :wink: He followed the path of The Chosen One Anakin.

1 Like