Skip to content
Snippets Groups Projects
GradientPalettes.h 15.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jason Coon's avatar
    Jason Coon committed
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    // 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};
    
    Jason Coon's avatar
    Jason Coon committed
    
    
    // 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 );
    
    Jason Coon's avatar
    Jason Coon committed