Korbanth Revan V2 Light install

I’ve got this beauty from Korbanth:

and decided to do the chassis myself. I decided that I want to try my first crystal chamber plus accent LEDs. Also, since I have some space, I will do an internal chassis for ease of installation, plus an external “skin” for doing nice aesthetics.
For now, my design is as follows:


It has no trapdoors, those are only fake aesthetics. And the grooves on the side should use a 1mm bronze wire for better details. Plus the chamber is waiting for a nice crystal rock that I have to cut and epoxy there.


Taking out the skin, should give me easy access to most of the things I have to install. The pixels and switches have inward facing holes for wiring, and the two camber columns are actually hollow for passing the cables. This chassis is not really designed for battle, and I wouldn’t shake it too much outside of the hilt, because it might be a bit fragile in the chamber.


The speaker foes into the pommel, and by taking it out I have easy access to the USB, SD and on/off switch.


I’m not sure I have a consistent graphic language through out the chassis, but I think it will be ok for being the first time I use a chamber and accents.

3 Likes

Thats pretty amazing in general, not to mention a first try at a chassis.

Looks great! What materials will you print with?

I said it was my first crystal chamber chassis. Must be my 10th chassis designs (plus multiple prototype iterations per design). I have a resin printer so that’s what I’m using it. I have had to help my brother with the original Ultimaker, so I have a thing against filament. :smile:
I printed a fit check version and had to adjust the OLED window, reinforce a bit on the pommel side of the inner chassis. But found the crystal chamber to mechanically weak.






So, I redesigned the crystal chamber, and added snap connectors to the inner chassis. Plus changed some cosmetics so the front keeps the same graphic language as the back.



I’m still debating how to paint it. And some of the grooves are meant to be filled with 1mm golden aluminum wire.

1 Like

I’ve printed and I can say I suck at painting. But alas, let’s say this is some learning chassis.
These are the parts of the chassis. The idea is that I have a core chassis for ease of access and cable routing, plus the external skins. This is the luxury of working with 28mm of ID. The internal chassis is separated in threee segments that simply snap on once I’ve routed all the cables.


The crystal chamber is obviously an it’s own external skin, but I added the holes to use a segment of the WS2812 5050 strip that I already use on the baldes. And the walls also act as conduits.

The front segment will hold the two switches, and the bif planes ar to hold 5 segments of 5050 leds.

On the back I will have the battery, Proffie, OLED and on/off. I’m doing away with a charging port since I will use the NPXL PCB charger.

The battery section will use snap on springs, and that’s the look of the crystal chamber once I can procure a quartz of the correct size.

On the other side I will have access to the switches, OLED and Proffie.

The speaker will be on the pommel and use a pogo pin, this opens access to the on/off, usb for programming and the SD card.

On the emitter I will use a Shtok V3 with Blade Present pin and a separate line for the illuminated LEDs. That way I will use Data2 for all accents including the PCB.

These are the side views. Please note that I’ve only installed the golden wire on the front, because the back needs some paint touches.



Ah, not your first first then. :wink:

Still, it looks very impressive to me! I like the idea of running gold wire!

I’m now in the process of starting the install. Some people put plants in their desk, I put an emitter. :rofl:

I soldered all the cables, then put some heatshrink to add mechanical strength and then filled with hot glue. I would like the opinion of more experienced installers if I’m over doing it.



Then I installed the two crystal chamber pixels.


They are stock WS2812B 5050 cut from a 12mm strip. Glue then added some insulating tape. Should have taken more pictures of the process.

Then I prepared and installed the switches:
First prepared the wires and switches, soldered the cables, and applied heatshrink. I decided to use a common ground cable, so soldering would be cleaner on the board.



The nice thing about designing your own chassis is actually leaving space for wires. :wink:

1 Like

I then proceeded to install the on/off switch, and prepared the cables.
image

Used two permanent markers to code each 30AWG cable (I’m only using blue, which is the one I acquires in quantity).

image
image

I then prepared the accent led strips:
image
image

And then proceeded to route the wires through the crystal chamber. This was the first actual assembly of the chassis parts.
image
image
image

Now I went to start installing the accent LEDs,
image

Then installed the battery springs, and thus connected positive to the contact. This also allowed me to connect the back part of the chassis.
image
image

