diff --git a/app_run_tree/data/blumen_animations/ambient_patterns/fishy_0.foldanim b/app_run_tree/data/blumen_animations/ambient_patterns/fishy_0.foldanim index 7119bbc..562f43d 100644 --- a/app_run_tree/data/blumen_animations/ambient_patterns/fishy_0.foldanim +++ b/app_run_tree/data/blumen_animations/ambient_patterns/fishy_0.foldanim @@ -43,6 +43,6 @@ blocks:{ max: 3600; }; layer_index: 0; - animation_name: "Pattern_Rotary"; + animation_name: "Pattern_VerticalLines"; }; }; diff --git a/app_run_tree/data/blumen_animations/ambient_patterns/rainbow_0.foldanim b/app_run_tree/data/blumen_animations/ambient_patterns/rainbow_0.foldanim index ab6f4e3..ee12af4 100644 --- a/app_run_tree/data/blumen_animations/ambient_patterns/rainbow_0.foldanim +++ b/app_run_tree/data/blumen_animations/ambient_patterns/rainbow_0.foldanim @@ -1,10 +1,10 @@ lumenarium_animation_file; animation_name: "rainbow"; -layers_count: 2; +layers_count: 3; blocks_count: 1; playable_range:{ min: 0; - max: 360; + max: 3600; }; layers:{ layer:{ @@ -15,12 +15,16 @@ layers:{ name: "Color"; blend: "Add"; }; + layer:{ + name: "[New Layer]"; + blend: "Add"; + }; }; blocks:{ block:{ frame_range:{ min: 0; - max: 360; + max: 3600; }; layer_index: 1; animation_name: "Pattern_Rainbow"; diff --git a/src/app/editor/interface.h b/src/app/editor/interface.h index 6a0e228..244e85d 100644 --- a/src/app/editor/interface.h +++ b/src/app/editor/interface.h @@ -517,7 +517,7 @@ ui_GetRetainedState(ui_interface* Interface, ui_widget_id Id) { // NOTE(PS): If we are accessing a retained state, it shouldn't // have been accessed longer ago than the last frame - Assert(Interface->RetainedState[i].FramesSinceAccess <= 2); + //Assert(Interface->RetainedState[i].FramesSinceAccess <= 2); Interface->RetainedState[i].FramesSinceAccess = 0; Result = Interface->RetainedState + i; break; diff --git a/src/app/patterns/blumen_patterns.h b/src/app/patterns/blumen_patterns.h index 534d78e..3023506 100644 --- a/src/app/patterns/blumen_patterns.h +++ b/src/app/patterns/blumen_patterns.h @@ -414,7 +414,7 @@ Pattern_VerticalLines(led_buffer* Leds, led_buffer_range Range, assembly Assembl r32 LightSpeedMin = 1; r32 LightSpeedMax = 5; - s32 LightTailLength = 10; + s32 LightTailLength = 60; for (u32 StripIndex = 0; StripIndex < Assembly.StripCount; StripIndex++) { v2_strip Strip = Assembly.Strips[StripIndex]; @@ -503,7 +503,7 @@ Pattern_Rotary(led_buffer* Leds, led_buffer_range Range, assembly Assembly, r32 blumen_lumen_state* BLState = (blumen_lumen_state*)UserData; Time = Time * BLState->PatternSpeed; - Pattern_RotaryOptions(Leds, Range, Assembly, Time, Transient, UserData, 2, BlackV4, WhiteV4); + Pattern_RotaryOptions(Leds, Range, Assembly, Time, Transient, UserData, .25f, BlackV4, WhiteV4); } internal void diff --git a/src/app/ss_blumen_lumen/blumen_lumen.h b/src/app/ss_blumen_lumen/blumen_lumen.h index 3d2bec5..db52256 100644 --- a/src/app/ss_blumen_lumen/blumen_lumen.h +++ b/src/app/ss_blumen_lumen/blumen_lumen.h @@ -257,6 +257,7 @@ BlumenLumen_GetCurrentHue(blumen_lumen_state* BLState, assembly Assembly) switch (BLState->PatternMode) { + case BlumenPattern_NoControl: case BlumenPattern_Standard: { Result = BLState->StandardPatternHues; diff --git a/src/app/ss_blumen_lumen/blumen_lumen_settings.h b/src/app/ss_blumen_lumen/blumen_lumen_settings.h index b33a224..24c0348 100644 --- a/src/app/ss_blumen_lumen/blumen_lumen_settings.h +++ b/src/app/ss_blumen_lumen/blumen_lumen_settings.h @@ -16,7 +16,7 @@ gs_const_string Flower2AssemblyPath = ConstString("data/ss_blumen_three.fold"); // The path to the phrase map CSV. Can be an absolute path, or relative // to the app_run_tree folder -gs_const_string PhraseMapCSVPath = ConstString("data/flower_codes.tsv"); +gs_const_string PhraseMapCSVPath = ConstString("C:/projects/flowers-sound/flower_codes.tsv"); char PhraseMapCSVSeparator = '\t'; // Search Strings for which folders to find ambient animation files and @@ -36,21 +36,23 @@ gs_const_string VoicePatternFolder = ConstString("data/blumen_animations/audio_r // NOTE: There is no need to modify the MotorOpenTimesCount variable - // it is a compile time constant that gets calculated automatically global time_range MotorOpenTimes[] = { - { 12, 45, 17, 45 }, // 12:45pm to 5:45pm - { 19, 00, 23, 00 }, // 7:00pm to 11:00pm + { 8, 00, 12, 00 }, + { 12, 30, 13, 00 }, + { 18, 00, 22, 00 }, // 7:00pm to 11:00pm }; global u32 MotorOpenTimesCount = CArrayLength(MotorOpenTimes); // do not edit // The times of day when the leds should be on // Search for @TimeFormat to find documentation global time_range LedOnTimes[] = { - { 00, 00, 23, 59 }, // literally always + { 17, 00, 23, 59 }, + { 00, 00, 06, 30 }, }; global u32 LedOnTimesCount = CArrayLength(LedOnTimes); // do not edit // How long it takes to fade from the default pattern to the // voice activated pattern -r32 VoiceCommandFadeDuration = 0.0f; // in seconds +r32 VoiceCommandFadeDuration = 0.5f; // in seconds // How long the voice activated pattern will remain active // without additional voice commands, before fading back to @@ -88,14 +90,14 @@ r64 TurnUpperLedsOffAfterMotorCloseCommandDelay = 120.0; // in seconds // NOTE: this is an 8bit signed integer so its range is // -128 to 127, not that we should need either of those extremes for // this, but just a note that you can't just put anything in here. -s8 MinHighTemperature = 0; +s8 MinHighTemperature = 26; // The percent brightness we set leds to during high temperatures. // A value in the range 0:1 inclusive // This is multiplied by each pixels R, G, & B channels before being // sent. So if it is set to .1f, then the maximum brightness value sent // to any channel of any pixel will be 25 (255 * .1 = 25). -r32 HighTemperatureBrightnessPercent = 1.0f; +r32 HighTemperatureBrightnessPercent = 0.7f; // The percent brightness we set leds to when no other conditions apply // A value in the range 0:1 inclusive. @@ -116,9 +118,9 @@ r32 GlobalAnimSpeed = 1.0f; r32 GlobalAnimTransitionSpeed = 0.0f; // how long it takes to fade from the old voice hue to the new one -r32 PhraseHueFadeInDuration = 2.0f; // seconds +r32 PhraseHueFadeInDuration = 0.01f; // seconds -r64 PhrasePriorityMessageGroupingTime = 0.0f; +r64 PhrasePriorityMessageGroupingTime = 0.1f; // How often should Lumenarium send its status to the python server? //