ProffieOS v6.3 BETA testing

Ok, yeah I already have a fix in the works for that. Thanks.

I used 2 buttons Fernando. Freeze up was in edit mode color list base color. I was trying to zoom in on blue.

I have successfully added a new preset by copying preset via cell phone ble!!! omg, this is awesome!

Next I want to add additional fonts that arent in my config to see how that goes!!!

Tom

Ok, yeah I have the fix to prevent leaving Color Editing without a Save or Revert in my local version itā€™ll be updated for 6.1.
In Color Editing we use a dedicated style to show new colors but a long click or hold leaves the mode without swapping back to the real style which then leaves it active with no way to close it.
Iā€™ll look at the Zoom in Color List and see if thereā€™s a conflict to account for and address as well.
Thanks.

Yeah I did.

The loop function is that fixed in the current master? I was trying to test it and the loop continued playing the tracks. @Fett263 has the track fix been added to the master. I downloaded 18 hours ago.

No, I have several fixes coming they are not merged yet. Iā€™ll post when they are available to test.

2 Likes

Well, spoke too soon. The Track Player fix is up on github master now. I have several more coming, thanks to Jakmar and others for testing/reporting.

Current Updates/Fixes for my Prop:

  1. Track Player (now on github)
    Fixed Loop playback for tracks, added fix for missing /tracks folder in /font or /common. If no tracks other than default is available Track Player will Loop the default track, no other playback options are available. If more than one track in font or common then Track Player will now start with first track found instead of default. This is to prevent repeat play during Rotate if default track was also first track.

  2. Fix Scroll Preset Increment (now on github)
    Increment by 5 control wasnā€™t workign for Scroll Preset menu

  3. Add Swing Option Menu (now on github)
    Currently Swing Option sub-menu is missing from Style Settings

  4. Release Wav Player for non-Edit Mode menus (now on github)
    Needed to free wav_player for some additional menus.

  5. Prevent Hold Button or Long Click Button in Color Editing or Blade Length Editing (testing)
    If user does a hold or long click the ShowColor style remains and cannot be undone without reboot, adding a Revert control to prevent.

  6. Color Zoom for Color List (changing to make all modes work similarly)
    Color Zoom reported not working for Color List in Edit Mode

  7. Button changes to allow for Choreography Mode addition to 1 button (testing)
    Iā€™m still testing some control changes to be able to enable Rehearsal and Choreography Mode to 1 button controls.

  8. Add Drag for HOLD_BUTTON_LOCKUP (to do)

  9. Add on-the-fly Copy Preset (to do)

If you come across anything else post in thread and Iā€™ll add to the list.

2 Likes

Yeah i saw that, I can confirm loop is working now. just finished testing.

1 Like

I can confirm that, minus the changes that fett263 already mentioned above, everything is working great for a one-button saber. All of the one-button controls, gestures, battle mode 2, dual mode ignition, ignition/retraction times matching the .wavs, preset menu, lockup and melt intensity, and real clash/lockup/swing. Edit mode also has been working great. Iā€™ve created and deleted presets, changed fonts, adjusted colors and styles for all of the effects (base, ignition/retraction, clash, lockup, lightning block, drag, melt, etc) on several of fettā€™s sample styles using the on-saber menus.

2 Likes

Iā€™ve been using the say battery percent on my build since alpha. it works great.

@Fett263 I was doing 3 short clicks and then a hold pwr, however, when I did 2 short clicks and then hold pwr it triggered.

your prop file has

NEW Control! Battery Level = Triple Click and Hold PWR
1 Like

separate post because I donā€™t want to have multiple lines of testing.

I am going to try to break the fett263 gesture controls and the BM2 powerlock,

by first enabling FETT263_BM_DISABLE_OFF_BUTTON TRIGGER battle mode (gesture on) and then twist gesture off. EDIT: Found that the disable off isnā€™t quite working.

I want to see if thereā€™s any error handling for that?

I also want to see if ProffieOS Workbench can fix it.

ok, so I add the define FETT263_BM_DISABLE_OFF_BUTTON

Swing on
turned off by holding the off buttonā€¦

I also enabled the powerlock on the ProffieOS Workbench and I am still able to turn off the saber with this enabled.

1 button setup though.

