Identification of OS version in blade style

Is there a relatively easy way to identify if a particular blade style (or code line) was written for OS 4, 5, 6, etc?

Mostly in the interests of code efficiency, but also if it’ll cause an issue with OS6/7. Like a “deprecated code” list or a “code compatibility checker” as if Fett263 needs more work :laughing:

Sometimes there’s a notation that a particular style or individual line was written for a previous OS version, but usually not, and with OS7 on the horizon, it’d be nice to have everything fully clean and compatible.

My library includes OS version in the style comments beginning with OS6. OS5 to OS6 had the biggest syntax and structure change. OS7 is using same syntax and structure as OS6 just with new features and capabilities. When I mention “mixing” it is typically related to pre-OS6 mixed with OS6 or later as the differences in OS6 were extensive.

Yes, that’s what I’m referring to. How can one eyeball if it’s an old (pre OS6) code?

Pre OS6 won’t have any ARGs.
However, styles that incorporate => OS6 features don’t necessarily have ARGs, and might not use them at all, so it’s not a rule of thumb to determine that it’s pre OS6.

IS there a rule of thumb?

I mean, if not, that’s OK, but some soundfonts come with nice bundled styles that I’d prefer not to replicate if I don’t have to.

Found one I like. No ARGs. It works in OS6 and I think all the features work but dunno if I’m missing something fun. Looks much simpler compared to some out of the OS6 style editor.

Older styles are totally compatible through the latest operating system. There’s nothing you can’t use, the only consideration is what it offers, and how much memory it takes up,

All previous styles still work fine, whenever I refer to not mixing old syntax it’s in response to users wanting to fit more on their board. To maximize the use of FLASH memory on your board I recommend using all styles with the same syntax and structure (which the library provides) but if there’s a style you really like, whether it’s older or not, you can certainly add and use without issue, just bear in mind you are sacrificing some memory to do so. It will always be a trade-off, if you like more complex or older styles you probably won’t fit as many on the board, if you’re the type who just wants a lot of styles on your board then you need to use styles that are more efficiently built and intended to maximize memory :wink:

I read as much in the docs, but wasn’t sure if there was a DEAD giveaway

Thanks fellas!

Oh duh, forgot to post style in question :roll_eyes:

StylePtr<Layers<
  Stripes<15000,-300,RotateColorsX<Variation,Yellow>,Pulsing<RotateColorsX<Variation,Rgb<200,200,30>>,RotateColorsX<Variation,Rgb<180,180,0>>,800>,RotateColorsX<Variation,Rgb<180,180,0>>>,
  TransitionEffectL<TrConcat<TrFade<600>,RandomFlicker<RotateColorsX<Variation,Rgb<180,180,0>>,RotateColorsX<Variation,Rgb<113,113,0>>>,TrDelay<30000>,RotateColorsX<Variation,Rgb<180,180,0>>,TrFade<800>>,EFFECT_FORCE>,
  AlphaL<RotateColorsX<Variation,Rgb<255,80,10>>,Scale<IsLessThan<SwingSpeed<300>,Int<13600>>,Scale<SwingSpeed<300>,Int<-19300>,Int<32768>>,Int<0>>>,
  LockupTrL<Layers<
    AlphaL<AudioFlickerL<White>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<4000>,Int<26000>>,Int<6000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,
    AlphaL<White,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<4000>,Int<26000>>,Int<6000>>,Int<10000>>>>,TrConcat<TrInstant,TransitionEffect<Rgb<255,150,0>,Moccasin,TrInstant,TrFade<200>,EFFECT_LOCKUP_BEGIN>,TrFade<400>>,TrConcat<TrInstant,Red,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,
  ResponsiveLightningBlockL<Strobe<White,AudioFlicker<White,Blue>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,
  AlphaL<RotateColorsX<Variation,Rgb<230,180,80>>,Bump<Int<0>,Int<8000>>>,
  ResponsiveStabL<Red>,
  ResponsiveBlastL<White,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>>,
  ResponsiveClashL<White,TrInstant,TrFade<400>,Scale<BladeAngle<0,16000>,Int<4000>,Int<26000>>,Int<6000>,Int<20000>>,
  TransitionEffectL<TrConcat<TrInstant,AudioFlickerL<RotateColorsX<Variation,Rgb<230,180,80>>>,TrFade<1200>>,EFFECT_IGNITION>,
  LockupTrL<AlphaL<BrownNoiseFlickerL<White,Int<300>>,SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,
  LockupTrL<AlphaL<Mix<TwistAngle<>,Red,Orange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,
  InOutTrL<TrWipeSparkTip<White,300,40>,TrWipeIn<1400>>,
  TransitionEffectL<TrConcat<TrDelay<1500>,Black,TrFade<1000>,AlphaL<Mix<BatteryLevel,Red,Green>,Bump<Int<0>,Int<6000>>>,TrFade<3000>>,EFFECT_BOOT>>>(),