Then I went and finished soldering the accents contacts.
image

Left them like that in case I need some repairing soldering.

Now I soldered the board. I had to add the 330bOhms resistor to Data2. I decided to chain the crystal chamber, the three accents and the Illuminated PCB on a single data line. This mean soldering an extra small cable to battery positive, another 28AWG to the MOSFET 3 so power had the same sources as the PCB. But I can separate everything with subblades. For nect install, I would probably use Data4 for the crystal and accents with a different MOSFET. Conceptually I liked that for me, the PCB is just another accent. So I’m not sure which way to go, since it looks like the same amount of work.
image
image

Check the accents one last time.
image

And do a quick test.

I proceeded to glue the accents in place and install the front skin. Then installed the OLED and do another test.

You will notice that the speaker is wired straight to the board. I do have a pommel chassis and have to wire the connectors. But I would rather do every wiring test on the rest of the install first. Also, I found the sound to be too low. I want to test if it’s the speaker, config or some 7.3 bug. So I want to run those tests before committing to wiring the speaker. And still have to make the final fit test with the pommel.

C5828008-167D-4521-9328-D16DFD4F9F30

Killing it with these updates!

I’ve installed the external skins, uploaded better styles and some OLED images for the fonts. I still can’t get it to play the boot01.pbm, and have to use the correct parameter for the off color on the crystal chamber. Plust install the actual quartz crystal.
It lacks sound because I have put the rotary Shtok contact. I will probably do most of that tomorrow.

It showed a crystal spinning (inverted colors I might add). Is that not your boot image?
Does this file work for you?

It’s an animation I downloaded from plecter.net users as jpg. I just converted to .PBM and it works. So does the Revan font name. You will see it on the next video.

One thing I saw was that the very first boot after programming is the default screen. After that, I get the one on the font.

Ok, it’s practically finished. I just need to print a new speaker support, paint it and I can finish the install.
I’ve redid the programming a bit (on OS 7.3 Beta). Everything worked, so I corrected some colors, improved the effects on the crystal chamber and accents. Added an actual quartz crystal to the crystal chamber, added some animation for booth and font change, and it’s basically finished. Please watch the video with sound off because my son was playing on the console and the chassis has no speaker (those are connected through the pogo pins on the back).

For those interested in the actual config, I’m attaching it to this post. It is a heavily commented OS 7.3 using almost all the available features. It include a CONFIG_STYLES section, the styles are called with parameters, I use SubBlade and SubBladeWithStride, multiple samples for Blade ID, have Blade Presents, two data lines, OLED, Fett263 prop, with styles made in his generator, and have a ridiculous amount of Blade IDs for things like tri-cree adapter for NPXL, charging through NPXL, illuminated pladeplugs and more.

/********************************************************************************************
##### General Specs #####
Hilt: Korban Revan Light V2
Chassis: Baldusi Custom v5
Board: Proffieboard v2.2
ProffieOS Version: 7.3
Soundfont Collection: 2023-03
-Momentary Switches: 2
-Battery: 18650 (+USB-C battery charging)
-Speaker: KR Sabers 22mm V2 3W
-Hilt NPXL Connector: Shtok NPLX V3 Illuminated Connector (V4 Config)
-Crystal Chamber (SubBlade)
-Accents (SubBlade x3)
-BladeID: 33k resistor (0603 SMD)
-Blade Present Pin (Data3)
-OLED 128 x 32 pixel SSD1306
//NO FSC BT909 Blutooth Module

##### Hardware Config #####
-PowerButton: Button1 (21)
-AuxButton: Button2 (23)
-NeoPixelBlade01: LED2+LED3 (Shared), Data1
-NeoPixelConnector: 16px, LED2+LED3 (Shared), Data2 (470 Ohm resistor)
-Crystal Chamber (2px SubBlade)
-Accents (SubBlade 3 px X3)
-BladeID Resistor: 33k
-BladePresent: Data3
-Save State

##### Install Intent #####
This is a dedicated Korbanth Revan Light V2 saber install. As such, it should have blue,
green and the iconic violet settings. Blue and Green should share the soundfont, while the
violent should use the dark or fallen soundfont. I bought JuanSith fonts on this saber and
Lord Blako and Kyberphics Butcher for the Korbanth Revan Dark V2, so they don't have the
same sound when paired together.

@@@ REMEMBER @@@: YOU SHOULD PAY FOR EACH SOUNDFONT THAT YOU INSTALL: MULTIPLE HILTS MEANS
BUYING IT MULTIPLE TIMES!

********************************************************************************************/

