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