15:06:26.338 -> Battery voltage: 0.12
15:06:46.353 -> Battery voltage: 0.12
15:07:06.324 -> Battery voltage: 0.12
15:07:26.333 -> Battery voltage: 0.12
15:07:46.337 -> Battery voltage: 0.12
15:07:47.299 -> EVENT: Clash millis=1401128
15:07:48.029 -> EVENT: Clash millis=1401856
15:07:48.095 -> EVENT: Swing millis=1401923
15:07:48.095 -> Ignition.
15:07:48.129 -> unit = 0 vol = 0.00, Playing Bank01/hum01.wav
15:07:48.129 -> channels: 1 rate: 44100 bits: 16
15:07:48.129 -> unit = 1 vol = 0.50, Playing Bank01/out/out01.wav
15:07:48.129 -> channels: 1 rate: 44100 bits: 16
15:07:48.129 -> humstart: 1800
15:07:48.129 -> unit = 2 vol = 0.00, Playing Bank01/swingl/swingl04.wav
15:07:48.162 -> channels: 1 rate: 44100 bits: 16
15:07:48.162 -> unit = 3 vol = 0.00, Playing Bank01/swingh/swingh04.wav
15:07:48.162 -> channels: 1 rate: 44100 bits: 16
15:07:49.323 -> unit = 2 vol = 0.00, Playing Bank01/swingl/swingl06.wav
15:07:49.323 -> channels: 1 rate: 44100 bits: 16
15:07:49.323 -> unit = 3 vol = 0.00, Playing Bank01/swingh/swingh06.wav
15:07:49.323 -> channels: 1 rate: 44100 bits: 16
15:07:51.580 -> EVENT: Power-Pressed#1 ON millis=1405413
15:07:51.580 -> EVENT: Power-Pressed ON millis=1405413
15:07:51.879 -> EVENT: Power-Held#1 ON millis=1405714
15:07:51.879 -> EVENT: Power-Held ON millis=1405714
15:07:52.576 -> EVENT: Power-HeldMedium#1 ON millis=1406414
15:07:52.576 -> EVENT: Power-HeldMedium ON millis=1406415
15:07:53.605 -> EVENT: Power-HeldLong#1 ON millis=1407422
15:07:53.605 -> unit = 1 vol = 0.50, Playing Bank01/in/in03.wav
15:07:53.605 -> channels: 1 rate: 44100 bits: 16
15:07:54.633 -> No sounds found: pstoff
15:07:54.666 -> Amplifier off.
15:07:54.832 -> EVENT: Power-Released#1 millis=1408664
15:07:54.832 -> EVENT: Power-Released millis=1408664
15:07:55.661 -> Unmounting SD Card.
15:07:58.848 -> EVENT: Clash millis=1412655

ā€œTriple click and holdā€ would mean hold the 3rd click.

1 Like

as I have thusly learnt, just thought I would share in the case if any newbs where wondering.

1 Like

This is amazing! Thanks so much for implementing the increment by 5! however I canā€™t seem to get it to work on the sabers Iā€™ve tested on, and Iā€™ve downloaded the latest build from github. So far everything else is working great.

With the other new features, I was wondering if it would be possible for two things to be added, however this is 100% my personal preference and I know it would add work and Iā€™m not even sure if itā€™s possible with all the button commands, but I think it matches with everything else:

With the new on-the-fly font and style change, it would also be cool to have an on-the-fly ā€œcopy presetā€ option outside of Edit Mode. If someone isnā€™t going to be using Edit Mode, then that would still let them create new presets using whatever fonts/styles they have without plugging into a computer. Or they could quickly add a font at a computer then add it on the hilt on-the-fly. Iā€™m just not sure what button combo could be used for that.

I was also wondering if ā€œmpresetā€ could continue playing in the background when selecting presets, and then stop once one is selected. I edited mine so the force theme played after he says ā€œselect presetā€ but it seems to bug out, but itā€™d be cool if it just kept playing while selecting the font with the dial.

Again obviously these are just things that I think are cool so if they donā€™t fit or if itā€™s just too much work/not possible then I totally understand, OS6 is already awesome and Iā€™m so appreciative of all the work you guys have put in!

so I wanted to check the colorlist. I tried using it before and althought I have both FETT263_SAY_COLOR_LIST & FETT263_SAY_COLOR_LIST_CC the edit colors settings doesnā€™t have the option for color list, it just beeps.

dir common shows the following output

