// From ColorWavesWithPalettes by Mark Kriegsman: https://gist.github.com/kriegsman/8281905786e8b2632aeb // Gradient Color Palette definitions for 33 different cpt-city color palettes. // 956 bytes of PROGMEM for all of the palettes together, // +618 bytes of PROGMEM for gradient palette code (AVR). // 1,494 bytes total for all 34 color palettes and associated code. // Gradient palette "ib_jul01_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/ing/xmas/tn/ib_jul01.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 16 bytes of program space. DEFINE_GRADIENT_PALETTE( ib_jul01_gp ) { 0, 194, 1, 1, 94, 1, 29, 18, 132, 57,131, 28, 255, 113, 1, 1}; // Gradient palette "es_vintage_57_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/vintage/tn/es_vintage_57.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 20 bytes of program space. DEFINE_GRADIENT_PALETTE( es_vintage_57_gp ) { 0, 2, 1, 1, 53, 18, 1, 0, 104, 69, 29, 1, 153, 167,135, 10, 255, 46, 56, 4}; // Gradient palette "es_vintage_01_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/vintage/tn/es_vintage_01.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 32 bytes of program space. DEFINE_GRADIENT_PALETTE( es_vintage_01_gp ) { 0, 4, 1, 1, 51, 16, 0, 1, 76, 97,104, 3, 101, 255,131, 19, 127, 67, 9, 4, 153, 16, 0, 1, 229, 4, 1, 1, 255, 4, 1, 1}; // Gradient palette "es_rivendell_15_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/rivendell/tn/es_rivendell_15.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 20 bytes of program space. DEFINE_GRADIENT_PALETTE( es_rivendell_15_gp ) { 0, 1, 14, 5, 101, 16, 36, 14, 165, 56, 68, 30, 242, 150,156, 99, 255, 150,156, 99}; // Gradient palette "rgi_15_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/ds/rgi/tn/rgi_15.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 36 bytes of program space. DEFINE_GRADIENT_PALETTE( rgi_15_gp ) { 0, 4, 1, 31, 31, 55, 1, 16, 63, 197, 3, 7, 95, 59, 2, 17, 127, 6, 2, 34, 159, 39, 6, 33, 191, 112, 13, 32, 223, 56, 9, 35, 255, 22, 6, 38}; // Gradient palette "retro2_16_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/ma/retro2/tn/retro2_16.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 8 bytes of program space. DEFINE_GRADIENT_PALETTE( retro2_16_gp ) { 0, 188,135, 1, 255, 46, 7, 1}; // Gradient palette "Analogous_1_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/red/tn/Analogous_1.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 20 bytes of program space. DEFINE_GRADIENT_PALETTE( Analogous_1_gp ) { 0, 3, 0,255, 63, 23, 0,255, 127, 67, 0,255, 191, 142, 0, 45, 255, 255, 0, 0}; // Gradient palette "es_pinksplash_08_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/pink_splash/tn/es_pinksplash_08.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 20 bytes of program space. DEFINE_GRADIENT_PALETTE( es_pinksplash_08_gp ) { 0, 126, 11,255, 127, 197, 1, 22, 175, 210,157,172, 221, 157, 3,112, 255, 157, 3,112}; // Gradient palette "es_pinksplash_07_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/pink_splash/tn/es_pinksplash_07.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 28 bytes of program space. DEFINE_GRADIENT_PALETTE( es_pinksplash_07_gp ) { 0, 229, 1, 1, 61, 242, 4, 63, 101, 255, 12,255, 127, 249, 81,252, 153, 255, 11,235, 193, 244, 5, 68, 255, 232, 1, 5}; // Gradient palette "Coral_reef_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/other/tn/Coral_reef.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 24 bytes of program space. DEFINE_GRADIENT_PALETTE( Coral_reef_gp ) { 0, 40,199,197, 50, 10,152,155, 96, 1,111,120, 96, 43,127,162, 139, 10, 73,111, 255, 1, 34, 71}; // Gradient palette "es_ocean_breeze_068_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/ocean_breeze/tn/es_ocean_breeze_068.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 24 bytes of program space. DEFINE_GRADIENT_PALETTE( es_ocean_breeze_068_gp ) { 0, 100,156,153, 51, 1, 99,137, 101, 1, 68, 84, 104, 35,142,168, 178, 0, 63,117, 255, 1, 10, 10}; // Gradient palette "es_ocean_breeze_036_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/ocean_breeze/tn/es_ocean_breeze_036.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 16 bytes of program space. DEFINE_GRADIENT_PALETTE( es_ocean_breeze_036_gp ) { 0, 1, 6, 7, 89, 1, 99,111, 153, 144,209,255, 255, 0, 73, 82}; // Gradient palette "departure_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/mjf/tn/departure.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 88 bytes of program space. DEFINE_GRADIENT_PALETTE( departure_gp ) { 0, 8, 3, 0, 42, 23, 7, 0, 63, 75, 38, 6, 84, 169, 99, 38, 106, 213,169,119, 116, 255,255,255, 138, 135,255,138, 148, 22,255, 24, 170, 0,255, 0, 191, 0,136, 0, 212, 0, 55, 0, 255, 0, 55, 0}; // Gradient palette "es_landscape_64_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/landscape/tn/es_landscape_64.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 36 bytes of program space. DEFINE_GRADIENT_PALETTE( es_landscape_64_gp ) { 0, 0, 0, 0, 37, 2, 25, 1, 76, 15,115, 5, 127, 79,213, 1, 128, 126,211, 47, 130, 188,209,247, 153, 144,182,205, 204, 59,117,250, 255, 1, 37,192}; // Gradient palette "es_landscape_33_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/landscape/tn/es_landscape_33.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 24 bytes of program space. DEFINE_GRADIENT_PALETTE( es_landscape_33_gp ) { 0, 1, 5, 0, 19, 32, 23, 1, 38, 161, 55, 1, 63, 229,144, 1, 66, 39,142, 74, 255, 1, 4, 1}; // Gradient palette "rainbowsherbet_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/ma/icecream/tn/rainbowsherbet.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 28 bytes of program space. DEFINE_GRADIENT_PALETTE( rainbowsherbet_gp ) { 0, 255, 33, 4, 43, 255, 68, 25, 86, 255, 7, 25, 127, 255, 82,103, 170, 255,255,242, 209, 42,255, 22, 255, 87,255, 65}; // Gradient palette "gr65_hult_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/hult/tn/gr65_hult.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 24 bytes of program space. DEFINE_GRADIENT_PALETTE( gr65_hult_gp ) { 0, 247,176,247, 48, 255,136,255, 89, 220, 29,226, 160, 7, 82,178, 216, 1,124,109, 255, 1,124,109}; // Gradient palette "gr64_hult_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/hult/tn/gr64_hult.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 32 bytes of program space. DEFINE_GRADIENT_PALETTE( gr64_hult_gp ) { 0, 1,124,109, 66, 1, 93, 79, 104, 52, 65, 1, 130, 115,127, 1, 150, 52, 65, 1, 201, 1, 86, 72, 239, 0, 55, 45, 255, 0, 55, 45}; // Gradient palette "GMT_drywet_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/gmt/tn/GMT_drywet.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 28 bytes of program space. DEFINE_GRADIENT_PALETTE( GMT_drywet_gp ) { 0, 47, 30, 2, 42, 213,147, 24, 84, 103,219, 52, 127, 3,219,207, 170, 1, 48,214, 212, 1, 1,111, 255, 1, 7, 33}; // Gradient palette "ib15_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/ing/general/tn/ib15.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 24 bytes of program space. DEFINE_GRADIENT_PALETTE( ib15_gp ) { 0, 113, 91,147, 72, 157, 88, 78, 89, 208, 85, 33, 107, 255, 29, 11, 141, 137, 31, 39, 255, 59, 33, 89}; // Gradient palette "Fuschia_7_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/ds/fuschia/tn/Fuschia-7.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 20 bytes of program space. DEFINE_GRADIENT_PALETTE( Fuschia_7_gp ) { 0, 43, 3,153, 63, 100, 4,103, 127, 188, 5, 66, 191, 161, 11,115, 255, 135, 20,182}; // Gradient palette "es_emerald_dragon_08_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/emerald_dragon/tn/es_emerald_dragon_08.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 16 bytes of program space. DEFINE_GRADIENT_PALETTE( es_emerald_dragon_08_gp ) { 0, 97,255, 1, 101, 47,133, 1, 178, 13, 43, 1, 255, 2, 10, 1}; // Gradient palette "lava_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/neota/elem/tn/lava.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 52 bytes of program space. DEFINE_GRADIENT_PALETTE( lava_gp ) { 0, 0, 0, 0, 46, 18, 0, 0, 96, 113, 0, 0, 108, 142, 3, 1, 119, 175, 17, 1, 146, 213, 44, 2, 174, 255, 82, 4, 188, 255,115, 4, 202, 255,156, 4, 218, 255,203, 4, 234, 255,255, 4, 244, 255,255, 71, 255, 255,255,255}; // Gradient palette "fire_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/neota/elem/tn/fire.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 28 bytes of program space. DEFINE_GRADIENT_PALETTE( fire_gp ) { 0, 1, 1, 0, 76, 32, 5, 0, 146, 192, 24, 0, 197, 220,105, 5, 240, 252,255, 31, 250, 252,255,111, 255, 255,255,255}; // Gradient palette "Colorfull_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/atmospheric/tn/Colorfull.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 44 bytes of program space. DEFINE_GRADIENT_PALETTE( Colorfull_gp ) { 0, 10, 85, 5, 25, 29,109, 18, 60, 59,138, 42, 93, 83, 99, 52, 106, 110, 66, 64, 109, 123, 49, 65, 113, 139, 35, 66, 116, 192,117, 98, 124, 255,255,137, 168, 100,180,155, 255, 22,121,174}; // Gradient palette "Magenta_Evening_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/atmospheric/tn/Magenta_Evening.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 28 bytes of program space. DEFINE_GRADIENT_PALETTE( Magenta_Evening_gp ) { 0, 71, 27, 39, 31, 130, 11, 51, 63, 213, 2, 64, 70, 232, 1, 66, 76, 252, 1, 69, 108, 123, 2, 51, 255, 46, 9, 35}; // Gradient palette "Pink_Purple_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/atmospheric/tn/Pink_Purple.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 44 bytes of program space. DEFINE_GRADIENT_PALETTE( Pink_Purple_gp ) { 0, 19, 2, 39, 25, 26, 4, 45, 51, 33, 6, 52, 76, 68, 62,125, 102, 118,187,240, 109, 163,215,247, 114, 217,244,255, 122, 159,149,221, 149, 113, 78,188, 183, 128, 57,155, 255, 146, 40,123}; // Gradient palette "Sunset_Real_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/atmospheric/tn/Sunset_Real.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 28 bytes of program space. DEFINE_GRADIENT_PALETTE( Sunset_Real_gp ) { 0, 120, 0, 0, 22, 179, 22, 0, 51, 255,104, 0, 85, 167, 22, 18, 135, 100, 0,103, 198, 16, 0,130, 255, 0, 0,160}; // Gradient palette "es_autumn_19_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/es/autumn/tn/es_autumn_19.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 52 bytes of program space. DEFINE_GRADIENT_PALETTE( es_autumn_19_gp ) { 0, 26, 1, 1, 51, 67, 4, 1, 84, 118, 14, 1, 104, 137,152, 52, 112, 113, 65, 1, 122, 133,149, 59, 124, 137,152, 52, 135, 113, 65, 1, 142, 139,154, 46, 163, 113, 13, 1, 204, 55, 3, 1, 249, 17, 1, 1, 255, 17, 1, 1}; // Gradient palette "BlacK_Blue_Magenta_White_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/BlacK_Blue_Magenta_White.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 28 bytes of program space. DEFINE_GRADIENT_PALETTE( BlacK_Blue_Magenta_White_gp ) { 0, 0, 0, 0, 42, 0, 0, 45, 84, 0, 0,255, 127, 42, 0,255, 170, 255, 0,255, 212, 255, 55,255, 255, 255,255,255}; // Gradient palette "BlacK_Magenta_Red_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/BlacK_Magenta_Red.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 20 bytes of program space. DEFINE_GRADIENT_PALETTE( BlacK_Magenta_Red_gp ) { 0, 0, 0, 0, 63, 42, 0, 45, 127, 255, 0,255, 191, 255, 0, 45, 255, 255, 0, 0}; // Gradient palette "BlacK_Red_Magenta_Yellow_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/BlacK_Red_Magenta_Yellow.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 28 bytes of program space. DEFINE_GRADIENT_PALETTE( BlacK_Red_Magenta_Yellow_gp ) { 0, 0, 0, 0, 42, 42, 0, 0, 84, 255, 0, 0, 127, 255, 0, 45, 170, 255, 0,255, 212, 255, 55, 45, 255, 255,255, 0}; // Gradient palette "Blue_Cyan_Yellow_gp", originally from // http://soliton.vm.bytemark.co.uk/pub/cpt-city/nd/basic/tn/Blue_Cyan_Yellow.png.index.html // converted for FastLED with gammas (2.6, 2.2, 2.5) // Size: 20 bytes of program space. DEFINE_GRADIENT_PALETTE( Blue_Cyan_Yellow_gp ) { 0, 0, 0,255, 63, 0, 55,255, 127, 0,255,255, 191, 42,255, 45, 255, 255,255, 0}; // Single array of defined cpt-city color palettes. // This will let us programmatically choose one based on // a number, rather than having to activate each explicitly // by name every time. // Since it is const, this array could also be moved // into PROGMEM to save SRAM, but for simplicity of illustration // we'll keep it in a regular SRAM array. // // This list of color palettes acts as a "playlist"; you can // add or delete, or re-arrange as you wish. const TProgmemRGBGradientPalettePtr gGradientPalettes[] = { Sunset_Real_gp, es_rivendell_15_gp, es_ocean_breeze_036_gp, rgi_15_gp, retro2_16_gp, Analogous_1_gp, es_pinksplash_08_gp, Coral_reef_gp, es_ocean_breeze_068_gp, es_pinksplash_07_gp, es_vintage_01_gp, departure_gp, es_landscape_64_gp, es_landscape_33_gp, rainbowsherbet_gp, gr65_hult_gp, gr64_hult_gp, GMT_drywet_gp, ib_jul01_gp, es_vintage_57_gp, ib15_gp, Fuschia_7_gp, es_emerald_dragon_08_gp, lava_gp, fire_gp, Colorfull_gp, Magenta_Evening_gp, Pink_Purple_gp, es_autumn_19_gp, BlacK_Blue_Magenta_White_gp, BlacK_Magenta_Red_gp, BlacK_Red_Magenta_Yellow_gp, Blue_Cyan_Yellow_gp }; // Count of how many cpt-city gradients are defined: const uint8_t gGradientPaletteCount = sizeof( gGradientPalettes) / sizeof( TProgmemRGBGradientPalettePtr );