//*******************************************************************************************
#ifdef CONFIG_TOP
//*******************************************************************************************
/*-----------------------------
////// Hardware Defines  //////
-----------------------------*/
#include "proffieboard_v2_config.h"
#define NUM_BLADES 7						//(1 x Blade + 2 x illuminated NPXL PCB + 1 x Crystal Chamber + 3 Accents)
#define NUM_BUTTONS 2						//If you add a 2nd button, uncomment the AUX line at the bottom
const unsigned int maxLedsPerStrip = 180;	//Should be bigger than the longest physical strip you have (so you might have to add subblades)
#define EXTRA_COLOR_BUFFER_SPACE 70			//Helps to make some effects faster
#define CLASH_THRESHOLD_G 2.0				//Define how hard your motions before effects register. Lower if hard to get or increase if you have spurious effects.
#define ENABLE_MOTION						//Enables de motion sensors.
#define ENABLE_WS2811						//Enables WS2811 NeoPixe-style protocol
#define ENABLE_SD							//Enables SD Card access.
#define SHARED_POWER_PINS					//This one is used for sharing NPXL DATA line on same power lines. Normally used when you have an illuminated PCB or power accents from the blade PCB.
//#define ORIENTATION_ROTATION 0,17,0			//X,Y,Z rotation with respect to USB towards pommel. Mainly thought for curved pommels like Dookus, but also useful for usb at emitter config.

/*-----------------------------
////// Blade ID Defines //////
-----------------------------*/
#define BLADE_ID_CLASS ExternalPullupBladeID<bladeIdentifyPin, 33000>	//You have to run a resistor between 20k and 50k between 3.3V and your blade detect pin. If you use Data1 for your main blade, just put a 0603 resistor between the two pins.
#define BLADE_DETECT_PIN blade3Pin										//Blade detect pin.
#define ENABLE_POWER_FOR_ID PowerPINS<bladePowerPin2, bladePowerPin3>	//When it detects blade insert it resets the NPXL. If you have used more than one MOSFET, you should put all that power your blade here.
//#define BLADE_ID_SCAN_MILLIS 1000										//This define will scan for changes of BladeID value every N ms, if a change is detected it will initialize the saber from scratch and load the right settings for the new ID
#define BLADE_ID_TIMES 10												//This define is the number of scans that get averaged together to come up with a useable scanned value.

/*-----------------------------
/////// Audio Defines  ////////
-----------------------------*/
#define ENABLE_AUDIO					//Basic enabling of the audio functions.
#define VOLUME 2500						//Volume, anything 0-3000, recommended 700.
#define BOOT_VOLUME 100					//This is the volume the saber will default to on boot, you will then use Volume Menu or Volume Editing to adjust during normal use (same number scale as VOLUME).
#define FILTER_CUTOFF_FREQUENCY 100		//(Hz) Enable a butterworth highpass filter with the given order and cutoff frequency
#define FILTER_ORDER 8					//Order of the filter

/*-----------------------------
//////// OLED Defines  ////////
-----------------------------*/
#define ENABLE_SSD1306		//To enable OLED
//#define INCLUDE_SSD1306   //Includes support for ssd1306 displays, but does not automatically enable it
//#define OLED_FLIP_180     //Rotates OLED pictures 180deg
#define USE_AUREBESH_FONT	//Select Aubresh font for the display rather than Star Jedi

/*-----------------------------
///// BlueTooth Defines  //////
-----------------------------*/
// Bluetooth module:
// 1) Enable the defines below.
// 2) Add +1 to NUM_BLADES.
// 3) In Preset add: "StylePtr<Blue>(),".
// 4) In BladesConfig: "SimpleBladePtr<CH3LED, NoLED, NoLED, NoLED, bladePowerPin6, -1, -1, -1>()," where bladePowerPin6 is the MOSFET negative you used to power the BT module.
// 
//#define ENABLE_SERIAL				//To enable Blutooth
//Redbear BLE preloads BT name and password
//#define BLE_PASSWORD "PASSWORD"	//Password must be 20 or less characters.
//#define BLE_NAME "LONG NAME"		//Descriptive name.
//#define BLE_SHORTNAME "SHORTNAM"	//Must be 8 or less characters.