19:09:47.905 -> .Trash-1000 0
19:09:47.905 -> Done listing files.
19:09:48.902 -> Unmounting SD Card.
19:09:54.615 -> Booster off.
19:09:57.704 -> . 0
19:09:57.704 -> .. 0
19:09:57.704 -> volchange.wav 10384
19:09:57.704 -> volmin.wav 92684
19:09:57.704 -> volts.wav 52772
19:09:57.704 -> voldown.wav 23100
19:09:57.704 -> 7.wav 58712
19:09:57.704 -> vmend.wav 139850
19:09:57.704 -> 0.wav 66228
19:09:57.704 -> 8.wav 42758
19:09:57.704 -> 9.wav 56204
19:09:57.704 -> 1.wav 37260
19:09:57.704 -> volup.wav 18204
19:09:57.704 -> battlevel.wav 163250
19:09:57.704 -> point.wav 44462
19:09:57.704 -> 2.wav 47450
19:09:57.704 -> 6.wav 48774
19:09:57.704 -> vmbegin.wav 88462
19:09:57.704 -> 3.wav 55622
19:09:57.704 -> 5.wav 52248
19:09:57.704 -> volmax.wav 105690
19:09:57.704 -> 4.wav 56874
19:09:57.704 -> tracks 0
19:09:57.704 -> battlevl.wav 116726
19:09:57.704 -> bmbegin.wav 70112
19:09:57.704 -> bmend.wav 99898
19:09:57.704 -> chreobgn.wav 217540
19:09:57.704 -> chreoend.wav 115792
19:09:57.704 -> eighty.wav 46724
19:09:57.704 -> fifty.wav 52608
19:09:57.704 -> forty.wav 57952
19:09:57.704 -> hundred.wav 54154
19:09:57.704 -> maccept.wav 66220
19:09:57.704 -> maffirm.wav 133106
19:09:57.704 -> malt.wav 81416
19:09:57.704 -> mauto.wav 50104
19:09:57.704 -> maxclash.wav 146178
19:09:57.704 -> mbase.wav 72734
19:09:57.704 -> mbatt.wav 86726
19:09:57.704 -> mbegin.wav 143178
19:09:57.704 -> mblack.wav 120070
19:09:57.704 -> mblade.wav 95378
19:09:57.704 -> mblast.wav 84258
19:09:57.704 -> mbmclash.wav 127680
19:09:57.704 -> mcancel.wav 64960
19:09:57.704 -> mclash.wav 85930
19:09:57.704 -> mclashth.wav 147306
19:09:57.704 -> mcolor.wav 72936
19:09:57.704 -> mcolorlt.wav 72324
19:09:57.704 -> mcolorop.wav 105726
19:09:57.704 -> mcolors.wav 82646
19:09:57.704 -> mcolorsb.wav 90040
19:09:57.704 -> mconfirm.wav 63670
19:09:57.704 -> mcontrol.wav 148108
19:09:57.704 -> mcopy.wav 109680
19:09:57.704 -> mcopyc.wav 97920
19:09:57.704 -> mdefault.wav 61028
19:09:57.704 -> mdelete.wav 103812
19:09:57.704 -> mdim.wav 104218
19:09:57.704 -> mdisable.wav 71970
19:09:57.704 -> mdown.wav 23100
19:09:57.704 -> mdrag.wav 81938
19:09:57.704 -> mdragsz.wav 92030
19:09:57.704 -> medit.wav 158052
19:09:57.704 -> meffect.wav 100046
19:09:57.704 -> memitsz.wav 103358
19:09:57.704 -> memitter.wav 86232
19:09:57.704 -> menable.wav 59892
19:09:57.704 -> mexit.wav 47688
19:09:57.704 -> mfalse.wav 69136
19:09:57.704 -> mfont.wav 71178
19:09:57.704 -> mgestoff.wav 89658
19:09:57.704 -> mgeston.wav 77488
19:09:57.704 -> mgestsub.wav 91884
19:09:57.704 -> mgesture.wav 97200
19:09:57.704 -> mhue.wav 115660
19:09:57.704 -> mignite.wav 101100
19:09:57.704 -> migopt.wav 123198
19:09:57.704 -> million.wav 49918
19:09:57.704 -> mintime.wav 116794
19:09:57.704 -> mlb.wav 126978
19:09:57.704 -> mlength.wav 106942
19:09:57.704 -> mlockdly.wav 90636
19:09:57.704 -> mlockpos.wav 162800
19:09:57.704 -> mlocksz.wav 152220
19:09:57.704 -> mlockup.wav 91880
19:09:57.704 -> mloop.wav 39604
19:09:57.704 -> mmain.wav 86032
19:09:57.704 -> mmax.wav 116306
19:09:57.704 -> mmelt.wav 84044
19:09:57.704 -> mmeltsz.wav 81844
19:09:57.704 -> mmin.wav 102170
19:09:57.704 -> mnum1.wav 44974
19:09:57.704 -> mnum2.wav 44936
19:09:57.704 -> mnum3.wav 54574
19:09:57.704 -> mnum4.wav 44776
19:09:57.704 -> mnum5.wav 53278
19:09:57.704 -> mnum6.wav 54988
19:09:57.704 -> mnum7.wav 62226
19:09:57.704 -> mnum8.wav 45440
19:09:57.704 -> mnum9.wav 62050
19:09:57.704 -> mnum10.wav 50990
19:09:57.704 -> mnum11.wav 61790
19:09:57.704 -> mnum12.wav 60414
19:09:57.704 -> mnum13.wav 71442
19:09:57.704 -> mnum14.wav 69050
19:09:57.704 -> mnum15.wav 71348
19:09:57.704 -> mnum16.wav 74658
19:09:57.704 -> mnum17.wav 86264
19:09:57.704 -> mnum18.wav 66688
19:09:57.704 -> mnum19.wav 78006
19:09:57.704 -> mnum20.wav 58572
19:09:57.704 -> moff.wav 74160
19:09:57.704 -> moption.wav 102284
19:09:57.704 -> mouttime.wav 106916
19:09:57.704 -> mpoint.wav 40670
19:09:57.704 -> mpreon.wav 81930
19:09:57.704 -> mpreonsz.wav 96512
19:09:57.704 -> mpreopt.wav 114090
19:09:57.704 -> mpreset.wav 107022
19:09:57.704 -> mprespd.wav 94932
19:09:57.704 -> mpstoff.wav 101394
19:09:57.704 -> mpstofsz.wav 117560
19:09:57.704 -> mpush.wav 76828
19:09:57.704 -> mpushlen.wav 110820
19:09:57.704 -> mpwrlock.wav 68756
19:09:57.704 -> mrandom.wav 55696
19:09:57.704 -> mresetc.wav 103056
19:09:57.704 -> mretract.wav 111640
19:09:57.704 -> mrevert.wav 59250
19:09:57.704 -> mrotate.wav 65246
19:09:57.704 -> mrtopt.wav 128410
19:09:57.704 -> msave.wav 60756
19:09:57.704 -> mselect.wav 53132
19:09:57.704 -> msetsub.wav 107220
19:09:57.704 -> msetting.wav 95938
19:09:57.704 -> mstab.wav 93018
19:09:57.704 -> mstabon.wav 107434
19:09:57.704 -> mstyle.wav 90340
19:09:57.704 -> mstylopt.wav 103604
19:09:57.704 -> mstylset.wav 147248
19:09:57.704 -> mstylstm.wav 118528
19:09:57.704 -> mswing.wav 87090
19:09:57.704 -> mswingon.wav 100344
19:09:57.704 -> mswingsp.wav 106822
19:09:57.704 -> mthrston.wav 107176
19:09:57.704 -> mtrack.wav 74810
19:09:57.704 -> mtrue.wav 63902
19:09:57.704 -> mtwiston.wav 99620
19:09:57.704 -> mtwstoff.wav 119762
19:09:57.704 -> mup.wav 18204
19:09:57.704 -> mvolmax.wav 115226
19:09:57.704 -> mvolmin.wav 105120
19:09:57.704 -> mvolts.wav 65878
19:09:57.704 -> mvolume.wav 86012
19:09:57.704 -> mwhite.wav 126244
19:09:57.704 -> mzero.wav 55012
19:09:57.704 -> mzoom.wav 112156
19:09:57.704 -> ninety.wav 66172
19:09:57.704 -> nochreo.wav 172096
19:09:57.704 -> rehrsbgn.wav 192442
19:09:57.704 -> rehrsend.wav 100198
19:09:57.704 -> rehrsnew.wav 118180
19:09:57.704 -> rehrsold.wav 90598
19:09:57.704 -> seventy.wav 74332
19:09:57.704 -> sixty.wav 71560
19:09:57.704 -> thirty.wav 58896
19:09:57.704 -> thousand.wav 61108
19:09:57.704 -> Done listing files.
19:09:58.668 -> Unmounting SD Card.

