Patriotic/America-Themed Blade Style and sound font?

Does anyone know how I could get a red white and blue blade style that has a “flag waving” kind of effect? And to complement that, does anyone know of an america/patriotic themed sound font?

You could build something in Fett263’s library and then upload the national Anthem or something as a .wav file in the track player.

The 250 4th of July here in NYC was pretty cool with boats in the river and F-16s over head… maybe a flight based sound font and boat horns for lock up? Might have to craft a lot of that yourself in audacity.

I was intrigued by your request and decided to give it a go. Below is my interpretation of your idea in both a style and using function so you can have it either way. I am working on a sound to go with it which I’ll bring back here when done! Enjoy!

As Style

/* copyright JMT Sabers - Waving Flag (USA)
https://jmtfoundry.com/
Free to use and modify. Please keep this credit when you share or repost.
Big thanks to Fett263 - the combat effects, preon and postoff are grafted from his ProffieOS Style Library (https://www.fett263.com/fett263-proffieOS7-style-library.html#CustomBlade).
Try JMT Studio for your next ProffieOS build!
*/
StylePtr<Layers< Black, AlphaL< StripesX< Int<4000>, Scale< SwingSpeed<200>, Int<-20>, Int<-2500> >, Red, White, Red, White >, Int<32768> >, AlphaL< Blue, SmoothStep< Int<9000>, Int<-1500> > >, AlphaL< SparkleL<White>, SmoothStep< Int<9000>, Int<-1500> > >, AlphaL< Black, Mult< Mult< Bump< Saw< Int<15> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<-32768> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<8192> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<-24576> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<16384> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<-16384> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<24576> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<-8192> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, 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< AlphaL< 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<22000> > >, AudioFlicker< RgbArg< LOCKUP_COLOR_ARG, Rgb<255, 255, 255> >, Mix< Int<12000>, Black, RgbArg< LOCKUP_COLOR_ARG, Rgb<255, 255, 255> > > >, BrownNoiseFlicker< RgbArg< LOCKUP_COLOR_ARG, Rgb<255, 255, 255> >, Mix< Int<12000>, Black, RgbArg< LOCKUP_COLOR_ARG, Rgb<255, 255, 255> > >, 300 > >, 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<22000> > > >, AlphaL< AudioFlicker< RgbArg< LOCKUP_COLOR_ARG, Rgb<255, 255, 255> >, Mix< Int<20000>, 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> > >, Scale< SwingSpeed<100>, Int<14000>, Int<18000> > > >, TrExtend<5000, TrInstant>, TrFade<5000>, 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, Int<1> >, ResponsiveLightningBlockL< Strobe< RgbArg< LB_COLOR_ARG, Rgb<255, 255, 255> >, AudioFlicker< RgbArg< LB_COLOR_ARG, Rgb<255, 255, 255> >, Blue >, 50, 1 >, TrConcat< TrExtend<200, TrInstant>, AlphaL< RgbArg< LB_COLOR_ARG, Rgb<255, 255, 255> >, Bump< Scale< BladeAngle<>, Int<10000>, Int<21000> >, Int<10000> > >, TrFade<200> >, TrConcat< TrInstant, RgbArg< LB_COLOR_ARG, Rgb<255, 255, 255> >, TrFade<400> >, Int<1> >, LockupTrL< AlphaL< TransitionEffect< RandomPerLEDFlickerL< RgbArg< DRAG_COLOR_ARG, Rgb<255, 255, 255> > >, BrownNoiseFlickerL< RgbArg< DRAG_COLOR_ARG, Rgb<255, 255, 255> >, Int<300> >, TrExtend<4000, TrInstant>, TrFade<4000>, EFFECT_DRAG_BEGIN >, SmoothStep< Scale< TwistAngle<>, IntArg<DRAG_SIZE_ARG, 28000>, Int<30000> >, Int<3000> > >, TrWipeIn<200>, TrWipe<200>, SaberBase::LOCKUP_DRAG, Int<1> >, LockupTrL< AlphaL< Stripes< 2000, 4000, Mix< TwistAngle<>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> >, RotateColorsX< Int<3000>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> > > >, Mix< Sin< Int<50> >, Black, Mix< TwistAngle<>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> >, RotateColorsX< Int<3000>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> > > > >, Mix< Int<4096>, Black, Mix< TwistAngle<>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> >, RotateColorsX< Int<3000>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> > > > > >, SmoothStep< Scale< TwistAngle<>, IntArg<MELT_SIZE_ARG, 28000>, Int<30000> >, Int<3000> > >, TrConcat< TrExtend< 4000, TrWipeIn<200> >, AlphaL< HumpFlicker< Mix< TwistAngle<>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> >, RotateColorsX< Int<3000>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> > > >, RotateColorsX< Int<3000>, Mix< TwistAngle<>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> >, RotateColorsX< Int<3000>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> > > > >, 100 >, SmoothStep< Scale< TwistAngle<>, IntArg<MELT_SIZE_ARG, 28000>, Int<30000> >, Int<3000> > >, TrFade<4000> >, TrWipe<200>, SaberBase::LOCKUP_MELT, Int<1> >, InOutTrL< TrWipeX< BendTimePowInvX< IgnitionTime<300>, Mult< IntArg<IGNITION_OPTION2_ARG, 10992>, Int<98304> > > >, TrWipeInX< BendTimePowX< RetractionTime<0>, Mult< IntArg<RETRACTION_OPTION2_ARG, 10992>, Int<98304> > > >, Black >, TransitionEffectL< TrConcat< TrFadeX< Mult< Int<8192>, WavLen<EFFECT_PREON> > >, AlphaL< HumpFlickerL< RgbArg< PREON_COLOR_ARG, Rgb<255, 255, 255> >, 10 >, SmoothStep< IntArg<PREON_SIZE_ARG, 2000>, Int<-4000> > >, TrFadeX< Mult< Int<8192>, WavLen<EFFECT_PREON> > >, AlphaL< HumpFlickerL< RgbArg< PREON_COLOR_ARG, Rgb<255, 255, 255> >, 15 >, SmoothStep< Sum< Int<2000>, IntArg<PREON_SIZE_ARG, 2000> >, Int<-4000> > >, TrFadeX< Mult< Int<8192>, WavLen<EFFECT_PREON> > >, AlphaL< HumpFlickerL< RgbArg< PREON_COLOR_ARG, Rgb<255, 255, 255> >, 20 >, SmoothStep< Sum< Int<4000>, IntArg<PREON_SIZE_ARG, 2000> >, Int<-4000> > >, TrBoingX< Mult< Int<8192>, WavLen<EFFECT_PREON> >, 3 > >, EFFECT_PREON >, TransitionEffectL< TrConcat< TrInstant, AlphaL< BrownNoiseFlickerL< RgbArg< POSTOFF_COLOR_ARG, Rgb<255, 255, 255> >, Int<30> >, SmoothStep< Scale< SlowNoise< Int<2000> >, IntArg<EMITTER_SIZE_ARG, 2000>, Sum< IntArg<EMITTER_SIZE_ARG, 2000>, Int<3000> > >, Int<-4000> > >, TrDelayX< Scale< IsLessThan< WavLen<EFFECT_POSTOFF>, Int<200> >, WavLen<EFFECT_POSTOFF>, Int<4000> > > >, EFFECT_POSTOFF >, EffectSequence< EFFECT_POWERSAVE, AlphaL< Black, Int<8192> >, AlphaL< Black, Int<16384> >, AlphaL< Black, Int<24576> >, AlphaL< Black, Int<0> > >, TransitionEffectL< TrConcat< TrJoin< TrDelay<2000>, TrInstant >, AlphaL< Mix<BatteryLevel, Red, Green>, Bump< BatteryLevel, Int<10000> > >, TrFade<300> >, EFFECT_BATTERY_LEVEL >, TransitionEffectL< TrConcat< TrExtend< 2000, TrWipe<100> >, AlphaL< RgbArg< BASE_COLOR_ARG, Rgb<0, 0, 255> >, SmoothStep< VolumeLevel, Int<-1> > >, TrFade<300> >, EFFECT_VOLUME_LEVEL > >>(),