/*-----------------------------
///// ProffieOS Defines  //////
-----------------------------*/
#define DISABLE_DIAGNOSTIC_COMMANDS			//Recommended to save memory, disables diagnostic commands for Serial Monitor.
#define DISABLE_BASIC_PARSER_STYLES			//Saves memory by disabling old-fashioned styles.
#define MOTION_TIMEOUT 60 * 15 * 1000		//Amount of time motion and gestures detection stays active after saber is retracted. Affects Battle Mode.
#define IDLE_OFF_TIME 60 * 10 * 1000		//Amount of time power to LEDs remains active after saber is retracted. Might affect Bluetooth.
#define KILL_OLD_PLAYERS					//Will "kill off" oldest sound when spamming effects like blast or clash to prevent running out of wav players.

/*-----------------------------
//// Save States Defines  /////
-----------------------------*/
//#define SAVE_STATE					//Makes the board save last selected Volume, Preset and blade Color
#define SAVE_PRESET
/*#define SAVE_VOLUME
#define SAVE_COLOR_CHANGE
#define DYNAMIC_BLADE_DIMMING
#define DYNAMIC_BLADE_LENGTH
#define DYNAMIC_CLASH_THRESHOLD
#define SAVE_BLADE_DIMMING
#define SAVE_CLASH_THRESHOLD*/

/*-----------------------------
// Presets and Props Defines  /
-----------------------------*/
//#define DUAL_POWER_BUTTONS			//This one means that clicking the AUX will also turn the saber on. If not defined, AUX will go to next preset when off.
#define ENABLE_ALL_EDIT_OPTIONS
#define FETT263_DUAL_MODE_SOUND
//#define FETT263_EDIT_MODE_MENU
#define FETT263_CLASH_STRENGTH_SOUND
#define FETT263_MAX_CLASH 16
#define FETT263_SAY_COLOR_LIST
//#define FETT263_SAY_COLOR_LIST_CC
#define FETT263_SAY_BATTERY_PERCENT
#define FETT263_DISABLE_COPY_PRESET
//#define FETT263_HOLD_BUTTON_OFF
#define FETT263_LOCKUP_DELAY 200
#define FETT263_BM_CLASH_DETECT 6
#define NO_REPEAT_RANDOM				//Make ProffieOS remember which file (of each effect) was played last
#define COLOR_CHANGE_DIRECT				//Allows Color Change button to toggle each ColorChange<> effect.
//#define FEMALE_TALKIE_VOICE			//Uses a female talkie voice, only affects built-in error messages

#endif

//*******************************************************************************************
#ifdef CONFIG_PROP
//*******************************************************************************************
//#include "../props/saber.h"
#include "../props/saber_fett263_buttons.h"

/*
saber.h - this is the default, you don't need a CONFIG_PROP section to use this.
saber_sa22c_buttons.h - saber prop with button assignments designed by sa22c.
saber_shtok_buttons.h - saber prop with button assignments designed by Dmitry Shtok.
saber_fett263_buttons.h - saber prop with button assignments designed by fett263, includes battle mode.
saber_BC_buttons.h - (ProffieOS 6 or later) saber prop with button assignments and features designed by Brian Conner.
detonator.h - thermal detonator prop.
blaster.h - blaster prop.
audiofx.h - similar to an adafruit audiofx board.
micom.h -
*/
#endif

//*******************************************************************************************
#ifdef CONFIG_PRESETS
//*******************************************************************************************