the preset I was trying to use the color list on, does it need to have any format or is it required to be a color list versus the color wheel (I think all my presets are color wheel styles).

ALSO, just wondering in the ProffieOS Workbench, what does the Style section actually mean? thus far itā€™s all numbers.

Edit Colors (Color List, Adjust Color Hue, Adjust White Level and Adjust Black Level) only works for styles built for Edit Mode. Old styles can only use ColorWheel.

1 Like

sorry, didnā€™t mean to double post. Thanks Fernando.

I will take a look after the other updates are completed although I am pretty much out of controls for 1 button so no promises.

1 Like

No, each time you turn dial the new preset loads, this will stop all sounds as the new font directory is loaded.

1 Like

Were you using an Edit Mode style? I probably need more explanation on this, Edit Mode styles no longer use the ColorWheel, normal ColorChange outside Edit Mode for Edit Mode styles will use the Color List instead.
The ColorWheel Zoom functionality is for older styles in Color Change mode. The Color List in Color Change mode does not have a Zoom, the Zoom for Color List is in Edit Mode. This is because Edit Colors is actually a very different method for changing colors than the Color Wheel was. So to use the zoom functionality for Edit Mode styles you need to be in Edit Mode, then you will do a long click on PWR and get a ā€œzoomā€ sound and your dial will now let you adjust the hue.
The normal ColorChange mode for Edit Mode styles can only step through the Color List and save and it applies the same color to ALL blades, versus Edit Mode which does each blade independently.
Iā€™ll see about more explanation in the comments in the prop to help avoid confusion.