As Using Function

/*----------------------------- WavingFlagUSA ------------------------------*/
// source: JMT Sabers - Waving Flag (USA)
// url: https://jmtfoundry.com/
// notes: Free to use and modify. Please keep this credit when you share or repost.
// Big thanks to Fett263 - the combat effects, preon and postoff are grafted from his ProffieOS Style Library (https://www.fett263.com/fett263-proffieOS7-style-library.html#CustomBlade).
// Try JMT Studio for your next ProffieOS build!
using WavingFlagUSA = Layers< Black, AlphaL< StripesX< Int<4000>, Scale< SwingSpeed<200>, Int<-20>, Int<-2500> >, Red, White, Red, White >, Int<32768> >, AlphaL< Blue, SmoothStep< Int<9000>, Int<-1500> > >, AlphaL< SparkleL<White>, SmoothStep< Int<9000>, Int<-1500> > >, AlphaL< Black, Mult< Mult< Bump< Saw< Int<15> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<-32768> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<8192> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<-24576> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<16384> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<-16384> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<24576> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, AlphaL< Black, Mult< Mult< Bump< Sum< Saw< Int<15> >, Int<-8192> >, Int<3500> >, SmoothStep< Int<16384>, Int<-32768> > >, Int<20000> > >, 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< AlphaL< 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<22000> > >, AudioFlicker< RgbArg< LOCKUP_COLOR_ARG, Rgb<255, 255, 255> >, Mix< Int<12000>, Black, RgbArg< LOCKUP_COLOR_ARG, Rgb<255, 255, 255> > > >, BrownNoiseFlicker< RgbArg< LOCKUP_COLOR_ARG, Rgb<255, 255, 255> >, Mix< Int<12000>, Black, RgbArg< LOCKUP_COLOR_ARG, Rgb<255, 255, 255> > >, 300 > >, 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<22000> > > >, AlphaL< AudioFlicker< RgbArg< LOCKUP_COLOR_ARG, Rgb<255, 255, 255> >, Mix< Int<20000>, 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> > >, Scale< SwingSpeed<100>, Int<14000>, Int<18000> > > >, TrExtend<5000, TrInstant>, TrFade<5000>, 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, Int<1> >, ResponsiveLightningBlockL< Strobe< RgbArg< LB_COLOR_ARG, Rgb<255, 255, 255> >, AudioFlicker< RgbArg< LB_COLOR_ARG, Rgb<255, 255, 255> >, Blue >, 50, 1 >, TrConcat< TrExtend<200, TrInstant>, AlphaL< RgbArg< LB_COLOR_ARG, Rgb<255, 255, 255> >, Bump< Scale< BladeAngle<>, Int<10000>, Int<21000> >, Int<10000> > >, TrFade<200> >, TrConcat< TrInstant, RgbArg< LB_COLOR_ARG, Rgb<255, 255, 255> >, TrFade<400> >, Int<1> >, LockupTrL< AlphaL< TransitionEffect< RandomPerLEDFlickerL< RgbArg< DRAG_COLOR_ARG, Rgb<255, 255, 255> > >, BrownNoiseFlickerL< RgbArg< DRAG_COLOR_ARG, Rgb<255, 255, 255> >, Int<300> >, TrExtend<4000, TrInstant>, TrFade<4000>, EFFECT_DRAG_BEGIN >, SmoothStep< Scale< TwistAngle<>, IntArg<DRAG_SIZE_ARG, 28000>, Int<30000> >, Int<3000> > >, TrWipeIn<200>, TrWipe<200>, SaberBase::LOCKUP_DRAG, Int<1> >, LockupTrL< AlphaL< Stripes< 2000, 4000, Mix< TwistAngle<>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> >, RotateColorsX< Int<3000>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> > > >, Mix< Sin< Int<50> >, Black, Mix< TwistAngle<>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> >, RotateColorsX< Int<3000>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> > > > >, Mix< Int<4096>, Black, Mix< TwistAngle<>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> >, RotateColorsX< Int<3000>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> > > > > >, SmoothStep< Scale< TwistAngle<>, IntArg<MELT_SIZE_ARG, 28000>, Int<30000> >, Int<3000> > >, TrConcat< TrExtend< 4000, TrWipeIn<200> >, AlphaL< HumpFlicker< Mix< TwistAngle<>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> >, RotateColorsX< Int<3000>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> > > >, RotateColorsX< Int<3000>, Mix< TwistAngle<>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> >, RotateColorsX< Int<3000>, RgbArg< STAB_COLOR_ARG, Rgb<255, 68, 0> > > > >, 100 >, SmoothStep< Scale< TwistAngle<>, IntArg<MELT_SIZE_ARG, 28000>, Int<30000> >, Int<3000> > >, TrFade<4000> >, TrWipe<200>, SaberBase::LOCKUP_MELT, Int<1> >, InOutTrL< TrWipeX< BendTimePowInvX< IgnitionTime<300>, Mult< IntArg<IGNITION_OPTION2_ARG, 10992>, Int<98304> > > >, TrWipeInX< BendTimePowX< RetractionTime<0>, Mult< IntArg<RETRACTION_OPTION2_ARG, 10992>, Int<98304> > > >, Black >, TransitionEffectL< TrConcat< TrFadeX< Mult< Int<8192>, WavLen<EFFECT_PREON> > >, AlphaL< HumpFlickerL< RgbArg< PREON_COLOR_ARG, Rgb<255, 255, 255> >, 10 >, SmoothStep< IntArg<PREON_SIZE_ARG, 2000>, Int<-4000> > >, TrFadeX< Mult< Int<8192>, WavLen<EFFECT_PREON> > >, AlphaL< HumpFlickerL< RgbArg< PREON_COLOR_ARG, Rgb<255, 255, 255> >, 15 >, SmoothStep< Sum< Int<2000>, IntArg<PREON_SIZE_ARG, 2000> >, Int<-4000> > >, TrFadeX< Mult< Int<8192>, WavLen<EFFECT_PREON> > >, AlphaL< HumpFlickerL< RgbArg< PREON_COLOR_ARG, Rgb<255, 255, 255> >, 20 >, SmoothStep< Sum< Int<4000>, IntArg<PREON_SIZE_ARG, 2000> >, Int<-4000> > >, TrBoingX< Mult< Int<8192>, WavLen<EFFECT_PREON> >, 3 > >, EFFECT_PREON >, TransitionEffectL< TrConcat< TrInstant, AlphaL< BrownNoiseFlickerL< RgbArg< POSTOFF_COLOR_ARG, Rgb<255, 255, 255> >, Int<30> >, SmoothStep< Scale< SlowNoise< Int<2000> >, IntArg<EMITTER_SIZE_ARG, 2000>, Sum< IntArg<EMITTER_SIZE_ARG, 2000>, Int<3000> > >, Int<-4000> > >, TrDelayX< Scale< IsLessThan< WavLen<EFFECT_POSTOFF>, Int<200> >, WavLen<EFFECT_POSTOFF>, Int<4000> > > >, EFFECT_POSTOFF >, EffectSequence< EFFECT_POWERSAVE, AlphaL< Black, Int<8192> >, AlphaL< Black, Int<16384> >, AlphaL< Black, Int<24576> >, AlphaL< Black, Int<0> > >, TransitionEffectL< TrConcat< TrJoin< TrDelay<2000>, TrInstant >, AlphaL< Mix<BatteryLevel, Red, Green>, Bump< BatteryLevel, Int<10000> > >, TrFade<300> >, EFFECT_BATTERY_LEVEL >, TransitionEffectL< TrConcat< TrExtend< 2000, TrWipe<100> >, AlphaL< RgbArg< BASE_COLOR_ARG, Rgb<0, 0, 255> >, SmoothStep< VolumeLevel, Int<-1> > >, TrFade<300> >, EFFECT_VOLUME_LEVEL > >;
/*
Add to preset as StylePtr<WavingFlagUSA>()
--------------------------------------------------------------------------*/