//----------------------------------------------------------------------------------------------
// Default preset for pixelblades. You'd need a new one if you got a tricree-npxl adapter.
//----------------------------------------------------------------------------------------------
/********* Preset Intent ***********************************************************************
  This is Revan's Jedi Lightsaber. As such, it should have the following colors:
  BLUE
  GREEN
  VIOLET
  
  Blue and Green should be paired with light soundfont, while the violet should have a dark side
  sound font. Since the same happens with the Dark saber, and since we don't want them to have
  same sounds, we will keep both JuanSith soundfonts for this saber and Kyberphonics and LorgBlako
  for the Dark saber.
************************************************************************************************/
/********* Blade Definitions *******************************************************************

We have five different presets:
-presetneopxl:			Blade Present. 
-presetnpxltricree:		TriCree Blade Present
-presetchargeblade:		Charging Bladeplug Present
-presetneopxlbladeplug:	Illuminated Bladeplug
-presetnoblade:			No Blade Present
************************************************************************************************/

/*
"Light" Saber soundfonts:

"JuanSith/RReborn;common", "JuanSith/RReborn/tracks/track1.wav",
"Revanchist Reborn"

"JuanSith/RButcher;common", "JuanSith/RButcher/tracks/track1.wav",
"Revanchist The Butcher"

"Dark" saber sound fonts:

"LBSF/KOTORMed;common", "LBSF/KOTORMed/tracks/track1.wav",
"Revanchist Reborn"

"Kyberpho/PButcher;common", "Kyberpho/PButcher/tracks/track1.wav",
"Prodigal Butcher"

*/

Preset presetneopxl[] = {
	{	"JuanSith/RReborn;common",
		"JuanSith/RReborn/tracks/track1.wav",
		//Main Blade
		StylePtr<MainHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		"Revanchist Reborn B"
	},
	{	"JuanSith/RReborn;common",
		"JuanSith/RReborn/tracks/track1.wav",
		//Main Blade
		StylePtr<MainHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		"Revanchist Reborn G"
	},
	{	"JuanSith/RButcher;common",
		"JuanSith/RButcher/tracks/track1.wav",
		//Main Blade
		StylePtr<MainHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		"Revanchist The Butcher"
	},
	{ "PwrCell;common", "tracks/mars.wav",
		//Main Blade
		&style_charging,
		//Crystal Chamber
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Accents
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Illuminated PCB
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		"Power Cell\nLevel"
	}
};


//----------------------------------------------------------------------------------------------
// Preset for a NeoPixel TriCree adapter. Copies accents but simplify main blade.
//----------------------------------------------------------------------------------------------

Preset presetnpxltricree[] = {

	{	"JuanSith/RReborn;common",
		"JuanSith/RReborn/tracks/track1.wav",
		//Main Blade
		StyleNormalPtr<AudioFlicker<Yellow,White>,Blue,300,800>(),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		"Revanchist Reborn B"
	},
	{	"JuanSith/RReborn;common",
		"JuanSith/RReborn/tracks/track1.wav",
		//Main Blade
		StyleNormalPtr<AudioFlicker<Yellow,White>,Green,300,800>(),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		"Revanchist Reborn G"
	},
	{	"JuanSith/RButcher;common",
		"JuanSith/RButcher/tracks/track1.wav",
		//Main Blade
		StyleNormalPtr<AudioFlicker<Yellow,White>,Rgb<118,0,194>,300,800>(),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		"Revanchist The Butcher"
	},
	{ "PwrCell;common", "tracks/mars.wav",
		//Main Blade
		&style_charging,
		//Crystal Chamber
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Accents
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Illuminated PCB
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		"Power Cell\nLevel"
	}
};

//----------------------------------------------------------------------------------------------
// For NPX BladePlug
//----------------------------------------------------------------------------------------------
Preset presetneopxlbladeplug[] = {
	{	"JuanSith/RReborn;common",
		"JuanSith/RReborn/tracks/track1.wav",
		//Main Blade
		StylePtr<AccentHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		"Revanchist Reborn B"
	},
	{	"JuanSith/RReborn;common",
		"JuanSith/RReborn/tracks/track1.wav",
		//Main Blade
		StylePtr<AccentHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		"Revanchist Reborn G"
	},
	{	"JuanSith/RButcher;common",
		"JuanSith/RButcher/tracks/track1.wav",
		//Main Blade
		StylePtr<AccentHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		"Revanchist The Butcher"
	},
	{ "PwrCell;common", "tracks/mars.wav",
		//Main Blade
		&style_charging,
		//Crystal Chamber
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Accents
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Illuminated PCB
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		"Power Cell\nLevel"
	}
};