2 Likes

I was using one of your sample OS6 styles. It wasnā€™t color wheel, it was the power reduction (save power controls). Powersave hold aux and click power. I reduced blade brightness, but could not get the full power/color back to normal. That is when I went into color change, and selected blue to get full power blade back.

I have been messing around more this morning with the saber, and just FYI I had defined:
define FETT263_HOLD_BUTTON_OFF
define FETT263_HOLD_BUTTON_LOCKUP

When in color change (not edit mode, but standard CC) on long press power for zoom, the saber plays in.wav, but blade stays ignited. So on the color zoom, I think there is a conflict between long press power between zoom and saber off. So the saber instead of zooming runs home to momma and plays the in.wav, but blade stays lit. EDIT: I will only try to use zoom in Edit Mode. I understand that you said it wasnā€™t coded for use in normal color change mode. Iā€™ll report back findings.

I was trying to take your prop file, and add some of the functionality of SA22Cā€™s. The 2 defines yā€™all added make your prop file behave more like the old SA22C, so I used them. I wanted to make sure you knew I was testing with FETT263_HOLD_BUTTON_OFF.

My config with first preset only, which is the one it happened in. Config bottom is missing in this paste.

#include "proffieboard_v1_config.h"
#define NUM_BLADES 1
#define NUM_BUTTONS 2
#define VOLUME 2300
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 2.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define FETT263_EDIT_MODE_MENU
#define ENABLE_ALL_EDIT_OPTIONS
#define FETT263_DUAL_MODE_SOUND
#define FETT263_CLASH_STRENGTH_SOUND
#define FETT263_MAX_CLASH 16
#define FETT263_SAY_BATTERY_VOLTS
#define FETT263_TWIST_OFF
#define FETT263_TWIST_ON
#define FETT263_TWIST_ON_NO_BM
#define FETT263_THRUST_ON
#define FETT263_SWING_ON
#define FETT263_SWING_ON_SPEED 350
#define COLORWHEEL_ZOOM
#define FETT263_HOLD_BUTTON_OFF
#define FETT263_HOLD_BUTTON_LOCKUP
#define FETT263_SAY_COLOR_LIST
#define FETT263_SAY_COLOR_LIST_CC
#define FETT263_SAY_BATTERY_VOLTS
#define MOTION_TIMEOUT 60 * 15 * 1000
#define SAVE_STATE
#define ENABLE_SD
#define ENABLE_SERIAL
#define ENABLE_SSD1306
// Max 20 characters
#define BLE_PASSWORD "1234"
// Max 32 characters.
#define BLE_NAME "Tran"
// Max 9 characters
#define BLE_SHORTNAME "Tran"

#endif

#ifdef CONFIG_PROP

#include "../props/saber_fett263_buttons.h"

#endif

#ifdef CONFIG_PRESETS


// Fire speed, valid values are 1 - 10
#define FIRE1_SPEED 8
// How long to wait before firing up crossguards.
#define FIRE1_DELAY 800

// Each of these have three values: A, B, C
// A = non-random intensity
// B = random intensity
// C = cooling
// The first two control temperature, and as we add
// A + rnd(B) to the base of the blade each animation frame.
// The second controls how rapidly the fire cools down

// This is used during normal operation.
#define FIRE1_NORMAL 0, 1000, 2

// This is used when a clash occurs
#define FIRE1_CLASH  3000, 0, 0

// This is used during lockup.
#define FIRE1_LOCKUP 0, 5000, 10