UPDATE 2026-08-06: The style worked on OS8 but would not compile on OS7. It has now been updated to build on both. If you copied it before today, grab it again. The only change is an AlphaL wrapper on the first layer, which OS7 requires. The output is identical.

1 Like

Wow Thanks! I’ll give it a go as soon as I can! My proffie saber is still in transit at the moment but whenever you make a sound I can try it on my snv4 or xenopixel saber using NoSloppy’s converter

What exactly is the difference between style and function? Sorry I’m a bit new to proffie. Only heard of style thus far

Great question, and no worries being new to it. They’re actually the same style, just two ways to write it in your config.

The “style” is the whole block dropped straight into a preset. The “function” gives that same block a name (you put it at the top of your config, or in a separate include file), and then your preset just calls it by that name, like StylePtr().

I prefer the function: you can keep all your style definitions in one place so your presets stay short and clean, and you can reuse the same style across multiple presets without pasting the whole block again.

Either version I posted gives you the exact same blade, so pick whichever fits how you like to organize things.

If you want the full detail, Fredrik’s docs walk through the styles section here: ProffieOS Documentation: The CONFIG_STYLES section

FWIW, it’s more semantically correct and in line with the actual C++ syntax to just call it an “alias.” “Function” is rather misleading/confusing.

Ok, here’s my attempt at a Proffie soundfont I’m calling OldGlory. It’s built off of
the hums and clashes of LiquidStatic by Lord Nikahn (Blue Force Company), released
under CC BY-SA 4.0, so this one carries the same license and is free to use or
modify. It’s my own derivative and isn’t endorsed by them.