//----------------------------------------------------------------------------------------------
// For the Charging BladePlug
//----------------------------------------------------------------------------------------------
Preset presetchargeblade[] = {
	{ "PwrCell;common", "tracks/mars.wav",
		//Main Blade
		&style_charging,
		//Crystal Chamber
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Accents
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Illuminated PCB
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		"Power Cell\nLevel"
	}
};

//----------------------------------------------------------------------------------------------
// For the no blade case I would just leave a single preset for display and one for charge.
//----------------------------------------------------------------------------------------------
Preset presetnoblade[] = {
	{	"JuanSith/RReborn;common",
		"JuanSith/RReborn/tracks/track1.wav",
		//Main Blade
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,0,65535"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,0,65535"),
		"Revanchist Reborn B"
	},
	{	"JuanSith/RReborn;common",
		"JuanSith/RReborn/tracks/track1.wav",
		//Main Blade
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("0,65535,0"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("0,65535,0"),
		"Revanchist Reborn G"
	},
	{	"JuanSith/RButcher;common",
		"JuanSith/RButcher/tracks/track1.wav",
		//Main Blade
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Crystal Chamber
		StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		//Accents
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>("30208,0,49664"),
		//Illuminated PCB
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>("30208,0,49664"),
		"Revanchist The Butcher"
	},
	{ "PwrCell;common", "tracks/mars.wav",
		//Main Blade
		&style_charging,
		//Crystal Chamber
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Accents
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		//Illuminated PCB
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		"Power Cell\nLevel"
	}
};


//----------------------------------------------------------------------------------------------
// Blade number should always be the same. In this case, 7. Please note that the soundboard will
// not suppress power to any blade. But if it's not physically connected, you can blank it.
//----------------------------------------------------------------------------------------------
// Resistor range for the Blade PCB (between Data and Ground): 2k to 100k Ohms.

/********* Hardware Definition *****************************************************************
 The main blade goes on Data1, while the illuminated PCB, crystal chamber and accents are in
 Data2. We have a 2px crystal chamber, plus 3 X 3px accent strips, they are connecter to the
 NPXL PCB power and are in line in the following order Crystal/Accent1/Accent2/Accent3/NPX PCB.
 We use SubBladeWithStride so the illuminated PCB is treated as two concentric circles.
 Total pixels: 27 pixels.
 
 We have both BladeID and Blade Present capabilities. This should enable all types of autoconfig
 for presets and adapting to multiple conditions.
************************************************************************************************/
/********* Blade Definitions *******************************************************************

We have five different presets:
-presetneopxl:			Blade Present. 
-presetnpxltricree:		TriCree Blade Present
-presetchargeblade:		Charging Bladeplug Present
-presetneopxlbladeplug:	Illuminated Bladeplug
-presetnoblade:			No Blade Present

But we will only have a different save for "presetchargeblade", since the rest have the same
presets, only changing the style for the main blade due to hardware differences.
************************************************************************************************/