There are MANY if you’re familiar with the style additions in each version. IF they were based off my library you can look for:

RotateColorsX<Variation,...>

This would typically be associated with an OS5 style but as noted it still works fine in OS6 and some users have moved the OS5 styles into OS6 without replacing, so it’s not a completely accurate measure but it’s a pretty good marker of pre-OS6 and post-OS6 styles.

FWIW, if you wanted to replicate that style in OS6 you can just use the OS6 Library Blade Builder and choose the following (then you can further tweak to your liking).

Type = “Color Blend (Rotate)”
Style 1 = “Static”
Color = “Orange”
Blend = 30768
Rotate Speed = 18 ~ 22 based on preference
Style 2 = “Rotoscope (Subtle)”
Color = “Yellow”

Then add “Power Burst Forward” for the Ignition “Power Up” Effect

and choose the other options you want.

1 Like

To the uneducated eye based upon that, looks like the above code is OS5

And I appreciate that. It works fine, but why not give it a little flair :grin:

Yes, it’s OS5. See my last reply if you wanted to remake (and adjust) in OS6 library.

(Sometimes) smarter every day. Thanks all

How to Recognise Different Types of Trees styles From Quite a Long Way Away:

Ancient: (3.x or older)

StylePtr<InOutHelper<SimpleClash<Lockup<Blast<Blue,White>,AudioFlicker<Blue,White>>,White>,300,800>>()

Old: 4.x+

StylePtr<Layers<
  Red,
  ResponsiveLockupL<White,TrInstant,TrInstant,Int<26000>>,
  ResponsiveLightningBlockL<White>,
  ResponsiveMeltL<Mix<TwistAngle<>,Red,Yellow>>,
  ResponsiveDragL<White>,
  ResponsiveClashL<White,TrInstant,TrFade<200>,Int<26000>>,
  ResponsiveBlastL<White>,
  ResponsiveBlastWaveL<White>,
  ResponsiveBlastFadeL<White>,
  ResponsiveStabL<White>,
  InOutTrL<TrWipe<300>,TrWipeIn<500>>>>()

5.x brought some new features, but not really a different style of writing styles.

6.x+

StylePtr<Layers<
  RgbArg<BASE_COLOR_ARG,Red>,
  ResponsiveLockupL<RgbArg<LOCKUP_COLOR_ARG,White>,TrInstant,TrInstant,Int<26000>>,
  ResponsiveLightningBlockL<RgbArg<LB_COLOR_ARG,White>>,
  ResponsiveMeltL<Mix<TwistAngle<>,Red,Yellow>>,
  ResponsiveDragL<RgbArg<DRAG_COLOR_ARG,White>>,
  ResponsiveClashL<RgbArg<CLASH_COLOR_ARG,White>,TrInstant,TrFade<200>,Int<26000>>,
  ResponsiveBlastL<RgbArg<BLAST_COLOR_ARG,White>>,
  ResponsiveBlastWaveL<RgbArg<BLAST_COLOR_ARG,White>>,
  ResponsiveBlastFadeL<RgbArg<BLAST_COLOR_ARG,White>>,
  ResponsiveStabL<RgbArg<STAB_COLOR_ARG,White>>,
  InOutTrL<TrWipe<300>,TrWipeIn<500>>>>()

From 7.x on you’ll start seeing TrDoEffect in styles, and they will be big and complicated, but otherwise look fairly similar to 6.x styles.

Note that the above is vastly simplified styles compared to some of the ones you’ll find from people who spend a lot of time making styles, but I thought it might be easier to see the difference that way.

The Larch:

2 Likes