It has a preon and a pstoff sound. You can remove pstoff.wav if it becomes a bit
annoying but I like it. There are some tracks in there I found and included, as well
as force sounds that are jet flyovers. The lightning block is like a barrage of
fireworks. I have it on one of my sabers now along with the style above and it’s
working quite nicely for me. Enjoy!

2 Likes

now I just need to put “courtesy of the red white and blue” on it :joy:

boot.wav is close to that :wink:

oh I mean the song

lol good song.

I updated the style in the earlier post rather than posting a corrected copy down here, so anyone finding this thread later copies a version that builds on both OS7 and OS8. There is a note at the bottom of that post saying what changed.

Here is what was actually going on, in case it is useful to anyone else.

On OS7 the original died with:

error: ambiguous overload for 'operator<<' (SimpleColor, SimpleColor)
styles/layers.h:41

Layers composes each layer onto the one below it with base.getColor(led) << layer.getColor(led). Black returns a SimpleColor, and StripesX also returns a SimpleColor because it is opaque rather than an alpha layer. On OS7 every operator<< in common/color.h expects something alpha carrying on the right, so there is no exact match with SimpleColor on both sides. It reports ambiguous rather than no match because two implicit conversions are available, RGBA_um_nod and OverDriveColor, and neither one wins.

OS8 never forms that expression at all. It added a Compose<BLACK, LAYER> specialization, commented “Optimize Layer<Black, LAYER> / Allows LAYER to be opaque”, which handles a Black base directly. So the same style builds there with nothing to warn you that it depends on it.

The fix is to wrap the first layer so it carries alpha:

// before
Layers<Black, StripesX<...>, ...>
// after
Layers<Black, AlphaL<StripesX<...>, Int<32768>>, ...>

AlphaL returns color * alpha, and operator*(const SimpleColor&, uint16_t) returns RGBA_um_nod explicitly, so the expression becomes SimpleColor on the left and RGBA_um_nod on the right. Exact match, nothing to choose between.

At Int<32768> the pixels are unchanged. The paint over reduces to (base * (32768 - 32768) + over * 32768) >> 15, which is exactly over. I compiled it on 7.15 and flashed it, and every effect behaves the same as before.

So the lesson to me was that a style building fine in the ProffieOS Style Builder or even on actual hardware running OS8, doesn’t mean it will compile on other ProffieOS versions. Oh, and to round out this post, here’s a visual of the style.
WavingFlagUSA

2 Likes

hey another question. Do you know how I’m meant to get the fpc gaurd to move on my micro USB low profile cable so I can put the ribbon in?

I see you asked this in probably a better thread for it and I will go over to that one to answer.