BladeConfig blades[] = {
	// Always leave a 0 resistor for a "catch all" config. No resistor will read as high ohms.
	// 0/Default is an 86cm, 124 pixel WS2812B
	// Saving state for each differant preset separatelly. Could also save for each individual blade.
	{ 0,
		//Main Blade
		WS281XBladePtr<124, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		//2 Pixel Crystal Chamber
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		//3X Accent Pixels (3pxl each)
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		//Illuminated PCB (separated in two 8 pxl rings)
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxl)
	},
	// 2.2k **FUTURE USE**
	// 2.7k **FUTURE USE**
	// 3.3k **FUTURE USE**
	// 3.9k **FUTURE USE**
	// 4.7k **FUTURE USE**
	// 5.6k **FUTURE USE**
	// 6.8k is an 46cm 65 pixel WS2812, SMD resistor (Grogu blade)
	{ 6800,
		WS281XBladePtr<65, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxl)
	},
	// 8.3k is an 56cm 80 pixel WS2812, SMD resistor (Yoda blade)
	{ 8300,
		WS281XBladePtr<80, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxl)
	},
	// 10k  **FUTURE USE**
	// 12k is a 108 pixel WS2812 (or V2 LED Strip), SMD resistor
	{ 12000,
		WS281XBladePtr<108, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxl)
	},
	// 15k is a 122 pixel WS2812 (or V2 LED Strip), SMD resistor
	{ 15000,
		WS281XBladePtr<122, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxl)
	},
	// 18k is a 132 pixel WS2812 (or V2 LED Strip), SMD resistor
	{ 18000,
		WS281XBladePtr<132, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxl)
	},
	// 22.3k is an 86.5cm 124 pixel WS2812, SMD resistor
	{ 22000,
		WS281XBladePtr<124, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxl)
	},
	// 27k is a 20 pixel WS2812 (or mini-LED Strip) (demo/test blade)
	{ 27000,
		WS281XBladePtr<20, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxl)
	},
	// 33k is a 15 pixel WS2812 (or mini-LED Strip) (demo/test blade)
	{ 33000,
		WS281XBladePtr<15, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxl)
	},	
	// 39k is Charging Bladeplug with 5 pixels WS2812b
	{ 39000,
		WS281XBladePtr<5, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetchargeblade),
		"chrg_sav"     //You can add a directory to save state for each blade.
	},
	// 47k is Bladeplug with 5 pixels WS2812b, SMD resistor
	{ 47000,
		WS281XBladePtr<5, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxlbladeplug),
	},
	// 56k is Shtok's NPXL to TriCree adapter
	{ 56000,
		WS281XBladePtr<1, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetnpxltricree), /**** Please do a different preset for TRI Cree ****/
	},
	// 68k is an 86.5cm, 124 pixel WS2812, metal resistor
	{ 68000,
		WS281XBladePtr<124, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxl)
	},
	//82k **FUTURE USE**
	//### Deprecated ###
	// 100k is an 85cm, 124 pixel WS2812B	
	{ 100000,
		WS281XBladePtr<124, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetneopxl)
	},
	//Let's assume a blade plug with 5 leds.
	{ NO_BLADE,
		WS281XBladePtr<5, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
		SubBlade(0, 1, WS281XBladePtr<27, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
		SubBlade(2, 4, NULL),
		SubBlade(5, 7, NULL),
		SubBlade(8, 10, NULL),
		SubBladeWithStride(11, 25, 2, NULL),
		SubBladeWithStride(12, 26, 2, NULL),
		CONFIGARRAY(presetnoblade),
	}
};

#endif

//*******************************************************************************************
#ifdef CONFIG_BUTTONS
//*******************************************************************************************
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow"); //Single or Power Button
Button AuxButton(BUTTON_AUX, auxPin, "aux"); // for second button
#endif


//*******************************************************************************************
#ifdef CONFIG_STYLES
//*******************************************************************************************


//######## Main Blade Style ########
/*--------------------------------- MainHyperResponsiveRotoscopePrequelsBlue -------------------------
copyright Fett263 Rotoscope (Primary Blade) OS6 Style
https://fett263.com/fett263-proffieOS6-style-library.html#Rotoscope
OS6.7 v4.021
Single Style
Base Style: Hyper Responsive Rotoscope (Prequels)


--Effects Included--
Ignition Effect: Standard Ignition
Retraction Effect: Standard Retraction
Lockup Effect: Intensity Lockup V1, Begin Effect: Real Clash, End Effect: Full Blade Absorb
LightningBlock Effect: Responsive Lightning Block
Drag Effect: Intensity Sparking Drag
Melt Effect: Intensity Melt
Blast Effect: Blast Wave (Random)
Clash Effect: Real Clash V1
*/
using MainHyperResponsiveRotoscopePrequelsBlue = Layers<Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,RandomFlicker<StripesX<Int<24000>,Scale<HoldPeakF<SwingSpeed<200>,Scale<SwingAcceleration<100>,Int<50>,Int<300>>,Scale<SwingAcceleration<100>,Int<24000>,Int<16000>>>,Int<-1400>,Int<-100>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<19276>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,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,24,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>>,Mix<TwistAngle<>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>,RotateColorsX<Int<3000>,Mix<Int<12000>,Black,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>>>,0,3,5,3000,10>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrConcat<TrWipeIn<100>,AlphaL<RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrJoin<TrDelay<4000>,TrFade<300>>,AlphaL<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>>,SmoothStep<IntArg<MELT_SIZE_ARG,28000>,Int<4000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipeX<IgnitionTime<300>>,TrWipeInX<RetractionTime<0>>,Black>>;
/*
Add to preset as StylePtr<MainHyperResponsiveRotoscopePrequelsBlue>()
--------------------------------------------------------------------------*/