// Helper
#define FIRE1PTR(NUM, DELAY) \
  StyleFirePtr<RED, YELLOW, NUM, DELAY, FIRE1_SPEED, \
    FIRE1_NORMAL, FIRE1_CLASH, FIRE1_LOCKUP>()


Preset presets[] = {
{ "anhtrain;common", "common/tracks/princess.wav",   
/* ƂĀ© Fett263 Rotoscope (Primary Blade) OS6 Style
Style Options
Default(0): Base Color (Original)
1: Base Color + Alt Color (Original)
2: Base Color (Fast)
3: Base Color + Alt Color (Fast)
4: Base Color (Slow)
5: Base Color + Alt Color (Slow)
Effects =
Ignition Effect Options: Default (0): Standard Ignition, 1: Wipe In, 2: Cycle Up, 3: SparkTip Ignition, 4: Center Out, 5: Center In
Power Up Effect Options: Default (0): Disabled, 1: Unstable Power Up, 2: Bright Power Up , 3: AudioFlicker Power Up
Retraction Effect Options: Default (0): Standard Retraction, 1: Run Up, 2: Cycle Down, 3: SparkTip Retraction 4: Split Retraction, 5: Center In
Cool Down Effect Options: Default (0): Disabled, 1: Unstable Cool Down, 2: Bright Cool Down, 3: AudioFlicker Cool Down
Preon Effect Options: Default(0): Disabled, 1: Faulty Ignition V1, 2: Faulty Ignition V2, 3: Overload, 4: Erratic, 5: Pulsing
Swing Effect: Default (0): Disabled, 1: Enhanced Bright Swing, 2: Bright Swing, 3: Force Boost Enhanced Bright Swing, 4: Force Boost Bright Swing
Lockup Effect: Intensity Lockup
Lightning Block Effect: Responsive Lightning Block
Drag Effect: Standard Drag
Melt Effect: Intensity Melt
Blast Effect: Multi-Blast (Sequence)
Clash Effect: Real Clash
Battery Level: % Blade - Red to Green
*/
StylePtr<Layers<
ColorSelect<IntArg<STYLE_OPTION_ARG, 0>,TrInstant,RandomFlicker<Stripes<10000,-2600,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<16448>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RandomFlicker<Stripes<10000,-2600,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,RgbArg<ALT_COLOR_ARG,Rgb<255,68,0>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<16448>,Black,RgbArg<ALT_COLOR_ARG,Rgb<255,68,0>>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RandomFlicker<Stripes<14000,-4000,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<16448>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RandomFlicker<Stripes<14000,-4000,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,RgbArg<ALT_COLOR_ARG,Rgb<255,68,0>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<16448>,Black,RgbArg<ALT_COLOR_ARG,Rgb<255,68,0>>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RandomFlicker<Stripes<24000,-1400,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<11565>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<16448>,Black,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>,RandomFlicker<Stripes<24000,-1400,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,RgbArg<ALT_COLOR_ARG,Rgb<255,68,0>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>,Mix<Int<16448>,Black,RgbArg<ALT_COLOR_ARG,Rgb<255,68,0>>>>,RgbArg<BASE_COLOR_ARG,Rgb<255,0,0>>>>,
ColorSelect<IntArg<SWING_OPTION_ARG, 0>,TrInstant,AlphaL<RgbArg<SWING_COLOR_ARG,Rgb<125,125,125>>,Int<0>>,AlphaL<RgbArg<SWING_COLOR_ARG,Rgb<125,125,125>>,Scale<IsLessThan<SwingSpeed<600>,Int<13600>>,Scale<SwingSpeed<600>,Int<-19300>,Int<32768>>,Int<0>>>,AlphaL<RgbArg<SWING_COLOR_ARG,Rgb<125,125,125>>,SwingSpeed<600>>,TransitionEffectL<TrConcat<TrInstant,AlphaL<RgbArg<SWING_COLOR_ARG,Rgb<125,125,125>>,Scale<IsLessThan<SwingSpeed<600>,Int<13600>>,Scale<SwingSpeed<600>,Int<-19300>,Int<32768>>,Int<0>>>,TrDelay<30000>>,EFFECT_FORCE>,TransitionEffectL<TrConcat<TrInstant,AlphaL<RgbArg<SWING_COLOR_ARG,Rgb<125,125,125>>,SwingSpeed<600>>,TrDelay<30000>>,EFFECT_FORCE>>,
TransitionEffectL<TrSelect<IntArg<IGNITION_POWER_UP_ARG,0>,TrInstant,TrConcat<TrExtendX<IgnitionTime<300>,TrInstant>,Stripes<3000,-3500,RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>,RandomPerLEDFlicker<Mix<Int<7710>,Black,RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>>,Black>,BrownNoiseFlicker<RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<3855>,Black,RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>>,200>,RandomPerLEDFlicker<Mix<Int<10280>,Black,RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>>,Mix<Int<3855>,Black,RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>>>>,TrFadeX<IgnitionTime<300>>>,TrConcat<TrExtendX<IgnitionTime<300>,TrInstant>,RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>,TrFadeX<IgnitionTime<300>>>,TrConcat<TrExtendX<IgnitionTime<300>,TrInstant>,AudioFlickerL<RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>>,TrFadeX<IgnitionTime<300>>>>,EFFECT_IGNITION>,
TransitionEffectL<TrSelect<IntArg<RETRACTION_COOL_DOWN_ARG,0>,TrInstant,TrConcat<TrInstant,HumpFlickerL<RgbArg<RETRACTION_COLOR_ARG,Rgb<255,255,255>>,40>,TrDelayX<RetractionTime<0>>>,TrConcat<TrInstant,RgbArg<RETRACTION_COLOR_ARG,Rgb<255,255,255>>,TrDelayX<RetractionTime<0>>>>,EFFECT_RETRACTION>,
LockupTrL<AlphaL<Remap<CenterDistF<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>>>>,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>>>>>,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<16000>>>,TrConcat<TrExtend<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>>>>>,TrExtend<3000,TrFade<300>>,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>>>,TrFade<3000>>,TrConcat<TrInstant,AlphaL<White,Int<0>>,TrSelect<Scale<IsLessThan<ClashImpactF<>,Int<20000>>,Int<1>,Int<0>>,TrWaveX<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Scale<ClashImpactF<>,Int<50>,Int<400>>,Int<100>,Scale<ClashImpactF<>,Int<500>,Int<300>>,  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>>>>,TrSparkX<Remap<CenterDistF<  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>>>>  ,Stripes<1200,-3600,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>>>>>,Int<30>,Scale<Sum<ClashImpactF<>,SwingSpeed<600>>,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>>>>>>,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>>>,
EffectSequence<EFFECT_BLAST,TransitionEffectL<TrConcat<TrInstant,AlphaL<RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,BlastF<200,200>>,TrFade<300>>,EFFECT_BLAST>,ResponsiveBlastL<RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>,Int<400>>,ResponsiveBlastWaveL<RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Scale<SwingSpeed<400>,Int<500>,Int<200>>,Scale<SwingSpeed<400>,Int<100>,Int<400>>>,ResponsiveBlastFadeL<RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Scale<SwingSpeed<400>,Int<6000>,Int<12000>>,Scale<SwingSpeed<400>,Int<400>,Int<100>>>,ResponsiveBlastL<RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Scale<SwingSpeed<400>,Int<400>,Int<100>>,Scale<SwingSpeed<400>,Int<200>,Int<100>>,Scale<SwingSpeed<400>,Int<400>,Int<200>>>>,
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>,ResponsiveBlastWaveL<RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Scale<ClashImpactF<>,Int<50>,Int<400>>,Int<100>,Scale<ClashImpactF<>,Int<500>,Int<300>>,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<AlphaL<BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,SmoothStep<IntArg<DRAG_SIZE_ARG,31000>,Int<2000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,
LockupTrL<AlphaL<Remap<Scale<RampF,Int<65536>,Int<0>>,StaticFire<Mix<TwistAngle<>,OrangeRed,DarkOrange>,Mix<TwistAngle<>,OrangeRed,Orange>,0,3,5,3000,10>>,SmoothStep<IntArg<MELT_SIZE_ARG,26000>,Int<6000>>>,TrConcat<TrWipeIn<100>,AlphaL<Red,SmoothStep<Int<29000>,Int<8000>>>,TrExtend<2000,TrFade<300>>,AlphaL<Mix<TwistAngle<>,Red,Orange>,SmoothStep<Int<29000>,Int<8000>>>,TrFade<3000>>,TrWipe<200>,SaberBase::LOCKUP_MELT>,
InOutTrL<TrSelect<IntArg<IGNITION_OPTION_ARG,0>,TrWipeX<IgnitionTime<300>>,TrWipeInX<IgnitionTime<300>>,TrColorCycleX<IgnitionTime<300>>,TrWipeSparkTipX<RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>,IgnitionTime<300>>,TrCenterWipeX<IgnitionTime<300>,Int<16384>>,TrCenterWipeInX<IgnitionTime<300>,Int<16384>>>,TrSelect<IntArg<RETRACTION_OPTION_ARG,0>,TrWipeInX<RetractionTime<0>>,TrWipeX<RetractionTime<0>>,TrColorCycleX<RetractionTime<0>>,TrWipeInSparkTipX<RgbArg<RETRACTION_COLOR_ARG,Rgb<255,255,255>>,RetractionTime<0>>,TrCenterWipeInX<RetractionTime<0>,Int<16384>>,TrCenterWipeX<RetractionTime<0>,Int<16384>>>,RotateColorsX<Variation,Black>>,
TransitionEffectL<TrSelect<IntArg<PREON_OPTION_ARG,0>,TrInstant,TrConcat<TrInstant,AlphaL<Mix<Trigger<EFFECT_PREON,Mult<Int<16384>,WavLen<EFFECT_PREON>>,Mult<Int<10922>,WavLen<EFFECT_PREON>>,Mult<Int<5462>,WavLen<EFFECT_PREON>>>,BrownNoiseFlicker<Black,RgbArg<PREON_COLOR_ARG,Rgb<255,0,0>>,100>,RandomPerLEDFlicker<RgbArg<PREON_COLOR_ARG,Rgb<255,0,0>>,Rgb<50,50,50>>,BrownNoiseFlicker<Mix<NoisySoundLevel,RgbArg<PREON_COLOR_ARG,Rgb<255,0,0>>,RotateColorsX<Int<4000>,RgbArg<PREON_COLOR_ARG,Rgb<255,0,0>>>>,White,50>>,SmoothStep<Scale<NoisySoundLevel,Int<-10000>,Int<36000>>,Int<-4000>>>,TrDelayX<WavLen<EFFECT_PREON>>>,TrConcat<TrInstant,AlphaL<RandomPerLEDFlicker<RgbArg<PREON_COLOR_ARG,Rgb<255,0,0>>,Black>,SmoothStep<Scale<NoisySoundLevel,Int<-10000>,Int<36000>>,Int<-4000>>>,TrDelayX<WavLen<EFFECT_PREON>>>,TrConcat<TrFadeX<Mult<Int<8192>,WavLen<EFFECT_PREON>>>,AlphaL<HumpFlickerL<RgbArg<PREON_COLOR_ARG,Rgb<255,0,0>>,10>,SmoothStep<IntArg<PREON_SIZE_ARG,2000>,Int<-4000>>>,TrFadeX<Mult<Int<8192>,WavLen<EFFECT_PREON>>>,AlphaL<HumpFlickerL<RgbArg<PREON_COLOR_ARG,Rgb<255,0,0>>,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,0,0>>,20>,SmoothStep<Sum<Int<4000>,IntArg<PREON_SIZE_ARG,2000>>,Int<-4000>>>,TrBoingX<Mult<Int<8192>,WavLen<EFFECT_PREON>>,3>>,TrConcat<TrBoingX<Mult<Int<10922>,WavLen<EFFECT_PREON>>,5>,AlphaL<BrownNoiseFlickerL<RgbArg<PREON_COLOR_ARG,Rgb<255,0,0>>,Int<100>>,SmoothStep<IntArg<PREON_SIZE_ARG,2000>,Int<-4000>>>,TrBoingX<Mult<Int<10922>,WavLen<EFFECT_PREON>>,3>,Black,TrBoingX<Mult<Int<7260>,WavLen<EFFECT_PREON>>,3>,AlphaL<BrownNoiseFlickerL<RgbArg<PREON_COLOR_ARG,Rgb<255,0,0>>,Int<200>>,SmoothStep<Sum<Int<4000>,IntArg<PREON_SIZE_ARG,2000>>,Int<-4000>>>,TrBoingX<Mult<Int<3664>,WavLen<EFFECT_PREON>>,3>>,TrConcat<TrFadeX<Mult<Int<4096>,WavLen<EFFECT_PREON>>>,AlphaL<PulsingL<RgbArg<PREON_COLOR_ARG,Rgb<255,0,0>>,Int<800>>,SmoothStep<IntArg<PREON_SIZE_ARG,2000>,Int<-4000>>>,TrDelayX<Mult<Int<28672>,WavLen<EFFECT_PREON>>>>>,EFFECT_PREON>,
TransitionEffectL<TrConcat<TrExtend<3000,TrInstant>,AlphaL<Mix<BatteryLevel,Red,Green>,Bump<BatteryLevel,Int<10000>>>,TrFade<1000>>,EFFECT_BATTERY_LEVEL>
>>(),
"ANH TRAIN"
  },```