//######## Accents Style ########
/*--------------------------------- AccentHyperResponsiveRotoscopeOriginalTrilogyBlue -------------------------
copyright Fett263 (Accent LED / PCB) OS6 Style
https://fett263.com/fett263-proffieOS6-style-library.html#Rotoscope
OS6.7 v4.021
Single Style
On Behavior: Slow Run Forward
Off Behavior: Slow Pulse Off-On


--Effects Included--
Ignition Effect: Instant
Retraction Effect: Instant
*/
using AccentHyperResponsiveRotoscopeOriginalTrilogyBlue = Layers<TransitionLoop<Black,TrConcat<TrWipe<1000>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,TrWipe<1000>>>,InOutTrL<TrInstant,TrInstant,Pulsing<Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,8000>>>;
/*
Add to preset as StylePtr<AccentHyperResponsiveRotoscopeOriginalTrilogyBlue>()
--------------------------------------------------------------------------*/

//######## Illuminated PCB Style ########
/*--------------------------------- AccentHyperResponsiveRotoscopePrequelsBlue -------------------------
copyright Fett263 Rotoscope (Accent LED / PCB) OS6 Style
https://fett263.com/fett263-proffieOS6-style-library.html#Rotoscope
OS6.7 v4.021
Single Style
Base Style: Hyper Responsive Rotoscope (Prequels)

Off Behavior: Off
Timed Shift, reset with Clash or Lockup. Timed Shift, reset with Clash or Lockup. Timed Shift, reset with Clash or Lockup. Timed Shift, reset with Clash or Lockup. Timed Shift, reset with Clash or Lockup. Timed Shift, reset with Clash or Lockup. Timed Shift, reset with Clash or Lockup.

--Effects Included--
Ignition Effect: Instant
Retraction Effect: Instant
*/
using IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue = Layers<Mix<HoldPeakF<SwingSpeed<250>,Scale<SwingAcceleration<100>,Int<50>,Int<500>>,Scale<SwingAcceleration<>,Int<20000>,Int<10000>>>,RandomFlicker<StripesX<Int<24000>,Scale<HoldPeakF<SwingSpeed<200>,Scale<SwingAcceleration<100>,Int<50>,Int<300>>,Scale<SwingAcceleration<100>,Int<24000>,Int<16000>>>,Int<-1400>,Int<-100>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<7710>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<19276>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,InOutTrL<TrInstant,TrInstant,Black>>;
/*
Add to preset as StylePtr<IlluminatedPCBHyperResponsiveRotoscopePrequelsBlue>()
--------------------------------------------------------------------------*/

//######## Crystal Chamber Style ########
/*--------------------------------- CrystalHyperResponsiveRotoscopePrequelsBlue -------------------------
copyright Fett263 (Crystal Chamber) OS6 Style
https://fett263.com/fett263-proffieOS6-style-library.html#Rotoscope
OS6.7 v4.021
Single Style
On Behavior: Kyber Flow Up
Off Behavior: Slow Pulse Off-On


--Effects Included--
Ignition Effect: Instant
PowerUp Effect: Power Flash
Retraction Effect: Instant
CoolDown Effect: Power Flash
*/
using CrystalHyperResponsiveRotoscopePrequelsBlue = Layers<Stripes<5000,-2500,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<16384>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,TransitionEffectL<TrConcat<TrJoin<TrDelayX<IgnitionTime<0>>,TrInstant>,RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>,TrFade<1000>>,EFFECT_IGNITION>,TransitionEffectL<TrConcat<TrJoin<TrDelayX<RetractionTime<0>>,TrInstant>,RgbArg<RETRACTION_COLOR_ARG,Rgb<255,255,255>>,TrFade<1000>>,EFFECT_RETRACTION>,InOutTrL<TrInstant,TrInstant,Pulsing<Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,8000>>>;
/*
Add to preset as StylePtr<CrystalHyperResponsiveRotoscopePrequelsBlue>()
--------------------------------------------------------------------------*/

#endif