Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FastLED/FastLED.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Garcia <danielgarcia@gmail.com>2015-08-11 08:37:41 +0300
committerDaniel Garcia <danielgarcia@gmail.com>2015-08-11 08:37:41 +0300
commit6a6ec8c094295ae3e75638b8ad706d8303227239 (patch)
treef7027e9e7faab7a2ac69c098ed5530dc0ac0e907
parent11311cf53235c60e35270eb9667d84e9626f36bc (diff)
updating documentation
-rw-r--r--docs/3.1/_fast_l_e_d_8h_source.html2
-rw-r--r--docs/3.1/_fast_s_p_i___l_e_d2_8h_source.html2
-rw-r--r--docs/3.1/annotated.html2
-rw-r--r--docs/3.1/bitswap_8h.html2
-rw-r--r--docs/3.1/bitswap_8h_source.html2
-rw-r--r--docs/3.1/chipsets_8h_source.html2
-rw-r--r--docs/3.1/class_a_p_a102_controller-members.html2
-rw-r--r--docs/3.1/class_a_p_a102_controller.html2
-rw-r--r--docs/3.1/class_a_p_a104.html2
-rw-r--r--docs/3.1/class_a_v_r_software_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_a_v_r_software_s_p_i_output.html2
-rw-r--r--docs/3.1/class_c_every_n_time_periods-members.html2
-rw-r--r--docs/3.1/class_c_every_n_time_periods.html2
-rw-r--r--docs/3.1/class_c_fast_l_e_d-members.html2
-rw-r--r--docs/3.1/class_c_fast_l_e_d.html2
-rw-r--r--docs/3.1/class_c_h_s_v_palette16-members.html2
-rw-r--r--docs/3.1/class_c_h_s_v_palette16.html2
-rw-r--r--docs/3.1/class_c_h_s_v_palette256-members.html2
-rw-r--r--docs/3.1/class_c_h_s_v_palette256.html2
-rw-r--r--docs/3.1/class_c_l_e_d_controller-members.html2
-rw-r--r--docs/3.1/class_c_l_e_d_controller.html2
-rw-r--r--docs/3.1/class_c_min_wait-members.html2
-rw-r--r--docs/3.1/class_c_min_wait.html2
-rw-r--r--docs/3.1/class_c_r_g_b_palette16-members.html2
-rw-r--r--docs/3.1/class_c_r_g_b_palette16.html2
-rw-r--r--docs/3.1/class_c_r_g_b_palette256-members.html2
-rw-r--r--docs/3.1/class_c_r_g_b_palette256.html2
-rw-r--r--docs/3.1/class_d_a_t_a___n_o_p-members.html2
-rw-r--r--docs/3.1/class_d_a_t_a___n_o_p.html2
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html2
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l.html2
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html2
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e.html2
-rw-r--r--docs/3.1/class_d_m_x_serial_controller-members.html2
-rw-r--r--docs/3.1/class_d_m_x_serial_controller.html2
-rw-r--r--docs/3.1/class_d_m_x_simple_controller-members.html2
-rw-r--r--docs/3.1/class_d_m_x_simple_controller.html2
-rw-r--r--docs/3.1/class_fast_pin-members.html2
-rw-r--r--docs/3.1/class_fast_pin.html2
-rw-r--r--docs/3.1/class_fast_pin_b_b-members.html2
-rw-r--r--docs/3.1/class_fast_pin_b_b.html2
-rw-r--r--docs/3.1/class_g_w6205.html2
-rw-r--r--docs/3.1/class_g_w6205__400.html2
-rw-r--r--docs/3.1/class_g_w6205_controller400_khz.html2
-rw-r--r--docs/3.1/class_g_w6205_controller800_khz.html2
-rw-r--r--docs/3.1/class_input_pin-members.html2
-rw-r--r--docs/3.1/class_input_pin.html2
-rw-r--r--docs/3.1/class_l_p_d1886.html2
-rw-r--r--docs/3.1/class_l_p_d1886_controller1250_khz.html2
-rw-r--r--docs/3.1/class_l_p_d8806_controller-members.html2
-rw-r--r--docs/3.1/class_l_p_d8806_controller.html2
-rw-r--r--docs/3.1/class_n_e_o_p_i_x_e_l.html2
-rw-r--r--docs/3.1/class_output_pin-members.html2
-rw-r--r--docs/3.1/class_output_pin.html2
-rw-r--r--docs/3.1/class_p9813_controller-members.html2
-rw-r--r--docs/3.1/class_p9813_controller.html2
-rw-r--r--docs/3.1/class_pin-members.html2
-rw-r--r--docs/3.1/class_pin.html2
-rw-r--r--docs/3.1/class_s_m16716_controller-members.html2
-rw-r--r--docs/3.1/class_s_m16716_controller.html2
-rw-r--r--docs/3.1/class_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_s_p_i_output.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_selectable-members.html2
-rw-r--r--docs/3.1/class_selectable.html2
-rw-r--r--docs/3.1/class_software_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_software_s_p_i_output.html2
-rw-r--r--docs/3.1/class_t_m1803.html2
-rw-r--r--docs/3.1/class_t_m1803_controller400_khz.html2
-rw-r--r--docs/3.1/class_t_m1804.html2
-rw-r--r--docs/3.1/class_t_m1809.html2
-rw-r--r--docs/3.1/class_t_m1809_controller800_khz.html2
-rw-r--r--docs/3.1/class_t_m1829.html2
-rw-r--r--docs/3.1/class_t_m1829_controller1600_khz.html2
-rw-r--r--docs/3.1/class_t_m1829_controller800_khz.html2
-rw-r--r--docs/3.1/class_u_c_s1903.html2
-rw-r--r--docs/3.1/class_u_c_s1903_b.html2
-rw-r--r--docs/3.1/class_u_c_s1903_b_controller800_khz.html2
-rw-r--r--docs/3.1/class_u_c_s1903_controller400_khz.html2
-rw-r--r--docs/3.1/class_u_c_s1904.html2
-rw-r--r--docs/3.1/class_u_c_s1904_controller800_khz.html2
-rw-r--r--docs/3.1/class_w_s2801_controller-members.html2
-rw-r--r--docs/3.1/class_w_s2801_controller.html2
-rw-r--r--docs/3.1/class_w_s2803_controller-members.html2
-rw-r--r--docs/3.1/class_w_s2803_controller.html2
-rw-r--r--docs/3.1/class_w_s2811.html2
-rw-r--r--docs/3.1/class_w_s2811__400.html2
-rw-r--r--docs/3.1/class_w_s2811_controller400_khz.html2
-rw-r--r--docs/3.1/class_w_s2811_controller800_khz.html2
-rw-r--r--docs/3.1/class_w_s2812.html2
-rw-r--r--docs/3.1/class_w_s2812_b.html2
-rw-r--r--docs/3.1/class_w_s2812_controller800_khz.html2
-rw-r--r--docs/3.1/classes.html2
-rw-r--r--docs/3.1/classq-members.html2
-rw-r--r--docs/3.1/classq.html2
-rw-r--r--docs/3.1/color_8h_source.html2
-rw-r--r--docs/3.1/colorpalettes_8h_source.html2
-rw-r--r--docs/3.1/colorutils_8h_source.html2
-rw-r--r--docs/3.1/controller_8h_source.html2
-rw-r--r--docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html2
-rw-r--r--docs/3.1/dmx_8h_source.html2
-rw-r--r--docs/3.1/fastled__config_8h_source.html2
-rw-r--r--docs/3.1/fastled__delay_8h_source.html2
-rw-r--r--docs/3.1/fastled__progmem_8h_source.html2
-rw-r--r--docs/3.1/fastpin_8h_source.html2
-rw-r--r--docs/3.1/fastspi_8h_source.html2
-rw-r--r--docs/3.1/fastspi__bitbang_8h_source.html2
-rw-r--r--docs/3.1/fastspi__dma_8h_source.html2
-rw-r--r--docs/3.1/fastspi__nop_8h_source.html2
-rw-r--r--docs/3.1/fastspi__ref_8h_source.html2
-rw-r--r--docs/3.1/fastspi__types_8h_source.html2
-rw-r--r--docs/3.1/files.html2
-rw-r--r--docs/3.1/functions.html2
-rw-r--r--docs/3.1/functions_func.html2
-rw-r--r--docs/3.1/globals.html2
-rw-r--r--docs/3.1/globals_func.html2
-rw-r--r--docs/3.1/graph_legend.html2
-rw-r--r--docs/3.1/group___bitswap.html2
-rw-r--r--docs/3.1/group___color_enums.html2
-rw-r--r--docs/3.1/group___colorpalletes.html2
-rw-r--r--docs/3.1/group___colorutils.html2
-rw-r--r--docs/3.1/group___dimming.html2
-rw-r--r--docs/3.1/group___math.html2
-rw-r--r--docs/3.1/group___noise.html2
-rw-r--r--docs/3.1/group___random.html2
-rw-r--r--docs/3.1/group___scaling.html2
-rw-r--r--docs/3.1/group___trig.html191
-rw-r--r--docs/3.1/group__lib8tion.html570
-rw-r--r--docs/3.1/hierarchy.html2
-rw-r--r--docs/3.1/hsv2rgb_8h_source.html2
-rw-r--r--docs/3.1/index.html2
-rw-r--r--docs/3.1/inherits.html2
-rw-r--r--docs/3.1/led__sysdefs_8h_source.html2
-rw-r--r--docs/3.1/lib8tion_8h_source.html1245
-rw-r--r--docs/3.1/math8_8h_source.html2
-rw-r--r--docs/3.1/md__m0-clocklessnotes.html2
-rw-r--r--docs/3.1/md__p_o_r_t_i_n_g.html2
-rw-r--r--docs/3.1/md__r_e_a_d_m_e.html2
-rw-r--r--docs/3.1/md__t_o_d_o.html2
-rw-r--r--docs/3.1/md_release_notes.html2
-rw-r--r--docs/3.1/modules.html2
-rw-r--r--docs/3.1/noise_8h.html2
-rw-r--r--docs/3.1/noise_8h_source.html4
-rw-r--r--docs/3.1/pages.html2
-rw-r--r--docs/3.1/pixeltypes_8h_source.html16
-rw-r--r--docs/3.1/platforms_8h_source.html2
-rw-r--r--docs/3.1/power__mgt_8h_source.html2
-rw-r--r--docs/3.1/random8_8h_source.html2
-rw-r--r--docs/3.1/scale8_8h_source.html2
-rw-r--r--docs/3.1/search/all_10.js3
-rw-r--r--docs/3.1/search/all_12.js7
-rw-r--r--docs/3.1/search/all_13.js1
-rw-r--r--docs/3.1/search/all_2.js7
-rw-r--r--docs/3.1/search/all_3.js5
-rw-r--r--docs/3.1/search/all_4.js1
-rw-r--r--docs/3.1/search/all_5.js3
-rw-r--r--docs/3.1/search/all_6.js1
-rw-r--r--docs/3.1/search/all_8.js3
-rw-r--r--docs/3.1/search/all_b.js5
-rw-r--r--docs/3.1/search/all_c.js2
-rw-r--r--docs/3.1/search/functions_11.js7
-rw-r--r--docs/3.1/search/functions_2.js9
-rw-r--r--docs/3.1/search/functions_3.js5
-rw-r--r--docs/3.1/search/functions_4.js3
-rw-r--r--docs/3.1/search/functions_5.js3
-rw-r--r--docs/3.1/search/functions_6.js3
-rw-r--r--docs/3.1/search/functions_8.js3
-rw-r--r--docs/3.1/search/functions_a.js7
-rw-r--r--docs/3.1/search/functions_b.js2
-rw-r--r--docs/3.1/search/functions_f.js3
-rw-r--r--docs/3.1/search/searchdata.js2
-rw-r--r--docs/3.1/struct_c_h_s_v-members.html2
-rw-r--r--docs/3.1/struct_c_h_s_v.html2
-rw-r--r--docs/3.1/struct_c_r_g_b-members.html2
-rw-r--r--docs/3.1/struct_c_r_g_b.html2
-rw-r--r--docs/3.1/struct_multi_pixel_controller-members.html2
-rw-r--r--docs/3.1/struct_multi_pixel_controller.html2
-rw-r--r--docs/3.1/struct_pixel_controller-members.html2
-rw-r--r--docs/3.1/struct_pixel_controller.html2
-rw-r--r--docs/3.1/structsub4-members.html2
-rw-r--r--docs/3.1/structsub4.html2
-rw-r--r--docs/3.1/todo.html2
-rw-r--r--docs/3.1/trig8_8h_source.html402
-rw-r--r--docs/3.1/union_i_e_e_e754binary32__t-members.html2
-rw-r--r--docs/3.1/union_i_e_e_e754binary32__t.html2
-rw-r--r--docs/3.1/union_t_r_g_b_gradient_palette_entry_union-members.html2
-rw-r--r--docs/3.1/union_t_r_g_b_gradient_palette_entry_union.html2
-rw-r--r--docs/3.1/unionbitswap__type-members.html2
-rw-r--r--docs/3.1/unionbitswap__type.html2
-rw-r--r--docs/3.1/unionjust8bits-members.html2
-rw-r--r--docs/3.1/unionjust8bits.html2
-rw-r--r--docs/3.1/uniont_bytes_for_long-members.html2
-rw-r--r--docs/3.1/uniont_bytes_for_long.html2
198 files changed, 1750 insertions, 1103 deletions
diff --git a/docs/3.1/_fast_l_e_d_8h_source.html b/docs/3.1/_fast_l_e_d_8h_source.html
index 9ef6f536..75b74c77 100644
--- a/docs/3.1/_fast_l_e_d_8h_source.html
+++ b/docs/3.1/_fast_l_e_d_8h_source.html
@@ -509,7 +509,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/_fast_s_p_i___l_e_d2_8h_source.html b/docs/3.1/_fast_s_p_i___l_e_d2_8h_source.html
index 73794e92..dda85b35 100644
--- a/docs/3.1/_fast_s_p_i___l_e_d2_8h_source.html
+++ b/docs/3.1/_fast_s_p_i___l_e_d2_8h_source.html
@@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/annotated.html b/docs/3.1/annotated.html
index 957093f1..e8f280a9 100644
--- a/docs/3.1/annotated.html
+++ b/docs/3.1/annotated.html
@@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/bitswap_8h.html b/docs/3.1/bitswap_8h.html
index aed1702d..60a9879e 100644
--- a/docs/3.1/bitswap_8h.html
+++ b/docs/3.1/bitswap_8h.html
@@ -120,7 +120,7 @@ Functions</h2></td></tr>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/bitswap_8h_source.html b/docs/3.1/bitswap_8h_source.html
index e863eebd..36741770 100644
--- a/docs/3.1/bitswap_8h_source.html
+++ b/docs/3.1/bitswap_8h_source.html
@@ -351,7 +351,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/chipsets_8h_source.html b/docs/3.1/chipsets_8h_source.html
index abb76e38..ea84bf0e 100644
--- a/docs/3.1/chipsets_8h_source.html
+++ b/docs/3.1/chipsets_8h_source.html
@@ -642,7 +642,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_a_p_a102_controller-members.html b/docs/3.1/class_a_p_a102_controller-members.html
index d650f4d7..80917419 100644
--- a/docs/3.1/class_a_p_a102_controller-members.html
+++ b/docs/3.1/class_a_p_a102_controller-members.html
@@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_a_p_a102_controller.html b/docs/3.1/class_a_p_a102_controller.html
index 222801b2..1835538a 100644
--- a/docs/3.1/class_a_p_a102_controller.html
+++ b/docs/3.1/class_a_p_a102_controller.html
@@ -444,7 +444,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = BGR, uint8_t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_a_p_a104.html b/docs/3.1/class_a_p_a104.html
index 1794a3fb..bb0f989f 100644
--- a/docs/3.1/class_a_p_a104.html
+++ b/docs/3.1/class_a_p_a104.html
@@ -109,7 +109,7 @@ Collaboration diagram for APA104&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_a_v_r_software_s_p_i_output-members.html b/docs/3.1/class_a_v_r_software_s_p_i_output-members.html
index 1706b292..40f04554 100644
--- a/docs/3.1/class_a_v_r_software_s_p_i_output-members.html
+++ b/docs/3.1/class_a_v_r_software_s_p_i_output-members.html
@@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_a_v_r_software_s_p_i_output.html b/docs/3.1/class_a_v_r_software_s_p_i_output.html
index 2b06204d..9b187f21 100644
--- a/docs/3.1/class_a_v_r_software_s_p_i_output.html
+++ b/docs/3.1/class_a_v_r_software_s_p_i_output.html
@@ -140,7 +140,7 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_every_n_time_periods-members.html b/docs/3.1/class_c_every_n_time_periods-members.html
index e6744b0f..6c3bae1d 100644
--- a/docs/3.1/class_c_every_n_time_periods-members.html
+++ b/docs/3.1/class_c_every_n_time_periods-members.html
@@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_every_n_time_periods.html b/docs/3.1/class_c_every_n_time_periods.html
index fb7da374..ac7d39b5 100644
--- a/docs/3.1/class_c_every_n_time_periods.html
+++ b/docs/3.1/class_c_every_n_time_periods.html
@@ -145,7 +145,7 @@ timeType&#160;</td><td class="memItemRight" valign="bottom"><b>mPeriod</b></td><
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_fast_l_e_d-members.html b/docs/3.1/class_c_fast_l_e_d-members.html
index 0b35c486..783f2297 100644
--- a/docs/3.1/class_c_fast_l_e_d-members.html
+++ b/docs/3.1/class_c_fast_l_e_d-members.html
@@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_fast_l_e_d.html b/docs/3.1/class_c_fast_l_e_d.html
index 710fb2d1..86f15f31 100644
--- a/docs/3.1/class_c_fast_l_e_d.html
+++ b/docs/3.1/class_c_fast_l_e_d.html
@@ -1009,7 +1009,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_h_s_v_palette16-members.html b/docs/3.1/class_c_h_s_v_palette16-members.html
index 7525e6d5..e3f44df0 100644
--- a/docs/3.1/class_c_h_s_v_palette16-members.html
+++ b/docs/3.1/class_c_h_s_v_palette16-members.html
@@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_h_s_v_palette16.html b/docs/3.1/class_c_h_s_v_palette16.html
index 4f2cad4c..7b0901b4 100644
--- a/docs/3.1/class_c_h_s_v_palette16.html
+++ b/docs/3.1/class_c_h_s_v_palette16.html
@@ -158,7 +158,7 @@ Public Attributes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_h_s_v_palette256-members.html b/docs/3.1/class_c_h_s_v_palette256-members.html
index dc3fed75..3a648d75 100644
--- a/docs/3.1/class_c_h_s_v_palette256-members.html
+++ b/docs/3.1/class_c_h_s_v_palette256-members.html
@@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_h_s_v_palette256.html b/docs/3.1/class_c_h_s_v_palette256.html
index 61b8093a..89d51d22 100644
--- a/docs/3.1/class_c_h_s_v_palette256.html
+++ b/docs/3.1/class_c_h_s_v_palette256.html
@@ -164,7 +164,7 @@ Public Attributes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_l_e_d_controller-members.html b/docs/3.1/class_c_l_e_d_controller-members.html
index f5fe3bf1..b31c09a1 100644
--- a/docs/3.1/class_c_l_e_d_controller-members.html
+++ b/docs/3.1/class_c_l_e_d_controller-members.html
@@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_l_e_d_controller.html b/docs/3.1/class_c_l_e_d_controller.html
index 8aa77013..a1244064 100644
--- a/docs/3.1/class_c_l_e_d_controller.html
+++ b/docs/3.1/class_c_l_e_d_controller.html
@@ -384,7 +384,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>CFastLED</b></td></t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_min_wait-members.html b/docs/3.1/class_c_min_wait-members.html
index 07646b36..e9869e51 100644
--- a/docs/3.1/class_c_min_wait-members.html
+++ b/docs/3.1/class_c_min_wait-members.html
@@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_min_wait.html b/docs/3.1/class_c_min_wait.html
index 6830106d..12dcbaec 100644
--- a/docs/3.1/class_c_min_wait.html
+++ b/docs/3.1/class_c_min_wait.html
@@ -118,7 +118,7 @@ class CMinWait&lt; WAIT &gt;</h3>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_r_g_b_palette16-members.html b/docs/3.1/class_c_r_g_b_palette16-members.html
index f547b003..8e50fdce 100644
--- a/docs/3.1/class_c_r_g_b_palette16-members.html
+++ b/docs/3.1/class_c_r_g_b_palette16-members.html
@@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_r_g_b_palette16.html b/docs/3.1/class_c_r_g_b_palette16.html
index e8682a15..00b2d7aa 100644
--- a/docs/3.1/class_c_r_g_b_palette16.html
+++ b/docs/3.1/class_c_r_g_b_palette16.html
@@ -185,7 +185,7 @@ Public Attributes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_r_g_b_palette256-members.html b/docs/3.1/class_c_r_g_b_palette256-members.html
index 138ae92d..80d7e8c7 100644
--- a/docs/3.1/class_c_r_g_b_palette256-members.html
+++ b/docs/3.1/class_c_r_g_b_palette256-members.html
@@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_r_g_b_palette256.html b/docs/3.1/class_c_r_g_b_palette256.html
index ff1a20cb..117f29e6 100644
--- a/docs/3.1/class_c_r_g_b_palette256.html
+++ b/docs/3.1/class_c_r_g_b_palette256.html
@@ -191,7 +191,7 @@ Public Attributes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_a_t_a___n_o_p-members.html b/docs/3.1/class_d_a_t_a___n_o_p-members.html
index d3ca28e9..bb78af35 100644
--- a/docs/3.1/class_d_a_t_a___n_o_p-members.html
+++ b/docs/3.1/class_d_a_t_a___n_o_p-members.html
@@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_a_t_a___n_o_p.html b/docs/3.1/class_d_a_t_a___n_o_p.html
index 45eccd68..3cd6af44 100644
--- a/docs/3.1/class_d_a_t_a___n_o_p.html
+++ b/docs/3.1/class_d_a_t_a___n_o_p.html
@@ -127,7 +127,7 @@ static register uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>sc
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html b/docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html
index 112e33e3..506c7ebf 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l.html b/docs/3.1/class_d_m_x_s_e_r_i_a_l.html
index 548f8ac5..10f3d2a8 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l.html
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l.html
@@ -255,7 +255,7 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html b/docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html
index 4b292aa7..c5bfb5c2 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e.html b/docs/3.1/class_d_m_x_s_i_m_p_l_e.html
index 278dd2e5..f7e921a0 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e.html
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e.html
@@ -256,7 +256,7 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_serial_controller-members.html b/docs/3.1/class_d_m_x_serial_controller-members.html
index 811a74b6..74508a54 100644
--- a/docs/3.1/class_d_m_x_serial_controller-members.html
+++ b/docs/3.1/class_d_m_x_serial_controller-members.html
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_serial_controller.html b/docs/3.1/class_d_m_x_serial_controller.html
index 8ffbfe05..2a5b3a50 100644
--- a/docs/3.1/class_d_m_x_serial_controller.html
+++ b/docs/3.1/class_d_m_x_serial_controller.html
@@ -367,7 +367,7 @@ template&lt;EOrder RGB_ORDER = RGB&gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_simple_controller-members.html b/docs/3.1/class_d_m_x_simple_controller-members.html
index f930ddf6..c5ccf65f 100644
--- a/docs/3.1/class_d_m_x_simple_controller-members.html
+++ b/docs/3.1/class_d_m_x_simple_controller-members.html
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_simple_controller.html b/docs/3.1/class_d_m_x_simple_controller.html
index 377f103b..d955044b 100644
--- a/docs/3.1/class_d_m_x_simple_controller.html
+++ b/docs/3.1/class_d_m_x_simple_controller.html
@@ -371,7 +371,7 @@ template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_fast_pin-members.html b/docs/3.1/class_fast_pin-members.html
index c7584c5e..69caa83e 100644
--- a/docs/3.1/class_fast_pin-members.html
+++ b/docs/3.1/class_fast_pin-members.html
@@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_fast_pin.html b/docs/3.1/class_fast_pin.html
index 89d4ac42..f42da787 100644
--- a/docs/3.1/class_fast_pin.html
+++ b/docs/3.1/class_fast_pin.html
@@ -175,7 +175,7 @@ class FastPin&lt; PIN &gt;</h3>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_fast_pin_b_b-members.html b/docs/3.1/class_fast_pin_b_b-members.html
index 5ed088ce..3b56db27 100644
--- a/docs/3.1/class_fast_pin_b_b-members.html
+++ b/docs/3.1/class_fast_pin_b_b-members.html
@@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_fast_pin_b_b.html b/docs/3.1/class_fast_pin_b_b.html
index 2e32fda9..0a8ab4e4 100644
--- a/docs/3.1/class_fast_pin_b_b.html
+++ b/docs/3.1/class_fast_pin_b_b.html
@@ -165,7 +165,7 @@ static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> ()
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_g_w6205.html b/docs/3.1/class_g_w6205.html
index c1024c60..fb3dd5d3 100644
--- a/docs/3.1/class_g_w6205.html
+++ b/docs/3.1/class_g_w6205.html
@@ -109,7 +109,7 @@ Collaboration diagram for GW6205&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_g_w6205__400.html b/docs/3.1/class_g_w6205__400.html
index a007443f..4365228f 100644
--- a/docs/3.1/class_g_w6205__400.html
+++ b/docs/3.1/class_g_w6205__400.html
@@ -109,7 +109,7 @@ Collaboration diagram for GW6205_400&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_g_w6205_controller400_khz.html b/docs/3.1/class_g_w6205_controller400_khz.html
index 980a93b2..4e143838 100644
--- a/docs/3.1/class_g_w6205_controller400_khz.html
+++ b/docs/3.1/class_g_w6205_controller400_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for GW6205Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_g_w6205_controller800_khz.html b/docs/3.1/class_g_w6205_controller800_khz.html
index 85ad11b9..b8a646df 100644
--- a/docs/3.1/class_g_w6205_controller800_khz.html
+++ b/docs/3.1/class_g_w6205_controller800_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for GW6205Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_input_pin-members.html b/docs/3.1/class_input_pin-members.html
index 4166f6c1..c14e12c3 100644
--- a/docs/3.1/class_input_pin-members.html
+++ b/docs/3.1/class_input_pin-members.html
@@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_input_pin.html b/docs/3.1/class_input_pin.html
index 0bed79a7..1a121e40 100644
--- a/docs/3.1/class_input_pin.html
+++ b/docs/3.1/class_input_pin.html
@@ -250,7 +250,7 @@ typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_l_p_d1886.html b/docs/3.1/class_l_p_d1886.html
index 8611393d..d69b4df2 100644
--- a/docs/3.1/class_l_p_d1886.html
+++ b/docs/3.1/class_l_p_d1886.html
@@ -109,7 +109,7 @@ Collaboration diagram for LPD1886&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_l_p_d1886_controller1250_khz.html b/docs/3.1/class_l_p_d1886_controller1250_khz.html
index 4b0a62a5..4cca31d0 100644
--- a/docs/3.1/class_l_p_d1886_controller1250_khz.html
+++ b/docs/3.1/class_l_p_d1886_controller1250_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for LPD1886Controller1250Khz&lt; DATA_PIN, RGB_ORDER &gt;:
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_l_p_d8806_controller-members.html b/docs/3.1/class_l_p_d8806_controller-members.html
index 03969369..b665313b 100644
--- a/docs/3.1/class_l_p_d8806_controller-members.html
+++ b/docs/3.1/class_l_p_d8806_controller-members.html
@@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_l_p_d8806_controller.html b/docs/3.1/class_l_p_d8806_controller.html
index c3b7a2a5..371bbb20 100644
--- a/docs/3.1/class_l_p_d8806_controller.html
+++ b/docs/3.1/class_l_p_d8806_controller.html
@@ -391,7 +391,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_n_e_o_p_i_x_e_l.html b/docs/3.1/class_n_e_o_p_i_x_e_l.html
index be24fdb7..5e2eac7b 100644
--- a/docs/3.1/class_n_e_o_p_i_x_e_l.html
+++ b/docs/3.1/class_n_e_o_p_i_x_e_l.html
@@ -109,7 +109,7 @@ Collaboration diagram for NEOPIXEL&lt; DATA_PIN &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_output_pin-members.html b/docs/3.1/class_output_pin-members.html
index bbbad443..9275396f 100644
--- a/docs/3.1/class_output_pin-members.html
+++ b/docs/3.1/class_output_pin-members.html
@@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_output_pin.html b/docs/3.1/class_output_pin.html
index 21e3855c..82377682 100644
--- a/docs/3.1/class_output_pin.html
+++ b/docs/3.1/class_output_pin.html
@@ -250,7 +250,7 @@ typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_p9813_controller-members.html b/docs/3.1/class_p9813_controller-members.html
index 09e37839..da955c7d 100644
--- a/docs/3.1/class_p9813_controller-members.html
+++ b/docs/3.1/class_p9813_controller-members.html
@@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_p9813_controller.html b/docs/3.1/class_p9813_controller.html
index 81254c26..987cc7e9 100644
--- a/docs/3.1/class_p9813_controller.html
+++ b/docs/3.1/class_p9813_controller.html
@@ -444,7 +444,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_pin-members.html b/docs/3.1/class_pin-members.html
index a609227e..b194b112 100644
--- a/docs/3.1/class_pin-members.html
+++ b/docs/3.1/class_pin-members.html
@@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_pin.html b/docs/3.1/class_pin.html
index b354cf6a..f20edc9d 100644
--- a/docs/3.1/class_pin.html
+++ b/docs/3.1/class_pin.html
@@ -243,7 +243,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>isSelected</b
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_m16716_controller-members.html b/docs/3.1/class_s_m16716_controller-members.html
index fe5c8c33..c01bf699 100644
--- a/docs/3.1/class_s_m16716_controller-members.html
+++ b/docs/3.1/class_s_m16716_controller-members.html
@@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_m16716_controller.html b/docs/3.1/class_s_m16716_controller.html
index 236e095e..fe3d82f4 100644
--- a/docs/3.1/class_s_m16716_controller.html
+++ b/docs/3.1/class_s_m16716_controller.html
@@ -386,7 +386,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output-members.html b/docs/3.1/class_s_p_i_output-members.html
index 65dccb25..643c8c6f 100644
--- a/docs/3.1/class_s_p_i_output-members.html
+++ b/docs/3.1/class_s_p_i_output-members.html
@@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output.html b/docs/3.1/class_s_p_i_output.html
index d664917c..0618e773 100644
--- a/docs/3.1/class_s_p_i_output.html
+++ b/docs/3.1/class_s_p_i_output.html
@@ -150,7 +150,7 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index edbcaf8b..96e61409 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI2_DATA, SPI2_CLOCK, SPI_SPEED &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index 3c6b20f7..4d521095 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI2_DATA, SPI_CLOCK, SPI_SPEED &gt;:</d
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index 2d950bd5..3a8b42d7 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI_DATA, SPI2_CLOCK, SPI_SPEED &gt;:</d
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index 80d4a800..95c15422 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;:</di
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index 17c6f98d..06f7aaa7 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPE
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index e438bdc3..f15d5974 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPE
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_selectable-members.html b/docs/3.1/class_selectable-members.html
index 664bf7ae..4ddc08c5 100644
--- a/docs/3.1/class_selectable-members.html
+++ b/docs/3.1/class_selectable-members.html
@@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_selectable.html b/docs/3.1/class_selectable.html
index 489716d8..4a7e587a 100644
--- a/docs/3.1/class_selectable.html
+++ b/docs/3.1/class_selectable.html
@@ -118,7 +118,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>isSelected</b
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_software_s_p_i_output-members.html b/docs/3.1/class_software_s_p_i_output-members.html
index 23afc6e0..0445ce48 100644
--- a/docs/3.1/class_software_s_p_i_output-members.html
+++ b/docs/3.1/class_software_s_p_i_output-members.html
@@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_software_s_p_i_output.html b/docs/3.1/class_software_s_p_i_output.html
index cbb36453..b67ca9b5 100644
--- a/docs/3.1/class_software_s_p_i_output.html
+++ b/docs/3.1/class_software_s_p_i_output.html
@@ -150,7 +150,7 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1803.html b/docs/3.1/class_t_m1803.html
index 67a87728..00446964 100644
--- a/docs/3.1/class_t_m1803.html
+++ b/docs/3.1/class_t_m1803.html
@@ -109,7 +109,7 @@ Collaboration diagram for TM1803&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1803_controller400_khz.html b/docs/3.1/class_t_m1803_controller400_khz.html
index cf463044..b97ec84a 100644
--- a/docs/3.1/class_t_m1803_controller400_khz.html
+++ b/docs/3.1/class_t_m1803_controller400_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1804.html b/docs/3.1/class_t_m1804.html
index 1737def5..7da4f9cc 100644
--- a/docs/3.1/class_t_m1804.html
+++ b/docs/3.1/class_t_m1804.html
@@ -109,7 +109,7 @@ Collaboration diagram for TM1804&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1809.html b/docs/3.1/class_t_m1809.html
index ec1c715d..5b863ab5 100644
--- a/docs/3.1/class_t_m1809.html
+++ b/docs/3.1/class_t_m1809.html
@@ -109,7 +109,7 @@ Collaboration diagram for TM1809&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1809_controller800_khz.html b/docs/3.1/class_t_m1809_controller800_khz.html
index 81af4147..345322fa 100644
--- a/docs/3.1/class_t_m1809_controller800_khz.html
+++ b/docs/3.1/class_t_m1809_controller800_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1829.html b/docs/3.1/class_t_m1829.html
index ff6c0143..ee88dc0d 100644
--- a/docs/3.1/class_t_m1829.html
+++ b/docs/3.1/class_t_m1829.html
@@ -109,7 +109,7 @@ Collaboration diagram for TM1829&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1829_controller1600_khz.html b/docs/3.1/class_t_m1829_controller1600_khz.html
index 26fb13d7..5674c32a 100644
--- a/docs/3.1/class_t_m1829_controller1600_khz.html
+++ b/docs/3.1/class_t_m1829_controller1600_khz.html
@@ -105,7 +105,7 @@ Collaboration diagram for TM1829Controller1600Khz&lt; DATA_PIN, RGB_ORDER &gt;:<
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1829_controller800_khz.html b/docs/3.1/class_t_m1829_controller800_khz.html
index 34629380..59008953 100644
--- a/docs/3.1/class_t_m1829_controller800_khz.html
+++ b/docs/3.1/class_t_m1829_controller800_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1903.html b/docs/3.1/class_u_c_s1903.html
index 3b302fd7..53804c95 100644
--- a/docs/3.1/class_u_c_s1903.html
+++ b/docs/3.1/class_u_c_s1903.html
@@ -109,7 +109,7 @@ Collaboration diagram for UCS1903&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1903_b.html b/docs/3.1/class_u_c_s1903_b.html
index e285db51..66f3ddb3 100644
--- a/docs/3.1/class_u_c_s1903_b.html
+++ b/docs/3.1/class_u_c_s1903_b.html
@@ -109,7 +109,7 @@ Collaboration diagram for UCS1903B&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1903_b_controller800_khz.html b/docs/3.1/class_u_c_s1903_b_controller800_khz.html
index 23189ae8..a4a4db71 100644
--- a/docs/3.1/class_u_c_s1903_b_controller800_khz.html
+++ b/docs/3.1/class_u_c_s1903_b_controller800_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt;:
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1903_controller400_khz.html b/docs/3.1/class_u_c_s1903_controller400_khz.html
index 4a3d3aeb..691e7435 100644
--- a/docs/3.1/class_u_c_s1903_controller400_khz.html
+++ b/docs/3.1/class_u_c_s1903_controller400_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;:<
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1904.html b/docs/3.1/class_u_c_s1904.html
index fecf90ff..c4b7d2d5 100644
--- a/docs/3.1/class_u_c_s1904.html
+++ b/docs/3.1/class_u_c_s1904.html
@@ -109,7 +109,7 @@ Collaboration diagram for UCS1904&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1904_controller800_khz.html b/docs/3.1/class_u_c_s1904_controller800_khz.html
index cdffdedf..f351df4e 100644
--- a/docs/3.1/class_u_c_s1904_controller800_khz.html
+++ b/docs/3.1/class_u_c_s1904_controller800_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for UCS1904Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:<
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2801_controller-members.html b/docs/3.1/class_w_s2801_controller-members.html
index fc3575cf..9e160459 100644
--- a/docs/3.1/class_w_s2801_controller-members.html
+++ b/docs/3.1/class_w_s2801_controller-members.html
@@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2801_controller.html b/docs/3.1/class_w_s2801_controller.html
index 9b7e391b..2ccd6b9f 100644
--- a/docs/3.1/class_w_s2801_controller.html
+++ b/docs/3.1/class_w_s2801_controller.html
@@ -444,7 +444,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2803_controller-members.html b/docs/3.1/class_w_s2803_controller-members.html
index 245de91d..48c4bf3a 100644
--- a/docs/3.1/class_w_s2803_controller-members.html
+++ b/docs/3.1/class_w_s2803_controller-members.html
@@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2803_controller.html b/docs/3.1/class_w_s2803_controller.html
index 2d0b00bd..63e2b8b7 100644
--- a/docs/3.1/class_w_s2803_controller.html
+++ b/docs/3.1/class_w_s2803_controller.html
@@ -256,7 +256,7 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2811.html b/docs/3.1/class_w_s2811.html
index e48fb8bf..c4608a5b 100644
--- a/docs/3.1/class_w_s2811.html
+++ b/docs/3.1/class_w_s2811.html
@@ -109,7 +109,7 @@ Collaboration diagram for WS2811&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2811__400.html b/docs/3.1/class_w_s2811__400.html
index cb931c1e..160a5af2 100644
--- a/docs/3.1/class_w_s2811__400.html
+++ b/docs/3.1/class_w_s2811__400.html
@@ -109,7 +109,7 @@ Collaboration diagram for WS2811_400&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2811_controller400_khz.html b/docs/3.1/class_w_s2811_controller400_khz.html
index 373e1101..98889d92 100644
--- a/docs/3.1/class_w_s2811_controller400_khz.html
+++ b/docs/3.1/class_w_s2811_controller400_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2811_controller800_khz.html b/docs/3.1/class_w_s2811_controller800_khz.html
index 6f07f519..6237c6cf 100644
--- a/docs/3.1/class_w_s2811_controller800_khz.html
+++ b/docs/3.1/class_w_s2811_controller800_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2812.html b/docs/3.1/class_w_s2812.html
index 3fb70655..b08fd32f 100644
--- a/docs/3.1/class_w_s2812.html
+++ b/docs/3.1/class_w_s2812.html
@@ -109,7 +109,7 @@ Collaboration diagram for WS2812&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2812_b.html b/docs/3.1/class_w_s2812_b.html
index 50b35beb..b4ea67af 100644
--- a/docs/3.1/class_w_s2812_b.html
+++ b/docs/3.1/class_w_s2812_b.html
@@ -109,7 +109,7 @@ Collaboration diagram for WS2812B&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2812_controller800_khz.html b/docs/3.1/class_w_s2812_controller800_khz.html
index bb4fbca0..13f46b0b 100644
--- a/docs/3.1/class_w_s2812_controller800_khz.html
+++ b/docs/3.1/class_w_s2812_controller800_khz.html
@@ -107,7 +107,7 @@ Collaboration diagram for WS2812Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/classes.html b/docs/3.1/classes.html
index 77fb8029..c3c11440 100644
--- a/docs/3.1/classes.html
+++ b/docs/3.1/classes.html
@@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/classq-members.html b/docs/3.1/classq-members.html
index 1c830467..d3a3be30 100644
--- a/docs/3.1/classq-members.html
+++ b/docs/3.1/classq-members.html
@@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/classq.html b/docs/3.1/classq.html
index a6adf910..a0f87a8f 100644
--- a/docs/3.1/classq.html
+++ b/docs/3.1/classq.html
@@ -123,7 +123,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>operator*</b> (int v)<
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/color_8h_source.html b/docs/3.1/color_8h_source.html
index 715bb61a..4811465d 100644
--- a/docs/3.1/color_8h_source.html
+++ b/docs/3.1/color_8h_source.html
@@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/colorpalettes_8h_source.html b/docs/3.1/colorpalettes_8h_source.html
index 42b87683..dff300c8 100644
--- a/docs/3.1/colorpalettes_8h_source.html
+++ b/docs/3.1/colorpalettes_8h_source.html
@@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/colorutils_8h_source.html b/docs/3.1/colorutils_8h_source.html
index d103de05..271073c4 100644
--- a/docs/3.1/colorutils_8h_source.html
+++ b/docs/3.1/colorutils_8h_source.html
@@ -1229,7 +1229,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/controller_8h_source.html b/docs/3.1/controller_8h_source.html
index 32ca935e..c297d403 100644
--- a/docs/3.1/controller_8h_source.html
+++ b/docs/3.1/controller_8h_source.html
@@ -658,7 +658,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html b/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html
index bb2ea1bd..c9aece30 100644
--- a/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html
+++ b/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html
@@ -107,7 +107,7 @@ Files</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/dmx_8h_source.html b/docs/3.1/dmx_8h_source.html
index 64ad3e19..1a6f9fb0 100644
--- a/docs/3.1/dmx_8h_source.html
+++ b/docs/3.1/dmx_8h_source.html
@@ -212,7 +212,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastled__config_8h_source.html b/docs/3.1/fastled__config_8h_source.html
index 0eb83269..1fc2af11 100644
--- a/docs/3.1/fastled__config_8h_source.html
+++ b/docs/3.1/fastled__config_8h_source.html
@@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastled__delay_8h_source.html b/docs/3.1/fastled__delay_8h_source.html
index cc7bfb9e..a9974200 100644
--- a/docs/3.1/fastled__delay_8h_source.html
+++ b/docs/3.1/fastled__delay_8h_source.html
@@ -206,7 +206,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastled__progmem_8h_source.html b/docs/3.1/fastled__progmem_8h_source.html
index 17645179..eb0424cd 100644
--- a/docs/3.1/fastled__progmem_8h_source.html
+++ b/docs/3.1/fastled__progmem_8h_source.html
@@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastpin_8h_source.html b/docs/3.1/fastpin_8h_source.html
index 68fe7afe..b47e3313 100644
--- a/docs/3.1/fastpin_8h_source.html
+++ b/docs/3.1/fastpin_8h_source.html
@@ -280,7 +280,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi_8h_source.html b/docs/3.1/fastspi_8h_source.html
index 9dedf472..7f83ce70 100644
--- a/docs/3.1/fastspi_8h_source.html
+++ b/docs/3.1/fastspi_8h_source.html
@@ -204,7 +204,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi__bitbang_8h_source.html b/docs/3.1/fastspi__bitbang_8h_source.html
index cf5aa009..43af86b4 100644
--- a/docs/3.1/fastspi__bitbang_8h_source.html
+++ b/docs/3.1/fastspi__bitbang_8h_source.html
@@ -446,7 +446,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi__dma_8h_source.html b/docs/3.1/fastspi__dma_8h_source.html
index f588e1e3..3c658638 100644
--- a/docs/3.1/fastspi__dma_8h_source.html
+++ b/docs/3.1/fastspi__dma_8h_source.html
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="fragment"></div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi__nop_8h_source.html b/docs/3.1/fastspi__nop_8h_source.html
index eadfdbd1..b30ebf43 100644
--- a/docs/3.1/fastspi__nop_8h_source.html
+++ b/docs/3.1/fastspi__nop_8h_source.html
@@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi__ref_8h_source.html b/docs/3.1/fastspi__ref_8h_source.html
index 9740a5de..cc38fbed 100644
--- a/docs/3.1/fastspi__ref_8h_source.html
+++ b/docs/3.1/fastspi__ref_8h_source.html
@@ -195,7 +195,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi__types_8h_source.html b/docs/3.1/fastspi__types_8h_source.html
index 52136e68..89ad6873 100644
--- a/docs/3.1/fastspi__types_8h_source.html
+++ b/docs/3.1/fastspi__types_8h_source.html
@@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/files.html b/docs/3.1/files.html
index c8103c3c..48423dc0 100644
--- a/docs/3.1/files.html
+++ b/docs/3.1/files.html
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/functions.html b/docs/3.1/functions.html
index b23c3ef5..f16e0e03 100644
--- a/docs/3.1/functions.html
+++ b/docs/3.1/functions.html
@@ -301,7 +301,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/functions_func.html b/docs/3.1/functions_func.html
index e5e6d77b..e0303c89 100644
--- a/docs/3.1/functions_func.html
+++ b/docs/3.1/functions_func.html
@@ -301,7 +301,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/globals.html b/docs/3.1/globals.html
index 13effa3f..b47ff40c 100644
--- a/docs/3.1/globals.html
+++ b/docs/3.1/globals.html
@@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/globals_func.html b/docs/3.1/globals_func.html
index 9ed8ac55..e65c088f 100644
--- a/docs/3.1/globals_func.html
+++ b/docs/3.1/globals_func.html
@@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/graph_legend.html b/docs/3.1/graph_legend.html
index 79da5e74..bea67f69 100644
--- a/docs/3.1/graph_legend.html
+++ b/docs/3.1/graph_legend.html
@@ -147,7 +147,7 @@ A yellow dashed arrow denotes a relation between a template instance and the tem
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___bitswap.html b/docs/3.1/group___bitswap.html
index d0d3bf45..d43c4e64 100644
--- a/docs/3.1/group___bitswap.html
+++ b/docs/3.1/group___bitswap.html
@@ -112,7 +112,7 @@ Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___color_enums.html b/docs/3.1/group___color_enums.html
index 3e7c9d11..aa932643 100644
--- a/docs/3.1/group___color_enums.html
+++ b/docs/3.1/group___color_enums.html
@@ -198,7 +198,7 @@ Enumerations</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___colorpalletes.html b/docs/3.1/group___colorpalletes.html
index 5d414c96..165bd5e0 100644
--- a/docs/3.1/group___colorpalletes.html
+++ b/docs/3.1/group___colorpalletes.html
@@ -177,7 +177,7 @@ Variables</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___colorutils.html b/docs/3.1/group___colorutils.html
index 46647148..09483860 100644
--- a/docs/3.1/group___colorutils.html
+++ b/docs/3.1/group___colorutils.html
@@ -366,7 +366,7 @@ template&lt;typename T &gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___dimming.html b/docs/3.1/group___dimming.html
index 840cea88..6410d73e 100644
--- a/docs/3.1/group___dimming.html
+++ b/docs/3.1/group___dimming.html
@@ -121,7 +121,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___math.html b/docs/3.1/group___math.html
index 27d15cd7..3e04045b 100644
--- a/docs/3.1/group___math.html
+++ b/docs/3.1/group___math.html
@@ -418,7 +418,7 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___noise.html b/docs/3.1/group___noise.html
index 4969ec6f..a41a11c5 100644
--- a/docs/3.1/group___noise.html
+++ b/docs/3.1/group___noise.html
@@ -237,7 +237,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise16</b> (<
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___random.html b/docs/3.1/group___random.html
index 5322288a..32c08cf9 100644
--- a/docs/3.1/group___random.html
+++ b/docs/3.1/group___random.html
@@ -263,7 +263,7 @@ uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___scaling.html b/docs/3.1/group___scaling.html
index 5fa4e8bf..e99af6f9 100644
--- a/docs/3.1/group___scaling.html
+++ b/docs/3.1/group___scaling.html
@@ -497,7 +497,7 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___trig.html b/docs/3.1/group___trig.html
index 6e331722..7a65634a 100644
--- a/docs/3.1/group___trig.html
+++ b/docs/3.1/group___trig.html
@@ -77,6 +77,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div>
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">Fast trig functions<div class="ingroups"><a class="el" href="group__lib8tion.html">Fast math functions</a></div></div> </div>
</div><!--header-->
@@ -92,13 +95,199 @@ Collaboration diagram for Fast trig functions:</div>
<area shape="rect" id="node2" href="group__lib8tion.html" title="A variety of functions for working with numbers. " alt="" coords="5,5,144,32"/></map>
</td></tr></table></center>
</div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga660ff60bfc5116525e50187de72009fc"><td class="memItemLeft" align="right" valign="top">LIB8STATIC int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga660ff60bfc5116525e50187de72009fc">sin16_avr</a> (uint16_t theta)</td></tr>
+<tr class="memdesc:ga660ff60bfc5116525e50187de72009fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast 16-bit approximation of sin(x). <a href="#ga660ff60bfc5116525e50187de72009fc">More...</a><br /></td></tr>
+<tr class="separator:ga660ff60bfc5116525e50187de72009fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0890962cb06b267617f4b06d7e9be5eb"><td class="memItemLeft" align="right" valign="top">LIB8STATIC int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga0890962cb06b267617f4b06d7e9be5eb">sin16_C</a> (uint16_t theta)</td></tr>
+<tr class="memdesc:ga0890962cb06b267617f4b06d7e9be5eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast 16-bit approximation of sin(x). <a href="#ga0890962cb06b267617f4b06d7e9be5eb">More...</a><br /></td></tr>
+<tr class="separator:ga0890962cb06b267617f4b06d7e9be5eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga056952ebed39f55880bb353857b47075"><td class="memItemLeft" align="right" valign="top">LIB8STATIC int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga056952ebed39f55880bb353857b47075">cos16</a> (uint16_t theta)</td></tr>
+<tr class="memdesc:ga056952ebed39f55880bb353857b47075"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast 16-bit approximation of cos(x). <a href="#ga056952ebed39f55880bb353857b47075">More...</a><br /></td></tr>
+<tr class="separator:ga056952ebed39f55880bb353857b47075"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6aa1f993cbbc427d80da1ee2ccca86e7"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga6aa1f993cbbc427d80da1ee2ccca86e7">sin8_avr</a> (uint8_t theta)</td></tr>
+<tr class="memdesc:ga6aa1f993cbbc427d80da1ee2ccca86e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast 8-bit approximation of sin(x). <a href="#ga6aa1f993cbbc427d80da1ee2ccca86e7">More...</a><br /></td></tr>
+<tr class="separator:ga6aa1f993cbbc427d80da1ee2ccca86e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga46933a9b42921c6605588268d11f7c1e"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga46933a9b42921c6605588268d11f7c1e">sin8_C</a> (uint8_t theta)</td></tr>
+<tr class="memdesc:ga46933a9b42921c6605588268d11f7c1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast 8-bit approximation of sin(x). <a href="#ga46933a9b42921c6605588268d11f7c1e">More...</a><br /></td></tr>
+<tr class="separator:ga46933a9b42921c6605588268d11f7c1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4432f985c94f5bff715db402d767b0e8"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga4432f985c94f5bff715db402d767b0e8">cos8</a> (uint8_t theta)</td></tr>
+<tr class="memdesc:ga4432f985c94f5bff715db402d767b0e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast 8-bit approximation of cos(x). <a href="#ga4432f985c94f5bff715db402d767b0e8">More...</a><br /></td></tr>
+<tr class="separator:ga4432f985c94f5bff715db402d767b0e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:gadc654138105ff193df0fbc7a0c21806c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadc654138105ff193df0fbc7a0c21806c"></a>
+const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>b_m16_interleave</b> [] = { 0, 49, 49, 41, 90, 27, 117, 10 }</td></tr>
+<tr class="separator:gadc654138105ff193df0fbc7a0c21806c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Fast 8 and 16-bit approximations of sin(x) and cos(x). </p>
<p>Don't use these approximations for calculating the trajectory of a rocket to Mars, but they're great for art projects and LED displays.</p>
<p>On Arduino/AVR, the 16-bit approximation is more than 10X faster than floating point sin(x) and cos(x), while the 8-bit approximation is more than 20X faster. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga056952ebed39f55880bb353857b47075"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC int16_t cos16 </td>
+ <td>(</td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>theta</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Fast 16-bit approximation of cos(x). </p>
+<p>This approximation never varies more than 0.69% from the floating point value you'd get by doing </p><pre class="fragment">float s = cos(x) * 32767.0;
+</pre><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">theta</td><td>input angle from 0-65535 </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between -32767 to 32767. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4432f985c94f5bff715db402d767b0e8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint8_t cos8 </td>
+ <td>(</td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>theta</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Fast 8-bit approximation of cos(x). </p>
+<p>This approximation never varies more than 2% from the floating point value you'd get by doing </p><pre class="fragment">float s = (cos(x) * 128.0) + 128;
+</pre><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">theta</td><td>input angle from 0-255 </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between 0 and 255 </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga660ff60bfc5116525e50187de72009fc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC int16_t sin16_avr </td>
+ <td>(</td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>theta</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Fast 16-bit approximation of sin(x). </p>
+<p>This approximation never varies more than 0.69% from the floating point value you'd get by doing </p><pre class="fragment">float s = sin(x) * 32767.0;
+</pre><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">theta</td><td>input angle from 0-65535 </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between -32767 to 32767. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0890962cb06b267617f4b06d7e9be5eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC int16_t sin16_C </td>
+ <td>(</td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>theta</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Fast 16-bit approximation of sin(x). </p>
+<p>This approximation never varies more than 0.69% from the floating point value you'd get by doing </p><pre class="fragment">float s = sin(x) * 32767.0;
+</pre><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">theta</td><td>input angle from 0-65535 </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between -32767 to 32767. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6aa1f993cbbc427d80da1ee2ccca86e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint8_t sin8_avr </td>
+ <td>(</td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>theta</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Fast 8-bit approximation of sin(x). </p>
+<p>This approximation never varies more than 2% from the floating point value you'd get by doing </p><pre class="fragment">float s = (sin(x) * 128.0) + 128;
+</pre><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">theta</td><td>input angle from 0-255 </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between 0 and 255 </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga46933a9b42921c6605588268d11f7c1e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint8_t sin8_C </td>
+ <td>(</td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>theta</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Fast 8-bit approximation of sin(x). </p>
+<p>This approximation never varies more than 2% from the floating point value you'd get by doing </p><pre class="fragment">float s = (sin(x) * 128.0) + 128;
+</pre><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">theta</td><td>input angle from 0-255 </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between 0 and 255 </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group__lib8tion.html b/docs/3.1/group__lib8tion.html
index f79e620f..61a46697 100644
--- a/docs/3.1/group__lib8tion.html
+++ b/docs/3.1/group__lib8tion.html
@@ -167,28 +167,28 @@ typedef <a class="el" href="classq.html">q</a>&lt; uint16_t, 8, 8 &gt;&#160;</td
typedef <a class="el" href="classq.html">q</a>&lt; uint16_t, 12, 4 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>q124</b></td></tr>
<tr class="separator:ga0f02a1da674754f48c5f89c1610e118c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac973ea2f1107aac96ccc69dc272fbeda"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac973ea2f1107aac96ccc69dc272fbeda"></a>
-typedef <a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>&lt; uint16_t, seconds16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CEveryNSeconds</b></td></tr>
+typedef <a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>&lt; uint16_t, <a class="el" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CEveryNSeconds</b></td></tr>
<tr class="separator:gac973ea2f1107aac96ccc69dc272fbeda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37df965999177c3a84f50eb246dfec3f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga37df965999177c3a84f50eb246dfec3f"></a>
-typedef <a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>&lt; uint16_t, bseconds16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CEveryNBSeconds</b></td></tr>
+typedef <a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>&lt; uint16_t, <a class="el" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CEveryNBSeconds</b></td></tr>
<tr class="separator:ga37df965999177c3a84f50eb246dfec3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac72a56ef110a9763dc3f971d7ba3a7e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac72a56ef110a9763dc3f971d7ba3a7e9"></a>
typedef <a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>&lt; uint32_t, millis &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CEveryNMillis</b></td></tr>
<tr class="separator:gac72a56ef110a9763dc3f971d7ba3a7e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga567d6f1ff78e14a266d5ec93fc53429e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga567d6f1ff78e14a266d5ec93fc53429e"></a>
-typedef <a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>&lt; uint16_t, minutes16 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CEveryNMinutes</b></td></tr>
+typedef <a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>&lt; uint16_t, <a class="el" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CEveryNMinutes</b></td></tr>
<tr class="separator:ga567d6f1ff78e14a266d5ec93fc53429e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga877ab0f5d7cbb2f18e85348adcf1eb52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga877ab0f5d7cbb2f18e85348adcf1eb52"></a>
-typedef <a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>&lt; uint8_t, hours8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CEveryNHours</b></td></tr>
+typedef <a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>&lt; uint8_t, <a class="el" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CEveryNHours</b></td></tr>
<tr class="separator:ga877ab0f5d7cbb2f18e85348adcf1eb52"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gab947c1150e3b9056cb91685a14270173"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab947c1150e3b9056cb91685a14270173"></a>
-LIB8STATIC float&#160;</td><td class="memItemRight" valign="bottom"><b>sfract15ToFloat</b> (sfract15 y)</td></tr>
+<tr class="memitem:gab947c1150e3b9056cb91685a14270173"><td class="memItemLeft" align="right" valign="top">LIB8STATIC float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gab947c1150e3b9056cb91685a14270173">sfract15ToFloat</a> (sfract15 y)</td></tr>
+<tr class="memdesc:gab947c1150e3b9056cb91685a14270173"><td class="mdescLeft">&#160;</td><td class="mdescRight">sfract15ToFloat: conversion from sfract15 fixed point to IEEE754 32-bit float. <a href="#gab947c1150e3b9056cb91685a14270173">More...</a><br /></td></tr>
<tr class="separator:gab947c1150e3b9056cb91685a14270173"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa2facbc0ec935e34c629aef43d6262c0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa2facbc0ec935e34c629aef43d6262c0"></a>
-LIB8STATIC sfract15&#160;</td><td class="memItemRight" valign="bottom"><b>floatToSfract15</b> (float f)</td></tr>
+<tr class="memitem:gaa2facbc0ec935e34c629aef43d6262c0"><td class="memItemLeft" align="right" valign="top">LIB8STATIC sfract15&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0">floatToSfract15</a> (float f)</td></tr>
+<tr class="memdesc:gaa2facbc0ec935e34c629aef43d6262c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">conversion from IEEE754 float in the range (-1,1) to 16-bit fixed point. <a href="#gaa2facbc0ec935e34c629aef43d6262c0">More...</a><br /></td></tr>
<tr class="separator:gaa2facbc0ec935e34c629aef43d6262c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga061b2dedbda73b683f7d383543cb2603"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga061b2dedbda73b683f7d383543cb2603"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>memmove8</b> (void *dst, const void *src, uint16_t num)</td></tr>
@@ -200,43 +200,50 @@ void *&#160;</td><td class="memItemRight" valign="bottom"><b>memcpy8</b> (void *
void *&#160;</td><td class="memItemRight" valign="bottom"><b>memset8</b> (void *ptr, uint8_t value, uint16_t num) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((noinline))</td></tr>
<tr class="separator:gac6e333b45df07459ed5b17224d814926"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62ed4425400bc4140902347dc54ffb72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga62ed4425400bc4140902347dc54ffb72"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>lerp8by8</b> (uint8_t a, uint8_t b, fract8 frac)</td></tr>
+LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a> (uint8_t a, uint8_t b, fract8 frac)</td></tr>
+<tr class="memdesc:ga62ed4425400bc4140902347dc54ffb72"><td class="mdescLeft">&#160;</td><td class="mdescRight">linear interpolation between two unsigned 8-bit values, with 8-bit fraction <br /></td></tr>
<tr class="separator:ga62ed4425400bc4140902347dc54ffb72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c02960d0f26e90054c7312e5f9a55b3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7c02960d0f26e90054c7312e5f9a55b3"></a>
-LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>lerp16by16</b> (uint16_t a, uint16_t b, fract16 frac)</td></tr>
+LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a> (uint16_t a, uint16_t b, fract16 frac)</td></tr>
+<tr class="memdesc:ga7c02960d0f26e90054c7312e5f9a55b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">linear interpolation between two unsigned 16-bit values, with 16-bit fraction <br /></td></tr>
<tr class="separator:ga7c02960d0f26e90054c7312e5f9a55b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8c8f06da86c5d7cf13f55c3a5bfdf251"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8c8f06da86c5d7cf13f55c3a5bfdf251"></a>
-LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>lerp16by8</b> (uint16_t a, uint16_t b, fract8 frac)</td></tr>
+LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251">lerp16by8</a> (uint16_t a, uint16_t b, fract8 frac)</td></tr>
+<tr class="memdesc:ga8c8f06da86c5d7cf13f55c3a5bfdf251"><td class="mdescLeft">&#160;</td><td class="mdescRight">linear interpolation between two unsigned 16-bit values, with 8-bit fraction <br /></td></tr>
<tr class="separator:ga8c8f06da86c5d7cf13f55c3a5bfdf251"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaacea0eaea98a065dfa08bb1c147c52a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaacea0eaea98a065dfa08bb1c147c52a1"></a>
-LIB8STATIC int16_t&#160;</td><td class="memItemRight" valign="bottom"><b>lerp15by8</b> (int16_t a, int16_t b, fract8 frac)</td></tr>
+LIB8STATIC int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1">lerp15by8</a> (int16_t a, int16_t b, fract8 frac)</td></tr>
+<tr class="memdesc:gaacea0eaea98a065dfa08bb1c147c52a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">linear interpolation between two signed 15-bit values, with 8-bit fraction <br /></td></tr>
<tr class="separator:gaacea0eaea98a065dfa08bb1c147c52a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4b09aba4e188e14d3e71d1c9f77f1a5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad4b09aba4e188e14d3e71d1c9f77f1a5"></a>
-LIB8STATIC int16_t&#160;</td><td class="memItemRight" valign="bottom"><b>lerp15by16</b> (int16_t a, int16_t b, fract16 frac)</td></tr>
+LIB8STATIC int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5">lerp15by16</a> (int16_t a, int16_t b, fract16 frac)</td></tr>
+<tr class="memdesc:gad4b09aba4e188e14d3e71d1c9f77f1a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">linear interpolation between two signed 15-bit values, with 8-bit fraction <br /></td></tr>
<tr class="separator:gad4b09aba4e188e14d3e71d1c9f77f1a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf65357c7aeca9778e5a2f80a6bac2b5d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf65357c7aeca9778e5a2f80a6bac2b5d"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>map8</b> (uint8_t in, uint8_t rangeStart, uint8_t rangeEnd)</td></tr>
+<tr class="memitem:gaf65357c7aeca9778e5a2f80a6bac2b5d"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d">map8</a> (uint8_t in, uint8_t rangeStart, uint8_t rangeEnd)</td></tr>
+<tr class="memdesc:gaf65357c7aeca9778e5a2f80a6bac2b5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">map8: map from one full-range 8-bit value into a narrower range of 8-bit values, possibly a range of hues. <a href="#gaf65357c7aeca9778e5a2f80a6bac2b5d">More...</a><br /></td></tr>
<tr class="separator:gaf65357c7aeca9778e5a2f80a6bac2b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga381449070b2d6bfba356f87881ab28c0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga381449070b2d6bfba356f87881ab28c0"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>ease8InOutQuad</b> (uint8_t i)</td></tr>
+LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0">ease8InOutQuad</a> (uint8_t i)</td></tr>
+<tr class="memdesc:ga381449070b2d6bfba356f87881ab28c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">ease8InOutQuad: 8-bit quadratic ease-in / ease-out function Takes around 13 cycles on AVR <br /></td></tr>
<tr class="separator:ga381449070b2d6bfba356f87881ab28c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fa6d71702477e71d7c0dd864eb1d568"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3fa6d71702477e71d7c0dd864eb1d568"></a>
-LIB8STATIC fract8&#160;</td><td class="memItemRight" valign="bottom"><b>ease8InOutCubic</b> (fract8 i)</td></tr>
+LIB8STATIC fract8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568">ease8InOutCubic</a> (fract8 i)</td></tr>
+<tr class="memdesc:ga3fa6d71702477e71d7c0dd864eb1d568"><td class="mdescLeft">&#160;</td><td class="mdescRight">ease8InOutCubic: 8-bit cubic ease-in / ease-out function Takes around 18 cycles on AVR <br /></td></tr>
<tr class="separator:ga3fa6d71702477e71d7c0dd864eb1d568"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa041cdbb17f073dbd352fcae6962dc23"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa041cdbb17f073dbd352fcae6962dc23"></a>
-LIB8STATIC fract8&#160;</td><td class="memItemRight" valign="bottom"><b>ease8InOutApprox</b> (fract8 i)</td></tr>
+<tr class="memitem:gaa041cdbb17f073dbd352fcae6962dc23"><td class="memItemLeft" align="right" valign="top">LIB8STATIC fract8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23">ease8InOutApprox</a> (fract8 i)</td></tr>
+<tr class="memdesc:gaa041cdbb17f073dbd352fcae6962dc23"><td class="mdescLeft">&#160;</td><td class="mdescRight">ease8InOutApprox: fast, rough 8-bit ease-in/ease-out function shaped approximately like 'ease8InOutCubic', it's never off by more than a couple of percent from the actual cubic S-curve, and it executes more than twice as fast. <a href="#gaa041cdbb17f073dbd352fcae6962dc23">More...</a><br /></td></tr>
<tr class="separator:gaa041cdbb17f073dbd352fcae6962dc23"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae9e011ff745ade1164ae77b0ef62bfac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae9e011ff745ade1164ae77b0ef62bfac"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>triwave8</b> (uint8_t in)</td></tr>
+<tr class="memitem:gae9e011ff745ade1164ae77b0ef62bfac"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a> (uint8_t in)</td></tr>
+<tr class="memdesc:gae9e011ff745ade1164ae77b0ef62bfac"><td class="mdescLeft">&#160;</td><td class="mdescRight">triwave8: triangle (sawtooth) wave generator. <a href="#gae9e011ff745ade1164ae77b0ef62bfac">More...</a><br /></td></tr>
<tr class="separator:gae9e011ff745ade1164ae77b0ef62bfac"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga209d6cbdb109cc3139e7bb1e46c6228f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga209d6cbdb109cc3139e7bb1e46c6228f"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>quadwave8</b> (uint8_t in)</td></tr>
+<tr class="memitem:ga209d6cbdb109cc3139e7bb1e46c6228f"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f">quadwave8</a> (uint8_t in)</td></tr>
+<tr class="memdesc:ga209d6cbdb109cc3139e7bb1e46c6228f"><td class="mdescLeft">&#160;</td><td class="mdescRight">quadwave8: quadratic waveform generator. <a href="#ga209d6cbdb109cc3139e7bb1e46c6228f">More...</a><br /></td></tr>
<tr class="separator:ga209d6cbdb109cc3139e7bb1e46c6228f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga06b04a0cf955ec107d49b76e0cb35225"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga06b04a0cf955ec107d49b76e0cb35225"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>cubicwave8</b> (uint8_t in)</td></tr>
+<tr class="memitem:ga06b04a0cf955ec107d49b76e0cb35225"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225">cubicwave8</a> (uint8_t in)</td></tr>
+<tr class="memdesc:ga06b04a0cf955ec107d49b76e0cb35225"><td class="mdescLeft">&#160;</td><td class="mdescRight">cubicwave8: cubic waveform generator. <a href="#ga06b04a0cf955ec107d49b76e0cb35225">More...</a><br /></td></tr>
<tr class="separator:ga06b04a0cf955ec107d49b76e0cb35225"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga17ae8fcfd9c485bb1120d908f836637a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga17ae8fcfd9c485bb1120d908f836637a"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>squarewave8</b> (uint8_t in, uint8_t pulsewidth=128)</td></tr>
+<tr class="memitem:ga17ae8fcfd9c485bb1120d908f836637a"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a">squarewave8</a> (uint8_t in, uint8_t pulsewidth=128)</td></tr>
+<tr class="memdesc:ga17ae8fcfd9c485bb1120d908f836637a"><td class="mdescLeft">&#160;</td><td class="mdescRight">squarewave8: square wave generator. <a href="#ga17ae8fcfd9c485bb1120d908f836637a">More...</a><br /></td></tr>
<tr class="separator:ga17ae8fcfd9c485bb1120d908f836637a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb94fbd930038e1510574dd4bcf07fe1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadb94fbd930038e1510574dd4bcf07fe1"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>millis</b> ()</td></tr>
@@ -244,61 +251,520 @@ uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>millis</b> ()</td
<tr class="memitem:ga10c1e6e66d1679c0b54ceca0906245f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga10c1e6e66d1679c0b54ceca0906245f1"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>get_millisecond_timer</b> ()</td></tr>
<tr class="separator:ga10c1e6e66d1679c0b54ceca0906245f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1b48fc520db5f40910caf79974992395"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1b48fc520db5f40910caf79974992395"></a>
-LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>beat88</b> (accum88 beats_per_minute_88, uint32_t timebase=0)</td></tr>
+<tr class="memitem:ga1b48fc520db5f40910caf79974992395"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a> (accum88 beats_per_minute_88, uint32_t timebase=0)</td></tr>
+<tr class="memdesc:ga1b48fc520db5f40910caf79974992395"><td class="mdescLeft">&#160;</td><td class="mdescRight">with BPM specified in Q8.8 fixed-point format; e.g. <a href="#ga1b48fc520db5f40910caf79974992395">More...</a><br /></td></tr>
<tr class="separator:ga1b48fc520db5f40910caf79974992395"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade6acbf6fd3c9d346148bccfcafb2fe2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade6acbf6fd3c9d346148bccfcafb2fe2"></a>
-LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>beat16</b> (accum88 beats_per_minute, uint32_t timebase=0)</td></tr>
+LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a> (accum88 beats_per_minute, uint32_t timebase=0)</td></tr>
+<tr class="memdesc:gade6acbf6fd3c9d346148bccfcafb2fe2"><td class="mdescLeft">&#160;</td><td class="mdescRight">beat16 generates a 16-bit 'sawtooth' wave at a given BPM <br /></td></tr>
<tr class="separator:gade6acbf6fd3c9d346148bccfcafb2fe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga12014943214a72eec31433d9682d4ebe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga12014943214a72eec31433d9682d4ebe"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>beat8</b> (accum88 beats_per_minute, uint32_t timebase=0)</td></tr>
+LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe">beat8</a> (accum88 beats_per_minute, uint32_t timebase=0)</td></tr>
+<tr class="memdesc:ga12014943214a72eec31433d9682d4ebe"><td class="mdescLeft">&#160;</td><td class="mdescRight">beat8 generates an 8-bit 'sawtooth' wave at a given BPM <br /></td></tr>
<tr class="separator:ga12014943214a72eec31433d9682d4ebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf917825ff26c8e1174c5b674a2f3c631"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf917825ff26c8e1174c5b674a2f3c631"></a>
-LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>beatsin88</b> (accum88 beats_per_minute_88, uint16_t lowest=0, uint16_t highest=65535, uint32_t timebase=0, uint16_t phase_offset=0)</td></tr>
+<tr class="memitem:gaf917825ff26c8e1174c5b674a2f3c631"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631">beatsin88</a> (accum88 beats_per_minute_88, uint16_t lowest=0, uint16_t highest=65535, uint32_t timebase=0, uint16_t phase_offset=0)</td></tr>
+<tr class="memdesc:gaf917825ff26c8e1174c5b674a2f3c631"><td class="mdescLeft">&#160;</td><td class="mdescRight">beatsin88 generates a 16-bit sine wave at a given BPM, that oscillates within a given range. <a href="#gaf917825ff26c8e1174c5b674a2f3c631">More...</a><br /></td></tr>
<tr class="separator:gaf917825ff26c8e1174c5b674a2f3c631"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa46e5de1c4c27833359e7a97a18c839b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa46e5de1c4c27833359e7a97a18c839b"></a>
-LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>beatsin16</b> (accum88 beats_per_minute, uint16_t lowest=0, uint16_t highest=65535, uint32_t timebase=0, uint16_t phase_offset=0)</td></tr>
+<tr class="memitem:gaa46e5de1c4c27833359e7a97a18c839b"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b">beatsin16</a> (accum88 beats_per_minute, uint16_t lowest=0, uint16_t highest=65535, uint32_t timebase=0, uint16_t phase_offset=0)</td></tr>
+<tr class="memdesc:gaa46e5de1c4c27833359e7a97a18c839b"><td class="mdescLeft">&#160;</td><td class="mdescRight">beatsin16 generates a 16-bit sine wave at a given BPM, that oscillates within a given range. <a href="#gaa46e5de1c4c27833359e7a97a18c839b">More...</a><br /></td></tr>
<tr class="separator:gaa46e5de1c4c27833359e7a97a18c839b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaecd7cbfc2640407cabf75afcc7d9ddf4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaecd7cbfc2640407cabf75afcc7d9ddf4"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>beatsin8</b> (accum88 beats_per_minute, uint8_t lowest=0, uint8_t highest=255, uint32_t timebase=0, uint8_t phase_offset=0)</td></tr>
+<tr class="memitem:gaecd7cbfc2640407cabf75afcc7d9ddf4"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4">beatsin8</a> (accum88 beats_per_minute, uint8_t lowest=0, uint8_t highest=255, uint32_t timebase=0, uint8_t phase_offset=0)</td></tr>
+<tr class="memdesc:gaecd7cbfc2640407cabf75afcc7d9ddf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">beatsin8 generates an 8-bit sine wave at a given BPM, that oscillates within a given range. <a href="#gaecd7cbfc2640407cabf75afcc7d9ddf4">More...</a><br /></td></tr>
<tr class="separator:gaecd7cbfc2640407cabf75afcc7d9ddf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa2abcee2fe76fafd7f3a2aeab03e3b69"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa2abcee2fe76fafd7f3a2aeab03e3b69"></a>
-LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>seconds16</b> ()</td></tr>
+<tr class="memitem:gaa2abcee2fe76fafd7f3a2aeab03e3b69"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a> ()</td></tr>
+<tr class="memdesc:gaa2abcee2fe76fafd7f3a2aeab03e3b69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current seconds since boot in a 16-bit value. <a href="#gaa2abcee2fe76fafd7f3a2aeab03e3b69">More...</a><br /></td></tr>
<tr class="separator:gaa2abcee2fe76fafd7f3a2aeab03e3b69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga223820399921e32ddf018a90223ff336"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga223820399921e32ddf018a90223ff336"></a>
-LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>minutes16</b> ()</td></tr>
+<tr class="memitem:ga223820399921e32ddf018a90223ff336"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a> ()</td></tr>
+<tr class="memdesc:ga223820399921e32ddf018a90223ff336"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current minutes since boot in a 16-bit value. <a href="#ga223820399921e32ddf018a90223ff336">More...</a><br /></td></tr>
<tr class="separator:ga223820399921e32ddf018a90223ff336"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga837f5a688998f3340994613944e47d41"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga837f5a688998f3340994613944e47d41"></a>
-LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>hours8</b> ()</td></tr>
+<tr class="memitem:ga837f5a688998f3340994613944e47d41"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a> ()</td></tr>
+<tr class="memdesc:ga837f5a688998f3340994613944e47d41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current hours since boot in an 8-bit value. <a href="#ga837f5a688998f3340994613944e47d41">More...</a><br /></td></tr>
<tr class="separator:ga837f5a688998f3340994613944e47d41"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5f95d6e55b4986bd88f662528cef717e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5f95d6e55b4986bd88f662528cef717e"></a>
-LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>div1024_32_16</b> (uint32_t in32)</td></tr>
+<tr class="memitem:ga5f95d6e55b4986bd88f662528cef717e"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e">div1024_32_16</a> (uint32_t in32)</td></tr>
+<tr class="memdesc:ga5f95d6e55b4986bd88f662528cef717e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper routine to divide a 32-bit value by 1024, returning only the low 16 bits. <a href="#ga5f95d6e55b4986bd88f662528cef717e">More...</a><br /></td></tr>
<tr class="separator:ga5f95d6e55b4986bd88f662528cef717e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga52659d1994f2f21eb05080c97417e93b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52659d1994f2f21eb05080c97417e93b"></a>
-LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>bseconds16</b> ()</td></tr>
+<tr class="memitem:ga52659d1994f2f21eb05080c97417e93b"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a> ()</td></tr>
+<tr class="memdesc:ga52659d1994f2f21eb05080c97417e93b"><td class="mdescLeft">&#160;</td><td class="mdescRight">bseconds16 returns the current time-since-boot in "binary seconds", which are actually 1024/1000 of a second long. <a href="#ga52659d1994f2f21eb05080c97417e93b">More...</a><br /></td></tr>
<tr class="separator:ga52659d1994f2f21eb05080c97417e93b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga08fb09ca0c948f6eec6402f5ef724209"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga08fb09ca0c948f6eec6402f5ef724209"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>INSTANTIATE_EVERY_N_TIME_PERIODS</b> (<a class="el" href="class_c_every_n_time_periods.html">CEveryNMillis</a>, uint32_t, GET_MILLIS)</td></tr>
<tr class="separator:ga08fb09ca0c948f6eec6402f5ef724209"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga701c373893bd35aedd1a01a2cccdd020"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga701c373893bd35aedd1a01a2cccdd020"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>INSTANTIATE_EVERY_N_TIME_PERIODS</b> (<a class="el" href="class_c_every_n_time_periods.html">CEveryNSeconds</a>, uint16_t, seconds16)</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>INSTANTIATE_EVERY_N_TIME_PERIODS</b> (<a class="el" href="class_c_every_n_time_periods.html">CEveryNSeconds</a>, uint16_t, <a class="el" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a>)</td></tr>
<tr class="separator:ga701c373893bd35aedd1a01a2cccdd020"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad9813d2fd3ed9e61acacda3ccf2f6bd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad9813d2fd3ed9e61acacda3ccf2f6bd4"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>INSTANTIATE_EVERY_N_TIME_PERIODS</b> (<a class="el" href="class_c_every_n_time_periods.html">CEveryNBSeconds</a>, uint16_t, bseconds16)</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>INSTANTIATE_EVERY_N_TIME_PERIODS</b> (<a class="el" href="class_c_every_n_time_periods.html">CEveryNBSeconds</a>, uint16_t, <a class="el" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a>)</td></tr>
<tr class="separator:gad9813d2fd3ed9e61acacda3ccf2f6bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47af9443c72741ca5989c43ce0f6239c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga47af9443c72741ca5989c43ce0f6239c"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>INSTANTIATE_EVERY_N_TIME_PERIODS</b> (<a class="el" href="class_c_every_n_time_periods.html">CEveryNMinutes</a>, uint16_t, minutes16)</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>INSTANTIATE_EVERY_N_TIME_PERIODS</b> (<a class="el" href="class_c_every_n_time_periods.html">CEveryNMinutes</a>, uint16_t, <a class="el" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a>)</td></tr>
<tr class="separator:ga47af9443c72741ca5989c43ce0f6239c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4274871603c32ccf29a2e90ad48dba82"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4274871603c32ccf29a2e90ad48dba82"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>INSTANTIATE_EVERY_N_TIME_PERIODS</b> (<a class="el" href="class_c_every_n_time_periods.html">CEveryNHours</a>, uint8_t, hours8)</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>INSTANTIATE_EVERY_N_TIME_PERIODS</b> (<a class="el" href="class_c_every_n_time_periods.html">CEveryNHours</a>, uint8_t, <a class="el" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a>)</td></tr>
<tr class="separator:ga4274871603c32ccf29a2e90ad48dba82"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>A variety of functions for working with numbers. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga1b48fc520db5f40910caf79974992395"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint16_t beat88 </td>
+ <td>(</td>
+ <td class="paramtype">accum88&#160;</td>
+ <td class="paramname"><em>beats_per_minute_88</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>timebase</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>with BPM specified in Q8.8 fixed-point format; e.g. </p>
+<p>for this function, 120 BPM MUST BE specified as 120*256 = 30720. If you just want to specify "120", use beat16 or beat8. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa46e5de1c4c27833359e7a97a18c839b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint16_t beatsin16 </td>
+ <td>(</td>
+ <td class="paramtype">accum88&#160;</td>
+ <td class="paramname"><em>beats_per_minute</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>lowest</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>highest</em> = <code>65535</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>timebase</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>phase_offset</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>beatsin16 generates a 16-bit sine wave at a given BPM, that oscillates within a given range. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaecd7cbfc2640407cabf75afcc7d9ddf4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint8_t beatsin8 </td>
+ <td>(</td>
+ <td class="paramtype">accum88&#160;</td>
+ <td class="paramname"><em>beats_per_minute</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>lowest</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>highest</em> = <code>255</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>timebase</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>phase_offset</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>beatsin8 generates an 8-bit sine wave at a given BPM, that oscillates within a given range. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf917825ff26c8e1174c5b674a2f3c631"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint16_t beatsin88 </td>
+ <td>(</td>
+ <td class="paramtype">accum88&#160;</td>
+ <td class="paramname"><em>beats_per_minute_88</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>lowest</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>highest</em> = <code>65535</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>timebase</em> = <code>0</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>phase_offset</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>beatsin88 generates a 16-bit sine wave at a given BPM, that oscillates within a given range. </p>
+<p>For this function, BPM MUST BE SPECIFIED as a Q8.8 fixed-point value; e.g. 120BPM must be specified as 120*256 = 30720. If you just want to specify "120", use beatsin16 or beatsin8. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga52659d1994f2f21eb05080c97417e93b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint16_t bseconds16 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>bseconds16 returns the current time-since-boot in "binary seconds", which are actually 1024/1000 of a second long. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga06b04a0cf955ec107d49b76e0cb35225"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint8_t cubicwave8 </td>
+ <td>(</td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>in</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>cubicwave8: cubic waveform generator. </p>
+<p>Spends visibly more time at the limits than 'sine' does. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga5f95d6e55b4986bd88f662528cef717e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint16_t div1024_32_16 </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>in32</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Helper routine to divide a 32-bit value by 1024, returning only the low 16 bits. </p>
+<p>You'd think this would be just result = (in32 &gt;&gt; 10) &amp; 0xFFFF; and on ARM, that's what you want and all is well. But on AVR that code turns into a loop that executes a four-byte shift ten times: 40 shifts in all, plus loop overhead. This routine gets exactly the same result with just six shifts (vs 40), and no loop overhead. Used to convert millis to 'binary seconds' aka bseconds: one bsecond == 1024 millis. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa041cdbb17f073dbd352fcae6962dc23"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint8_t ease8InOutApprox </td>
+ <td>(</td>
+ <td class="paramtype">fract8&#160;</td>
+ <td class="paramname"><em>i</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>ease8InOutApprox: fast, rough 8-bit ease-in/ease-out function shaped approximately like 'ease8InOutCubic', it's never off by more than a couple of percent from the actual cubic S-curve, and it executes more than twice as fast. </p>
+<p>Use when the cycles are more important than visual smoothness. Asm version takes around 7 cycles on AVR. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa2facbc0ec935e34c629aef43d6262c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC sfract15 floatToSfract15 </td>
+ <td>(</td>
+ <td class="paramtype">float&#160;</td>
+ <td class="paramname"><em>f</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>conversion from IEEE754 float in the range (-1,1) to 16-bit fixed point. </p>
+<p>Note that the extremes of one and negative one are NOT representable. The representable range is basically </p>
+
+</div>
+</div>
+<a class="anchor" id="ga837f5a688998f3340994613944e47d41"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint8_t hours8 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the current hours since boot in an 8-bit value. </p>
+<p>Used as part of the "every N time-periods" mechanism </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf65357c7aeca9778e5a2f80a6bac2b5d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint8_t map8 </td>
+ <td>(</td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>rangeStart</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>rangeEnd</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>map8: map from one full-range 8-bit value into a narrower range of 8-bit values, possibly a range of hues. </p>
+<p>E.g. map myValue into a hue in the range blue..purple..pink..red hue = map8( myValue, HUE_BLUE, HUE_RED);</p>
+<p>Combines nicely with the waveform functions (like sin8, etc) to produce continuous hue gradients back and forth: </p><pre class="fragment"> hue = map8( sin8( myValue), HUE_BLUE, HUE_RED);
+</pre><p>Mathematically simiar to lerp8by8, but arguments are more like Arduino's "map"; this function is similar to </p><pre class="fragment"> map( in, 0, 255, rangeStart, rangeEnd)
+</pre><p>but faster and specifically designed for 8-bit values. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga223820399921e32ddf018a90223ff336"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint16_t minutes16 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the current minutes since boot in a 16-bit value. </p>
+<p>Used as part of the "every N time-periods" mechanism </p>
+
+</div>
+</div>
+<a class="anchor" id="ga209d6cbdb109cc3139e7bb1e46c6228f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint8_t quadwave8 </td>
+ <td>(</td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>in</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>quadwave8: quadratic waveform generator. </p>
+<p>Spends just a little more time at the limits than 'sine' does. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa2abcee2fe76fafd7f3a2aeab03e3b69"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint16_t seconds16 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the current seconds since boot in a 16-bit value. </p>
+<p>Used as part of the "every N time-periods" mechanism </p>
+
+</div>
+</div>
+<a class="anchor" id="gab947c1150e3b9056cb91685a14270173"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC float sfract15ToFloat </td>
+ <td>(</td>
+ <td class="paramtype">sfract15&#160;</td>
+ <td class="paramname"><em>y</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>sfract15ToFloat: conversion from sfract15 fixed point to IEEE754 32-bit float. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga17ae8fcfd9c485bb1120d908f836637a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint8_t squarewave8 </td>
+ <td>(</td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>pulsewidth</em> = <code>128</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>squarewave8: square wave generator. </p>
+<p>Useful for turning a one-byte ever-increasing value into a one-byte value that is either 0 or 255. The width of the output 'pulse' is determined by the pulsewidth argument:</p>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;If pulsewidth is 255, output is always 255.</div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;If pulsewidth &lt; 255, then</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; if input &lt; pulsewidth then output is 255</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; if input &gt;= pulsewidth then output is 0</div>
+</div><!-- fragment --><p>the output looking like:</p>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;255 +--pulsewidth--+</div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; . | |</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; 0 0 +--------(256-pulsewidth)--------</div>
+</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">in</td><td></td></tr>
+ <tr><td class="paramname">pulsewidth</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>square wave output </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae9e011ff745ade1164ae77b0ef62bfac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint8_t triwave8 </td>
+ <td>(</td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>in</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>triwave8: triangle (sawtooth) wave generator. </p>
+<p>Useful for turning a one-byte ever-increasing value into a one-byte value that oscillates up and down.</p>
+<p>input output 0..127 0..254 (positive slope) 128..255 254..0 (negative slope)</p>
+<p>On AVR this function takes just three cycles. </p>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/hierarchy.html b/docs/3.1/hierarchy.html
index b5f288ca..1aaae652 100644
--- a/docs/3.1/hierarchy.html
+++ b/docs/3.1/hierarchy.html
@@ -201,7 +201,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/hsv2rgb_8h_source.html b/docs/3.1/hsv2rgb_8h_source.html
index ab8f8afb..1c953ee3 100644
--- a/docs/3.1/hsv2rgb_8h_source.html
+++ b/docs/3.1/hsv2rgb_8h_source.html
@@ -181,7 +181,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/index.html b/docs/3.1/index.html
index 76ef1ca6..30870002 100644
--- a/docs/3.1/index.html
+++ b/docs/3.1/index.html
@@ -84,7 +84,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/inherits.html b/docs/3.1/inherits.html
index 643c7c81..c7284e3c 100644
--- a/docs/3.1/inherits.html
+++ b/docs/3.1/inherits.html
@@ -216,7 +216,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/led__sysdefs_8h_source.html b/docs/3.1/led__sysdefs_8h_source.html
index ba844378..9af3a597 100644
--- a/docs/3.1/led__sysdefs_8h_source.html
+++ b/docs/3.1/led__sysdefs_8h_source.html
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/lib8tion_8h_source.html b/docs/3.1/lib8tion_8h_source.html
index 698f8895..9b2b88bb 100644
--- a/docs/3.1/lib8tion_8h_source.html
+++ b/docs/3.1/lib8tion_8h_source.html
@@ -462,689 +462,610 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment">// Note that anything involving a &#39;float&#39; on AVR will be slower.</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment">// floatToSfract15: conversion from IEEE754 float in the range (-1,1)</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment">// to 16-bit fixed point. Note that the extremes of</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="comment">// one and negative one are NOT representable. The</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="comment">// representable range is basically</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="comment">// sfract15ToFloat: conversion from sfract15 fixed point to</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="comment">// IEEE754 32-bit float.</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;LIB8STATIC <span class="keywordtype">float</span> sfract15ToFloat( sfract15 y)</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;{</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> y / 32768.0;</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;}</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;LIB8STATIC sfract15 floatToSfract15( <span class="keywordtype">float</span> f)</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;{</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> f * 32768.0;</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;}</div>
+<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gab947c1150e3b9056cb91685a14270173"> 384</a></span>&#160;LIB8STATIC <span class="keywordtype">float</span> <a class="code" href="group__lib8tion.html#gab947c1150e3b9056cb91685a14270173">sfract15ToFloat</a>( sfract15 y)</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;{</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> y / 32768.0;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;}</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0"> 393</a></span>&#160;LIB8STATIC sfract15 <a class="code" href="group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0">floatToSfract15</a>( <span class="keywordtype">float</span> f)</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;{</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> f * 32768.0;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;}</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="comment">// memmove8, memcpy8, and memset8:</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="comment">// alternatives to memmove, memcpy, and memset that are</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="comment">// faster on AVR than standard avr-libc 1.8</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="keywordtype">void</span> * memmove8( <span class="keywordtype">void</span> * dst, <span class="keyword">const</span> <span class="keywordtype">void</span> * src, uint16_t num );</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="keywordtype">void</span> * memcpy8 ( <span class="keywordtype">void</span> * dst, <span class="keyword">const</span> <span class="keywordtype">void</span> * src, uint16_t num ) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((noinline));</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="keywordtype">void</span> * memset8 ( <span class="keywordtype">void</span> * ptr, uint8_t value, uint16_t num ) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((noinline)) ;</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;}</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="comment">// on non-AVR platforms, these names just call standard libc.</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor">#define memmove8 memmove</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor">#define memcpy8 memcpy</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="preprocessor">#define memset8 memset</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="comment">// memmove8, memcpy8, and memset8:</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="comment">// alternatives to memmove, memcpy, and memset that are</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="comment">// faster on AVR than standard avr-libc 1.8</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="keywordtype">void</span> * memmove8( <span class="keywordtype">void</span> * dst, <span class="keyword">const</span> <span class="keywordtype">void</span> * src, uint16_t num );</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="keywordtype">void</span> * memcpy8 ( <span class="keywordtype">void</span> * dst, <span class="keyword">const</span> <span class="keywordtype">void</span> * src, uint16_t num ) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((noinline));</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="keywordtype">void</span> * memset8 ( <span class="keywordtype">void</span> * ptr, uint8_t value, uint16_t num ) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((noinline)) ;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;}</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="comment">// on non-AVR platforms, these names just call standard libc.</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor">#define memmove8 memmove</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor">#define memcpy8 memcpy</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor">#define memset8 memset</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="comment">// linear interpolation, such as could be used for Perlin noise, etc.</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="comment">// linear interpolation, such as could be used for Perlin noise, etc.</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="comment">// A note on the structure of the lerp functions:</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="comment">// The cases for b&gt;a and b&lt;=a are handled separately for</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="comment">// speed: without knowing the relative order of a and b,</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="comment">// the value (a-b) might be overflow the width of a or b,</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="comment">// and have to be promoted to a wider, slower type.</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="comment">// To avoid that, we separate the two cases, and are able</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment">// to do all the math in the same width as the arguments,</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="comment">// which is much faster and smaller on AVR.</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="comment">// linear interpolation between two unsigned 8-bit values,</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="comment">// with 8-bit fraction</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;LIB8STATIC uint8_t lerp8by8( uint8_t a, uint8_t b, fract8 frac)</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;{</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; uint8_t result;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; uint8_t delta = b - a;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; uint8_t delta = a - b;</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; result = a - scaled;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;}</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="comment">// linear interpolation between two unsigned 16-bit values,</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="comment">// with 16-bit fraction</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;LIB8STATIC uint16_t lerp16by16( uint16_t a, uint16_t b, fract16 frac)</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;{</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; uint16_t result;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">if</span>( b &gt; a ) {</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; uint16_t delta = b - a;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; uint32_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(delta, frac);</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; uint16_t delta = a - b;</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; result = a - scaled;</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;}</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="comment">// linear interpolation between two unsigned 16-bit values,</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="comment">// with 8-bit fraction</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;LIB8STATIC uint16_t lerp16by8( uint16_t a, uint16_t b, fract8 frac)</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;{</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; uint16_t result;</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; uint16_t delta = b - a;</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; uint16_t delta = a - b;</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; result = a - scaled;</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; }</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;}</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="comment">// linear interpolation between two signed 15-bit values,</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="comment">// with 8-bit fraction</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;LIB8STATIC int16_t lerp15by8( int16_t a, int16_t b, fract8 frac)</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;{</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; int16_t result;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; uint16_t delta = b - a;</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; uint16_t delta = a - b;</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; result = a - scaled;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;}</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="comment">// linear interpolation between two signed 15-bit values,</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="comment">// with 8-bit fraction</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;LIB8STATIC int16_t lerp15by16( int16_t a, int16_t b, fract16 frac)</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;{</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; int16_t result;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; uint16_t delta = b - a;</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; uint16_t delta = a - b;</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; result = a - scaled;</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; }</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;}</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="comment">// map8: map from one full-range 8-bit value into a narrower</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="comment">// range of 8-bit values, possibly a range of hues.</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="comment">// E.g. map myValue into a hue in the range blue..purple..pink..red</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="comment">// hue = map8( myValue, HUE_BLUE, HUE_RED);</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="comment">// Combines nicely with the waveform functions (like sin8, etc)</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="comment">// to produce continuous hue gradients back and forth:</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="comment">// hue = map8( sin8( myValue), HUE_BLUE, HUE_RED);</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="comment">// Mathematically simiar to lerp8by8, but arguments are more</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="comment">// like Arduino&#39;s &quot;map&quot;; this function is similar to</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="comment">// map( in, 0, 255, rangeStart, rangeEnd)</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="comment">// but faster and specifically designed for 8-bit values.</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;LIB8STATIC uint8_t map8( uint8_t in, uint8_t rangeStart, uint8_t rangeEnd)</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;{</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; uint8_t rangeWidth = rangeEnd - rangeStart;</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; uint8_t out = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( in, rangeWidth);</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; out += rangeStart;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;}</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="comment">// A note on the structure of the lerp functions:</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="comment">// The cases for b&gt;a and b&lt;=a are handled separately for</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="comment">// speed: without knowing the relative order of a and b,</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="comment">// the value (a-b) might be overflow the width of a or b,</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="comment">// and have to be promoted to a wider, slower type.</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="comment">// To avoid that, we separate the two cases, and are able</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="comment">// to do all the math in the same width as the arguments,</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="comment">// which is much faster and smaller on AVR.</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72"> 436</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>( uint8_t a, uint8_t b, fract8 frac)</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;{</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; uint8_t result;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; uint8_t delta = b - a;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; uint8_t delta = a - b;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; result = a - scaled;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;}</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3"> 453</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>( uint16_t a, uint16_t b, fract16 frac)</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;{</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; uint16_t result;</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">if</span>( b &gt; a ) {</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; uint32_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(delta, frac);</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; result = a - scaled;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;}</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251"> 470</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251">lerp16by8</a>( uint16_t a, uint16_t b, fract8 frac)</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;{</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; uint16_t result;</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; result = a - scaled;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;}</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1"> 487</a></span>&#160;LIB8STATIC int16_t <a class="code" href="group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1">lerp15by8</a>( int16_t a, int16_t b, fract8 frac)</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;{</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; int16_t result;</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; result = a - scaled;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; }</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;}</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div>
+<div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5"> 504</a></span>&#160;LIB8STATIC int16_t <a class="code" href="group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5">lerp15by16</a>( int16_t a, int16_t b, fract16 frac)</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;{</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; int16_t result;</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; result = a - scaled;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;}</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d"> 536</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d">map8</a>( uint8_t in, uint8_t rangeStart, uint8_t rangeEnd)</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;{</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; uint8_t rangeWidth = rangeEnd - rangeStart;</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; uint8_t out = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( in, rangeWidth);</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; out += rangeStart;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;}</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="comment">// easing functions; see http://easings.net</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="comment">// ease8InOutQuad: 8-bit quadratic ease-in / ease-out function</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="comment">// Takes around 13 cycles on AVR</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;LIB8STATIC uint8_t ease8InOutQuad( uint8_t i)</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;{</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; uint8_t j = i;</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">if</span>( j &amp; 0x80 ) {</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; j = 255 - j;</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; uint8_t jj = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( j, (j+1));</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; uint8_t jj2 = jj &lt;&lt; 1;</div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">if</span>( i &amp; 0x80 ) {</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; jj2 = 255 - jj2;</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; }</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> jj2;</div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;}</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="comment">// easing functions; see http://easings.net</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
+<div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0"> 552</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0">ease8InOutQuad</a>( uint8_t i)</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;{</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; uint8_t j = i;</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">if</span>( j &amp; 0x80 ) {</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; j = 255 - j;</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; uint8_t jj = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( j, (j+1));</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; uint8_t jj2 = jj &lt;&lt; 1;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">if</span>( i &amp; 0x80 ) {</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; jj2 = 255 - jj2;</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; }</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">return</span> jj2;</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;}</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="comment">// ease8InOutCubic: 8-bit cubic ease-in / ease-out function</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="comment">// Takes around 18 cycles on AVR</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;LIB8STATIC fract8 ease8InOutCubic( fract8 i)</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;{</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; uint8_t ii = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( i, i);</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; uint8_t iii = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( ii, i);</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; uint16_t r1 = (3 * (uint16_t)(ii)) - ( 2 * (uint16_t)(iii));</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="comment">/* the code generated for the above *&#39;s automatically</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="comment"> cleans up R1, so there&#39;s no need to explicitily call</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="comment"> cleanup_R1(); */</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; uint8_t result = r1;</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="comment">// if we got &quot;256&quot;, return 255:</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">if</span>( r1 &amp; 0x100 ) {</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; result = 255;</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; }</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;}</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="comment">// ease8InOutApprox: fast, rough 8-bit ease-in/ease-out function</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="comment">// shaped approximately like &#39;ease8InOutCubic&#39;,</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="comment">// it&#39;s never off by more than a couple of percent</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="comment">// from the actual cubic S-curve, and it executes</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="comment">// more than twice as fast. Use when the cycles</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="comment">// are more important than visual smoothness.</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="comment">// Asm version takes around 7 cycles on AVR.</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor">#if EASE8_C == 1</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;LIB8STATIC fract8 ease8InOutApprox( fract8 i)</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;{</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">if</span>( i &lt; 64) {</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="comment">// start with slope 0.5</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; i /= 2;</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( i &gt; (255 - 64)) {</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="comment">// end with slope 0.5</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; i = 255 - i;</div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; i /= 2;</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; i = 255 - i;</div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="comment">// in the middle, use slope 192/128 = 1.5</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; i -= 64;</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; i += (i / 2);</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; i += 32;</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; }</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">return</span> i;</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;}</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor">#elif EASE8_AVRASM == 1</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;LIB8STATIC uint8_t ease8InOutApprox( fract8 i)</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;{</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="comment">// takes around 7 cycles on AVR</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="stringliteral">&quot; subi %[i], 64 \n\t&quot;</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="stringliteral">&quot; cpi %[i], 128 \n\t&quot;</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="stringliteral">&quot; brcc Lshift_%= \n\t&quot;</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="comment">// middle case</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="stringliteral">&quot; mov __tmp_reg__, %[i] \n\t&quot;</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="stringliteral">&quot; lsr __tmp_reg__ \n\t&quot;</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="stringliteral">&quot; add %[i], __tmp_reg__ \n\t&quot;</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="stringliteral">&quot; subi %[i], 224 \n\t&quot;</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="stringliteral">&quot; rjmp Ldone_%= \n\t&quot;</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="comment">// start or end case</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="stringliteral">&quot;Lshift_%=: \n\t&quot;</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="stringliteral">&quot; lsr %[i] \n\t&quot;</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="stringliteral">&quot; subi %[i], 96 \n\t&quot;</span></div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="stringliteral">&quot;Ldone_%=: \n\t&quot;</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; : [i] <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; :</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; );</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">return</span> i;</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;}</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor">#error &quot;No implementation for ease8 available.&quot;</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568"> 569</a></span>&#160;LIB8STATIC fract8 <a class="code" href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568">ease8InOutCubic</a>( fract8 i)</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;{</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; uint8_t ii = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( i, i);</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; uint8_t iii = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( ii, i);</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; uint16_t r1 = (3 * (uint16_t)(ii)) - ( 2 * (uint16_t)(iii));</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="comment">/* the code generated for the above *&#39;s automatically</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="comment"> cleans up R1, so there&#39;s no need to explicitily call</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="comment"> cleanup_R1(); */</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; uint8_t result = r1;</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="comment">// if we got &quot;256&quot;, return 255:</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">if</span>( r1 &amp; 0x100 ) {</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; result = 255;</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;}</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor">#if EASE8_C == 1</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23"> 598</a></span>&#160;LIB8STATIC fract8 <a class="code" href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23">ease8InOutApprox</a>( fract8 i)</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;{</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">if</span>( i &lt; 64) {</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="comment">// start with slope 0.5</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; i /= 2;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( i &gt; (255 - 64)) {</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="comment">// end with slope 0.5</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; i = 255 - i;</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; i /= 2;</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; i = 255 - i;</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="comment">// in the middle, use slope 192/128 = 1.5</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; i -= 64;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; i += (i / 2);</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; i += 32;</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; }</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;}</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="preprocessor">#elif EASE8_AVRASM == 1</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23">ease8InOutApprox</a>( fract8 i)</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;{</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="comment">// takes around 7 cycles on AVR</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="stringliteral">&quot; subi %[i], 64 \n\t&quot;</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="stringliteral">&quot; cpi %[i], 128 \n\t&quot;</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="stringliteral">&quot; brcc Lshift_%= \n\t&quot;</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="comment">// middle case</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="stringliteral">&quot; mov __tmp_reg__, %[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="stringliteral">&quot; lsr __tmp_reg__ \n\t&quot;</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="stringliteral">&quot; add %[i], __tmp_reg__ \n\t&quot;</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="stringliteral">&quot; subi %[i], 224 \n\t&quot;</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="stringliteral">&quot; rjmp Ldone_%= \n\t&quot;</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="comment">// start or end case</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="stringliteral">&quot;Lshift_%=: \n\t&quot;</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="stringliteral">&quot; lsr %[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="stringliteral">&quot; subi %[i], 96 \n\t&quot;</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="stringliteral">&quot;Ldone_%=: \n\t&quot;</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; : [i] <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; :</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; );</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;}</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="preprocessor">#error &quot;No implementation for ease8 available.&quot;</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="comment">// triwave8: triangle (sawtooth) wave generator. Useful for</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="comment">// turning a one-byte ever-increasing value into a</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="comment">// one-byte value that oscillates up and down.</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="comment">// input output</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="comment">// 0..127 0..254 (positive slope)</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="comment">// 128..255 254..0 (negative slope)</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="comment">// On AVR this function takes just three cycles.</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;LIB8STATIC uint8_t triwave8(uint8_t in)</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;{</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">if</span>( in &amp; 0x80) {</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; in = 255 - in;</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; }</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; uint8_t out = in &lt;&lt; 1;</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">return</span> out;</div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;}</div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div>
+<div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac"> 663</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a>(uint8_t in)</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;{</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">if</span>( in &amp; 0x80) {</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; in = 255 - in;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; }</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; uint8_t out = in &lt;&lt; 1;</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;}</div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="comment">// quadwave8 and cubicwave8: S-shaped wave generators (like &#39;sine&#39;).</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="comment">// Useful for turning a one-byte &#39;counter&#39; value into a</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="comment">// one-byte oscillating value that moves smoothly up and down,</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="comment">// with an &#39;acceleration&#39; and &#39;deceleration&#39; curve.</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="comment">// These are even faster than &#39;sin8&#39;, and have</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="comment">// slightly different curve shapes.</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="comment">// quadwave8: quadratic waveform generator. Spends just a little more</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="comment">// time at the limits than &#39;sine&#39; does.</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;LIB8STATIC uint8_t quadwave8(uint8_t in)</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;{</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">return</span> ease8InOutQuad( triwave8( in));</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;}</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="comment">// cubicwave8: cubic waveform generator. Spends visibly more time</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="comment">// at the limits than &#39;sine&#39; does.</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;LIB8STATIC uint8_t cubicwave8(uint8_t in)</div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;{</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">return</span> ease8InOutCubic( triwave8( in));</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;}</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;</div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="comment">// squarewave8: square wave generator. Useful for</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="comment">// turning a one-byte ever-increasing value</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="comment">// into a one-byte value that is either 0 or 255.</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="comment">// The width of the output &#39;pulse&#39; is</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="comment">// determined by the pulsewidth argument:</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="comment">// If pulsewidth is 255, output is always 255.</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="comment">// If pulsewidth &lt; 255, then</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="comment">// if input &lt; pulsewidth then output is 255</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="comment">// if input &gt;= pulsewidth then output is 0</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="comment">// 255 +--pulsewidth--+</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="comment">// . | |</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="comment">// 0 0 +--------(256-pulsewidth)--------</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;LIB8STATIC uint8_t squarewave8( uint8_t in, uint8_t pulsewidth=128)</div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;{</div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">if</span>( in &lt; pulsewidth || (pulsewidth == 255)) {</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">return</span> 255;</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; }</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;}</div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div>
-<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classq.html"> 722</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">class </span><a class="code" href="classq.html">q</a> {</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; T i:I;</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; T f:F;</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <a class="code" href="classq.html">q</a>(<span class="keywordtype">float</span> fx) { i = fx; f = (fx-i) * (1&lt;&lt;F); }</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <a class="code" href="classq.html">q</a>(uint8_t _i, uint8_t _f) {i=_i; f=_f; }</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; uint32_t operator*(uint32_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; uint16_t operator*(uint16_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; int32_t operator*(int32_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; int16_t operator*(int16_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordtype">int</span> operator*(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;};</div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;</div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> uint32_t operator*(uint32_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> uint16_t operator*(uint16_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> int32_t operator*(int32_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> int16_t operator*(int16_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> <span class="keywordtype">int</span> operator*(<span class="keywordtype">int</span> v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint8_t, 4,4&gt;</a> <a class="code" href="classq.html">q44</a>;</div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint8_t, 6,2&gt;</a> <a class="code" href="classq.html">q62</a>;</div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint16_t, 8,8&gt;</a> <a class="code" href="classq.html">q88</a>;</div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint16_t, 12,4&gt;</a> <a class="code" href="classq.html">q124</a>;</div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="comment">// Beat generators - These functions produce waves at a given</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="comment">// number of &#39;beats per minute&#39;. Internally, they use</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="comment">// the Arduino function &#39;millis&#39; to track elapsed time.</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="comment">// Accuracy is a bit better than one part in a thousand.</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="comment">// beat8( BPM ) returns an 8-bit value that cycles &#39;BPM&#39; times</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="comment">// per minute, rising from 0 to 255, resetting to zero,</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="comment">// rising up again, etc.. The output of this function</span></div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;<span class="comment">// is suitable for feeding directly into sin8, and cos8,</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;<span class="comment">// triwave8, quadwave8, and cubicwave8.</span></div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="comment">// beat16( BPM ) returns a 16-bit value that cycles &#39;BPM&#39; times</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="comment">// per minute, rising from 0 to 65535, resetting to zero,</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="comment">// rising up again, etc. The output of this function is</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="comment">// suitable for feeding directly into sin16 and cos16.</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="comment">// beat88( BPM88) is the same as beat16, except that the BPM88 argument</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="comment">// MUST be in Q8.8 fixed point format, e.g. 120BPM must</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="comment">// be specified as 120*256 = 30720.</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;<span class="comment">// beatsin8( BPM, uint8_t low, uint8_t high) returns an 8-bit value that</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="comment">// rises and falls in a sine wave, &#39;BPM&#39; times per minute,</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="comment">// between the values of &#39;low&#39; and &#39;high&#39;.</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<span class="comment">// beatsin16( BPM, uint16_t low, uint16_t high) returns a 16-bit value</span></div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="comment">// that rises and falls in a sine wave, &#39;BPM&#39; times per</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="comment">// minute, between the values of &#39;low&#39; and &#39;high&#39;.</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="comment">// beatsin88( BPM88, ...) is the same as beatsin16, except that the</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="comment">// BPM88 argument MUST be in Q8.8 fixed point format,</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="comment">// e.g. 120BPM must be specified as 120*256 = 30720.</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<span class="comment">// BPM can be supplied two ways. The simpler way of specifying BPM is as</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;<span class="comment">// a simple 8-bit integer from 1-255, (e.g., &quot;120&quot;).</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="comment">// The more sophisticated way of specifying BPM allows for fractional</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="comment">// &quot;Q8.8&quot; fixed point number (an &#39;accum88&#39;) with an 8-bit integer part and</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;<span class="comment">// an 8-bit fractional part. The easiest way to construct this is to multiply</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;<span class="comment">// a floating point BPM value (e.g. 120.3) by 256, (e.g. resulting in 30796</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="comment">// in this case), and pass that as the 16-bit BPM argument.</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="comment">// &quot;BPM88&quot; MUST always be specified in Q8.8 format.</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="comment">// Originally designed to make an entire animation project pulse with brightness.</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="comment">// For that effect, add this line just above your existing call to &quot;FastLED.show()&quot;:</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="comment">// uint8_t bright = beatsin8( 60 /*BPM*/, 192 /*dimmest*/, 255 /*brightest*/ ));</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="comment">// FastLED.setBrightness( bright );</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="comment">// FastLED.show();</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="comment">// The entire animation will now pulse between brightness 192 and 255 once per second.</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;</div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="comment">// The beat generators need access to a millisecond counter.</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<span class="comment">// On Arduino, this is &quot;millis()&quot;. On other platforms, you&#39;ll</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="comment">// need to provide a function with this signature:</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="comment">// uint32_t get_millisecond_timer();</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="comment">// that provides similar functionality.</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="comment">// You can also force use of the get_millisecond_timer function</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="comment">// by #defining USE_GET_MILLISECOND_TIMER.</span></div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;<span class="preprocessor">#if (defined(ARDUINO) || defined(SPARK)) &amp;&amp; !defined(USE_GET_MILLISECOND_TIMER)</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="comment">// Forward declaration of Arduino function &#39;millis&#39;.</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;uint32_t millis();</div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="preprocessor">#define GET_MILLIS millis</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;uint32_t get_millisecond_timer();</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<span class="preprocessor">#define GET_MILLIS get_millisecond_timer</span></div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;</div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="comment">// beat16 generates a 16-bit &#39;sawtooth&#39; wave at a given BPM,</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="comment">// with BPM specified in Q8.8 fixed-point format; e.g.</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="comment">// for this function, 120 BPM MUST BE specified as</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="comment">// 120*256 = 30720.</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="comment">// If you just want to specify &quot;120&quot;, use beat16 or beat8.</span></div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;LIB8STATIC uint16_t beat88( accum88 beats_per_minute_88, uint32_t timebase = 0)</div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;{</div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="comment">// BPM is &#39;beats per minute&#39;, or &#39;beats per 60000ms&#39;.</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="comment">// To avoid using the (slower) division operator, we</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="comment">// want to convert &#39;beats per 60000ms&#39; to &#39;beats per 65536ms&#39;,</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="comment">// and then use a simple, fast bit-shift to divide by 65536.</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="comment">// The ratio 65536:60000 is 279.620266667:256; we&#39;ll call it 280:256.</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="comment">// The conversion is accurate to about 0.05%, more or less,</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="comment">// e.g. if you ask for &quot;120 BPM&quot;, you&#39;ll get about &quot;119.93&quot;.</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keywordflow">return</span> (((GET_MILLIS()) - timebase) * beats_per_minute_88 * 280) &gt;&gt; 16;</div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;}</div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;<span class="comment">// beat16 generates a 16-bit &#39;sawtooth&#39; wave at a given BPM</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;LIB8STATIC uint16_t beat16( accum88 beats_per_minute, uint32_t timebase = 0)</div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;{</div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="comment">// Convert simple 8-bit BPM&#39;s to full Q8.8 accum88&#39;s if needed</span></div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordflow">if</span>( beats_per_minute &lt; 256) beats_per_minute &lt;&lt;= 8;</div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keywordflow">return</span> beat88(beats_per_minute, timebase);</div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;}</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;<span class="comment">// beat8 generates an 8-bit &#39;sawtooth&#39; wave at a given BPM</span></div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;LIB8STATIC uint8_t beat8( accum88 beats_per_minute, uint32_t timebase = 0)</div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;{</div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">return</span> beat16( beats_per_minute, timebase) &gt;&gt; 8;</div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;}</div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;<span class="comment">// beatsin88 generates a 16-bit sine wave at a given BPM,</span></div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="comment">// that oscillates within a given range.</span></div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;<span class="comment">// For this function, BPM MUST BE SPECIFIED as</span></div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;<span class="comment">// a Q8.8 fixed-point value; e.g. 120BPM must be</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;<span class="comment">// specified as 120*256 = 30720.</span></div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;<span class="comment">// If you just want to specify &quot;120&quot;, use beatsin16 or beatsin8.</span></div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;LIB8STATIC uint16_t beatsin88( accum88 beats_per_minute_88, uint16_t lowest = 0, uint16_t highest = 65535,</div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; uint32_t timebase = 0, uint16_t phase_offset = 0)</div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;{</div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; uint16_t beat = beat88( beats_per_minute_88, timebase);</div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; uint16_t beatsin = (sin16( beat + phase_offset) + 32768);</div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; uint16_t rangewidth = highest - lowest;</div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; uint16_t scaledbeat = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( beatsin, rangewidth);</div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; uint16_t result = lowest + scaledbeat;</div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;}</div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;</div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;<span class="comment">// beatsin16 generates a 16-bit sine wave at a given BPM,</span></div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;<span class="comment">// that oscillates within a given range.</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;LIB8STATIC uint16_t beatsin16( accum88 beats_per_minute, uint16_t lowest = 0, uint16_t highest = 65535,</div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; uint32_t timebase = 0, uint16_t phase_offset = 0)</div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;{</div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; uint16_t beat = beat16( beats_per_minute, timebase);</div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; uint16_t beatsin = (sin16( beat + phase_offset) + 32768);</div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; uint16_t rangewidth = highest - lowest;</div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; uint16_t scaledbeat = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( beatsin, rangewidth);</div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; uint16_t result = lowest + scaledbeat;</div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;}</div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;</div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;<span class="comment">// beatsin8 generates an 8-bit sine wave at a given BPM,</span></div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;<span class="comment">// that oscillates within a given range.</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;LIB8STATIC uint8_t beatsin8( accum88 beats_per_minute, uint8_t lowest = 0, uint8_t highest = 255,</div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; uint32_t timebase = 0, uint8_t phase_offset = 0)</div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;{</div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; uint8_t beat = beat8( beats_per_minute, timebase);</div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; uint8_t beatsin = sin8( beat + phase_offset);</div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; uint8_t rangewidth = highest - lowest;</div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; uint8_t scaledbeat = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( beatsin, rangewidth);</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; uint8_t result = lowest + scaledbeat;</div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;}</div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;</div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;<span class="comment">// seconds16, minutes16, hours8</span></div>
-<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;<span class="comment">// functions to return the current seconds, minutes, or hours</span></div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;<span class="comment">// since boot time, in the specified width. Used as part of</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;<span class="comment">// the &quot;every N time-periods&quot; mechanism.</span></div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;</div>
-<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;LIB8STATIC uint16_t seconds16()</div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;{</div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; uint32_t ms = GET_MILLIS();</div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; uint16_t s16;</div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; s16 = ms / 1000;</div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">return</span> s16;</div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;}</div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;</div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;LIB8STATIC uint16_t minutes16()</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="comment">// quadwave8 and cubicwave8: S-shaped wave generators (like &#39;sine&#39;).</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="comment">// Useful for turning a one-byte &#39;counter&#39; value into a</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="comment">// one-byte oscillating value that moves smoothly up and down,</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="comment">// with an &#39;acceleration&#39; and &#39;deceleration&#39; curve.</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="comment">// These are even faster than &#39;sin8&#39;, and have</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;<span class="comment">// slightly different curve shapes.</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;</div>
+<div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f"> 684</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f">quadwave8</a>(uint8_t in)</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;{</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0">ease8InOutQuad</a>( <a class="code" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a>( in));</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;}</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div>
+<div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225"> 691</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225">cubicwave8</a>(uint8_t in)</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;{</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568">ease8InOutCubic</a>( <a class="code" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a>( in));</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;}</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div>
+<div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a"> 720</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a">squarewave8</a>( uint8_t in, uint8_t pulsewidth=128)</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;{</div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">if</span>( in &lt; pulsewidth || (pulsewidth == 255)) {</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">return</span> 255;</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; }</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;}</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="classq.html"> 733</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">class </span><a class="code" href="classq.html">q</a> {</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; T i:I;</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; T f:F;</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <a class="code" href="classq.html">q</a>(<span class="keywordtype">float</span> fx) { i = fx; f = (fx-i) * (1&lt;&lt;F); }</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <a class="code" href="classq.html">q</a>(uint8_t _i, uint8_t _f) {i=_i; f=_f; }</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; uint32_t operator*(uint32_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; uint16_t operator*(uint16_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; int32_t operator*(int32_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; int16_t operator*(int16_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordtype">int</span> operator*(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;};</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> uint32_t operator*(uint32_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> uint16_t operator*(uint16_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> int32_t operator*(int32_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> int16_t operator*(int16_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> <span class="keywordtype">int</span> operator*(<span class="keywordtype">int</span> v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint8_t, 4,4&gt;</a> <a class="code" href="classq.html">q44</a>;</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint8_t, 6,2&gt;</a> <a class="code" href="classq.html">q62</a>;</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint16_t, 8,8&gt;</a> <a class="code" href="classq.html">q88</a>;</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint16_t, 12,4&gt;</a> <a class="code" href="classq.html">q124</a>;</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="comment">// Beat generators - These functions produce waves at a given</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="comment">// number of &#39;beats per minute&#39;. Internally, they use</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="comment">// the Arduino function &#39;millis&#39; to track elapsed time.</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="comment">// Accuracy is a bit better than one part in a thousand.</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="comment">// beat8( BPM ) returns an 8-bit value that cycles &#39;BPM&#39; times</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;<span class="comment">// per minute, rising from 0 to 255, resetting to zero,</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="comment">// rising up again, etc.. The output of this function</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="comment">// is suitable for feeding directly into sin8, and cos8,</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<span class="comment">// triwave8, quadwave8, and cubicwave8.</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="comment">// beat16( BPM ) returns a 16-bit value that cycles &#39;BPM&#39; times</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="comment">// per minute, rising from 0 to 65535, resetting to zero,</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;<span class="comment">// rising up again, etc. The output of this function is</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="comment">// suitable for feeding directly into sin16 and cos16.</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="comment">// beat88( BPM88) is the same as beat16, except that the BPM88 argument</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;<span class="comment">// MUST be in Q8.8 fixed point format, e.g. 120BPM must</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<span class="comment">// be specified as 120*256 = 30720.</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;<span class="comment">// beatsin8( BPM, uint8_t low, uint8_t high) returns an 8-bit value that</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="comment">// rises and falls in a sine wave, &#39;BPM&#39; times per minute,</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="comment">// between the values of &#39;low&#39; and &#39;high&#39;.</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;<span class="comment">// beatsin16( BPM, uint16_t low, uint16_t high) returns a 16-bit value</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;<span class="comment">// that rises and falls in a sine wave, &#39;BPM&#39; times per</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="comment">// minute, between the values of &#39;low&#39; and &#39;high&#39;.</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="comment">// beatsin88( BPM88, ...) is the same as beatsin16, except that the</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="comment">// BPM88 argument MUST be in Q8.8 fixed point format,</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="comment">// e.g. 120BPM must be specified as 120*256 = 30720.</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="comment">// BPM can be supplied two ways. The simpler way of specifying BPM is as</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="comment">// a simple 8-bit integer from 1-255, (e.g., &quot;120&quot;).</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="comment">// The more sophisticated way of specifying BPM allows for fractional</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="comment">// &quot;Q8.8&quot; fixed point number (an &#39;accum88&#39;) with an 8-bit integer part and</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="comment">// an 8-bit fractional part. The easiest way to construct this is to multiply</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="comment">// a floating point BPM value (e.g. 120.3) by 256, (e.g. resulting in 30796</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="comment">// in this case), and pass that as the 16-bit BPM argument.</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="comment">// &quot;BPM88&quot; MUST always be specified in Q8.8 format.</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<span class="comment">// Originally designed to make an entire animation project pulse with brightness.</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="comment">// For that effect, add this line just above your existing call to &quot;FastLED.show()&quot;:</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="comment">// uint8_t bright = beatsin8( 60 /*BPM*/, 192 /*dimmest*/, 255 /*brightest*/ ));</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="comment">// FastLED.setBrightness( bright );</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="comment">// FastLED.show();</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="comment">// The entire animation will now pulse between brightness 192 and 255 once per second.</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="comment">// The beat generators need access to a millisecond counter.</span></div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;<span class="comment">// On Arduino, this is &quot;millis()&quot;. On other platforms, you&#39;ll</span></div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<span class="comment">// need to provide a function with this signature:</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;<span class="comment">// uint32_t get_millisecond_timer();</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="comment">// that provides similar functionality.</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="comment">// You can also force use of the get_millisecond_timer function</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="comment">// by #defining USE_GET_MILLISECOND_TIMER.</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="preprocessor">#if (defined(ARDUINO) || defined(SPARK)) &amp;&amp; !defined(USE_GET_MILLISECOND_TIMER)</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="comment">// Forward declaration of Arduino function &#39;millis&#39;.</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;uint32_t millis();</div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;<span class="preprocessor">#define GET_MILLIS millis</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;uint32_t get_millisecond_timer();</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="preprocessor">#define GET_MILLIS get_millisecond_timer</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="comment">// beat16 generates a 16-bit &#39;sawtooth&#39; wave at a given BPM,</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395"> 830</a></span>&#160;<span class="comment"></span>LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a>( accum88 beats_per_minute_88, uint32_t timebase = 0)</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;{</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="comment">// BPM is &#39;beats per minute&#39;, or &#39;beats per 60000ms&#39;.</span></div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="comment">// To avoid using the (slower) division operator, we</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="comment">// want to convert &#39;beats per 60000ms&#39; to &#39;beats per 65536ms&#39;,</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="comment">// and then use a simple, fast bit-shift to divide by 65536.</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="comment">// The ratio 65536:60000 is 279.620266667:256; we&#39;ll call it 280:256.</span></div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="comment">// The conversion is accurate to about 0.05%, more or less,</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="comment">// e.g. if you ask for &quot;120 BPM&quot;, you&#39;ll get about &quot;119.93&quot;.</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">return</span> (((GET_MILLIS()) - timebase) * beats_per_minute_88 * 280) &gt;&gt; 16;</div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;}</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;</div>
+<div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2"> 844</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a>( accum88 beats_per_minute, uint32_t timebase = 0)</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;{</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="comment">// Convert simple 8-bit BPM&#39;s to full Q8.8 accum88&#39;s if needed</span></div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">if</span>( beats_per_minute &lt; 256) beats_per_minute &lt;&lt;= 8;</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a>(beats_per_minute, timebase);</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;}</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div>
+<div class="line"><a name="l00852"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe"> 852</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe">beat8</a>( accum88 beats_per_minute, uint32_t timebase = 0)</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;{</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a>( beats_per_minute, timebase) &gt;&gt; 8;</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;}</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;</div>
+<div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631"> 863</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631">beatsin88</a>( accum88 beats_per_minute_88, uint16_t lowest = 0, uint16_t highest = 65535,</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; uint32_t timebase = 0, uint16_t phase_offset = 0)</div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;{</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; uint16_t beat = <a class="code" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a>( beats_per_minute_88, timebase);</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; uint16_t beatsin = (sin16( beat + phase_offset) + 32768);</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; uint16_t rangewidth = highest - lowest;</div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; uint16_t scaledbeat = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( beatsin, rangewidth);</div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; uint16_t result = lowest + scaledbeat;</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;}</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;</div>
+<div class="line"><a name="l00876"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b"> 876</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b">beatsin16</a>( accum88 beats_per_minute, uint16_t lowest = 0, uint16_t highest = 65535,</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; uint32_t timebase = 0, uint16_t phase_offset = 0)</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;{</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; uint16_t beat = <a class="code" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a>( beats_per_minute, timebase);</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; uint16_t beatsin = (sin16( beat + phase_offset) + 32768);</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; uint16_t rangewidth = highest - lowest;</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; uint16_t scaledbeat = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( beatsin, rangewidth);</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; uint16_t result = lowest + scaledbeat;</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;}</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;</div>
+<div class="line"><a name="l00889"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4"> 889</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4">beatsin8</a>( accum88 beats_per_minute, uint8_t lowest = 0, uint8_t highest = 255,</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; uint32_t timebase = 0, uint8_t phase_offset = 0)</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;{</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; uint8_t beat = <a class="code" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe">beat8</a>( beats_per_minute, timebase);</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; uint8_t beatsin = sin8( beat + phase_offset);</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; uint8_t rangewidth = highest - lowest;</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; uint8_t scaledbeat = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( beatsin, rangewidth);</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; uint8_t result = lowest + scaledbeat;</div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;}</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;</div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;</div>
+<div class="line"><a name="l00903"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69"> 903</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a>()</div>
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;{</div>
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; uint32_t ms = GET_MILLIS();</div>
-<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; uint16_t m16;</div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; m16 = (ms / (60000L)) &amp; 0xFFFF;</div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">return</span> m16;</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; uint16_t s16;</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; s16 = ms / 1000;</div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">return</span> s16;</div>
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;}</div>
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;</div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;LIB8STATIC uint8_t hours8()</div>
-<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;{</div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; uint32_t ms = GET_MILLIS();</div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; uint8_t h8;</div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; h8 = (ms / (3600000L)) &amp; 0xFF;</div>
-<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="keywordflow">return</span> h8;</div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;}</div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;</div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;</div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;<span class="comment">// Helper routine to divide a 32-bit value by 1024, returning</span></div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;<span class="comment">// only the low 16 bits. You&#39;d think this would be just</span></div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;<span class="comment">// result = (in32 &gt;&gt; 10) &amp; 0xFFFF;</span></div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;<span class="comment">// and on ARM, that&#39;s what you want and all is well.</span></div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;<span class="comment">// But on AVR that code turns into a loop that executes</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;<span class="comment">// a four-byte shift ten times: 40 shifts in all, plus loop</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;<span class="comment">// overhead. This routine gets exactly the same result with</span></div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;<span class="comment">// just six shifts (vs 40), and no loop overhead.</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;<span class="comment">// Used to convert millis to &#39;binary seconds&#39; aka bseconds:</span></div>
-<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;<span class="comment">// one bsecond == 1024 millis.</span></div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;LIB8STATIC uint16_t div1024_32_16( uint32_t in32)</div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;{</div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; uint16_t out16;</div>
-<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="stringliteral">&quot; lsr %D[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="stringliteral">&quot; ror %C[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="stringliteral">&quot; ror %B[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="stringliteral">&quot; lsr %D[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="stringliteral">&quot; ror %C[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="stringliteral">&quot; ror %B[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="stringliteral">&quot; mov %B[out],%C[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <span class="stringliteral">&quot; mov %A[out],%B[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; : [in] <span class="stringliteral">&quot;+r&quot;</span> (in32),</div>
-<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; [out] <span class="stringliteral">&quot;=r&quot;</span> (out16)</div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; );</div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; out16 = (in32 &gt;&gt; 10) &amp; 0xFFFF;</div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="keywordflow">return</span> out16;</div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;}</div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;</div>
-<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;<span class="comment">// bseconds16 returns the current time-since-boot in</span></div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;<span class="comment">// &quot;binary seconds&quot;, which are actually 1024/1000 of a</span></div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;<span class="comment">// second long.</span></div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;LIB8STATIC uint16_t bseconds16()</div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;{</div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; uint32_t ms = GET_MILLIS();</div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; uint16_t s16;</div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; s16 = div1024_32_16( ms);</div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keywordflow">return</span> s16;</div>
-<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;}</div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;</div>
+<div class="line"><a name="l00913"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336"> 913</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a>()</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;{</div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; uint32_t ms = GET_MILLIS();</div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; uint16_t m16;</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; m16 = (ms / (60000L)) &amp; 0xFFFF;</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordflow">return</span> m16;</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;}</div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;</div>
+<div class="line"><a name="l00923"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41"> 923</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a>()</div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;{</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; uint32_t ms = GET_MILLIS();</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; uint8_t h8;</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; h8 = (ms / (3600000L)) &amp; 0xFF;</div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keywordflow">return</span> h8;</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;}</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;</div>
+<div class="line"><a name="l00942"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e"> 942</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e">div1024_32_16</a>( uint32_t in32)</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;{</div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; uint16_t out16;</div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="stringliteral">&quot; lsr %D[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <span class="stringliteral">&quot; ror %C[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="stringliteral">&quot; ror %B[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="stringliteral">&quot; lsr %D[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="stringliteral">&quot; ror %C[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="stringliteral">&quot; ror %B[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="stringliteral">&quot; mov %B[out],%C[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="stringliteral">&quot; mov %A[out],%B[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; : [in] <span class="stringliteral">&quot;+r&quot;</span> (in32),</div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; [out] <span class="stringliteral">&quot;=r&quot;</span> (out16)</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; );</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; out16 = (in32 &gt;&gt; 10) &amp; 0xFFFF;</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keywordflow">return</span> out16;</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;}</div>
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div>
-<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;<span class="comment">// Classes to implement &quot;Every N Milliseconds&quot;, &quot;Every N Seconds&quot;,</span></div>
-<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;<span class="comment">// &quot;Every N Minutes&quot;, &quot;Every N Hours&quot;, and &quot;Every N BSeconds&quot;.</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;<span class="preprocessor">#if 1</span></div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;<span class="preprocessor">#define INSTANTIATE_EVERY_N_TIME_PERIODS(NAME,TIMETYPE,TIMEGETTER) \</span></div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;<span class="preprocessor">class NAME { \</span></div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;<span class="preprocessor">public: \</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;<span class="preprocessor"> TIMETYPE mPrevTrigger; \</span></div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;<span class="preprocessor"> TIMETYPE mPeriod; \</span></div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;<span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;<span class="preprocessor"> NAME() { reset(); mPeriod = 1; }; \</span></div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;<span class="preprocessor"> NAME(TIMETYPE period) { reset(); setPeriod(period); }; \</span></div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;<span class="preprocessor"> void setPeriod( TIMETYPE period) { mPeriod = period; }; \</span></div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;<span class="preprocessor"> TIMETYPE getTime() { return (TIMETYPE)(TIMEGETTER()); }; \</span></div>
-<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;<span class="preprocessor"> TIMETYPE getPeriod() { return mPeriod; }; \</span></div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;<span class="preprocessor"> TIMETYPE getElapsed() { return getTime() - mPrevTrigger; } \</span></div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;<span class="preprocessor"> TIMETYPE getRemaining() { return mPeriod - getElapsed(); } \</span></div>
-<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;<span class="preprocessor"> TIMETYPE getLastTriggerTime() { return mPrevTrigger; } \</span></div>
-<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;<span class="preprocessor"> bool ready() { \</span></div>
-<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;<span class="preprocessor"> bool isReady = (getElapsed() &gt;= mPeriod); \</span></div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;<span class="preprocessor"> if( isReady ) { reset(); } \</span></div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;<span class="preprocessor"> return isReady; \</span></div>
-<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;<span class="preprocessor"> void reset() { mPrevTrigger = getTime(); }; \</span></div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;<span class="preprocessor"> void trigger() { mPrevTrigger = getTime() - mPeriod; }; \</span></div>
-<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;<span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;<span class="preprocessor"> operator bool() { return ready(); } \</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;<span class="preprocessor">};</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNMillis</a>,uint32_t,GET_MILLIS);</div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNSeconds</a>,uint16_t,seconds16);</div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNBSeconds</a>,uint16_t,bseconds16);</div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNMinutes</a>,uint16_t,minutes16);</div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNHours</a>,uint8_t,hours8);</div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;</div>
-<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;<span class="comment">// Under C++11 rules, we would be allowed to use not-external</span></div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;<span class="comment">// -linkage-type symbols as template arguments,</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="comment">// e.g., LIB8STATIC seconds16, and we&#39;d be able to use these</span></div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="comment">// templates as shown below.</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="comment">// However, under C++03 rules, we cannot do that, and thus we</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="comment">// have to resort to the preprocessor to &#39;instantiate&#39; &#39;templates&#39;,</span></div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;<span class="comment">// as handled above.</span></div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> timeType,timeType (*timeGetter)()&gt;</div>
-<div class="line"><a name="l01006"></a><span class="lineno"><a class="line" href="class_c_every_n_time_periods.html"> 1006</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a> {</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; timeType mPrevTrigger;</div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; timeType mPeriod;</div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>() { reset(); mPeriod = 1; };</div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>(timeType period) { reset(); setPeriod(period); };</div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <span class="keywordtype">void</span> setPeriod( timeType period) { mPeriod = period; };</div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; timeType getTime() { <span class="keywordflow">return</span> (timeType)(timeGetter()); };</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; timeType getPeriod() { <span class="keywordflow">return</span> mPeriod; };</div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; timeType getElapsed() { <span class="keywordflow">return</span> getTime() - mPrevTrigger; }</div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; timeType getRemaining() { <span class="keywordflow">return</span> mPeriod - getElapsed(); }</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; timeType getLastTriggerTime() { <span class="keywordflow">return</span> mPrevTrigger; }</div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordtype">bool</span> ready() {</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordtype">bool</span> isReady = (getElapsed() &gt;= mPeriod);</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; <span class="keywordflow">if</span>( isReady ) { reset(); }</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <span class="keywordflow">return</span> isReady;</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; }</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keywordtype">void</span> reset() { mPrevTrigger = getTime(); };</div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="keywordtype">void</span> trigger() { mPrevTrigger = getTime() - mPeriod; };</div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <span class="keyword">operator</span> bool() { <span class="keywordflow">return</span> ready(); }</div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;};</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,seconds16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNSeconds</a>;</div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,bseconds16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNBSeconds</a>;</div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint32_t,millis&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNMillis</a>;</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,minutes16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNMinutes</a>;</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint8_t,hours8&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNHours</a>;</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;</div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;</div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;<span class="preprocessor">#define CONCAT_HELPER( x, y ) x##y</span></div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="preprocessor">#define CONCAT_MACRO( x, y ) CONCAT_HELPER( x, y )</span></div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="preprocessor">#define EVERY_N_MILLIS(N) EVERY_N_MILLIS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;<span class="preprocessor">#define EVERY_N_MILLIS_I(NAME,N) static CEveryNMillis NAME(N); if( NAME )</span></div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="preprocessor">#define EVERY_N_SECONDS(N) EVERY_N_SECONDS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;<span class="preprocessor">#define EVERY_N_SECONDS_I(NAME,N) static CEveryNSeconds NAME(N); if( NAME )</span></div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;<span class="preprocessor">#define EVERY_N_BSECONDS(N) EVERY_N_BSECONDS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="preprocessor">#define EVERY_N_BSECONDS_I(NAME,N) static CEveryNBSeconds NAME(N); if( NAME )</span></div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;<span class="preprocessor">#define EVERY_N_MINUTES(N) EVERY_N_MINUTES_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;<span class="preprocessor">#define EVERY_N_MINUTES_I(NAME,N) static CEveryNMinutes NAME(N); if( NAME )</span></div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;<span class="preprocessor">#define EVERY_N_HOURS(N) EVERY_N_HOURS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;<span class="preprocessor">#define EVERY_N_HOURS_I(NAME,N) static CEveryNHours NAME(N); if( NAME )</span></div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="preprocessor">#define CEveryNMilliseconds CEveryNMillis</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="preprocessor">#define EVERY_N_MILLISECONDS(N) EVERY_N_MILLIS(N)</span></div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00967"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b"> 967</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a>()</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;{</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; uint32_t ms = GET_MILLIS();</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; uint16_t s16;</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; s16 = <a class="code" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e">div1024_32_16</a>( ms);</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keywordflow">return</span> s16;</div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;}</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;</div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;</div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;<span class="comment">// Classes to implement &quot;Every N Milliseconds&quot;, &quot;Every N Seconds&quot;,</span></div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;<span class="comment">// &quot;Every N Minutes&quot;, &quot;Every N Hours&quot;, and &quot;Every N BSeconds&quot;.</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;<span class="preprocessor">#if 1</span></div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;<span class="preprocessor">#define INSTANTIATE_EVERY_N_TIME_PERIODS(NAME,TIMETYPE,TIMEGETTER) \</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;<span class="preprocessor">class NAME { \</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;<span class="preprocessor">public: \</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;<span class="preprocessor"> TIMETYPE mPrevTrigger; \</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;<span class="preprocessor"> TIMETYPE mPeriod; \</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;<span class="preprocessor"> \</span></div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;<span class="preprocessor"> NAME() { reset(); mPeriod = 1; }; \</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;<span class="preprocessor"> NAME(TIMETYPE period) { reset(); setPeriod(period); }; \</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;<span class="preprocessor"> void setPeriod( TIMETYPE period) { mPeriod = period; }; \</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;<span class="preprocessor"> TIMETYPE getTime() { return (TIMETYPE)(TIMEGETTER()); }; \</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;<span class="preprocessor"> TIMETYPE getPeriod() { return mPeriod; }; \</span></div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;<span class="preprocessor"> TIMETYPE getElapsed() { return getTime() - mPrevTrigger; } \</span></div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;<span class="preprocessor"> TIMETYPE getRemaining() { return mPeriod - getElapsed(); } \</span></div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;<span class="preprocessor"> TIMETYPE getLastTriggerTime() { return mPrevTrigger; } \</span></div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;<span class="preprocessor"> bool ready() { \</span></div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;<span class="preprocessor"> bool isReady = (getElapsed() &gt;= mPeriod); \</span></div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;<span class="preprocessor"> if( isReady ) { reset(); } \</span></div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;<span class="preprocessor"> return isReady; \</span></div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;<span class="preprocessor"> void reset() { mPrevTrigger = getTime(); }; \</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;<span class="preprocessor"> void trigger() { mPrevTrigger = getTime() - mPeriod; }; \</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="preprocessor"> \</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="preprocessor"> operator bool() { return ready(); } \</span></div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="preprocessor">};</span></div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNMillis</a>,uint32_t,GET_MILLIS);</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNSeconds</a>,uint16_t,<a class="code" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a>);</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNBSeconds</a>,uint16_t,<a class="code" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a>);</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNMinutes</a>,uint16_t,<a class="code" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a>);</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNHours</a>,uint8_t,<a class="code" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a>);</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;<span class="comment">// Under C++11 rules, we would be allowed to use not-external</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;<span class="comment">// -linkage-type symbols as template arguments,</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;<span class="comment">// e.g., LIB8STATIC seconds16, and we&#39;d be able to use these</span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="comment">// templates as shown below.</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="comment">// However, under C++03 rules, we cannot do that, and thus we</span></div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="comment">// have to resort to the preprocessor to &#39;instantiate&#39; &#39;templates&#39;,</span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="comment">// as handled above.</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> timeType,timeType (*timeGetter)()&gt;</div>
+<div class="line"><a name="l01018"></a><span class="lineno"><a class="line" href="class_c_every_n_time_periods.html"> 1018</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a> {</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; timeType mPrevTrigger;</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; timeType mPeriod;</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>() { reset(); mPeriod = 1; };</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>(timeType period) { reset(); setPeriod(period); };</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="keywordtype">void</span> setPeriod( timeType period) { mPeriod = period; };</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; timeType getTime() { <span class="keywordflow">return</span> (timeType)(timeGetter()); };</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; timeType getPeriod() { <span class="keywordflow">return</span> mPeriod; };</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; timeType getElapsed() { <span class="keywordflow">return</span> getTime() - mPrevTrigger; }</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; timeType getRemaining() { <span class="keywordflow">return</span> mPeriod - getElapsed(); }</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; timeType getLastTriggerTime() { <span class="keywordflow">return</span> mPrevTrigger; }</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordtype">bool</span> ready() {</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; <span class="keywordtype">bool</span> isReady = (getElapsed() &gt;= mPeriod);</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">if</span>( isReady ) { reset(); }</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="keywordflow">return</span> isReady;</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; }</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordtype">void</span> reset() { mPrevTrigger = getTime(); };</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordtype">void</span> trigger() { mPrevTrigger = getTime() - mPeriod; };</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keyword">operator</span> bool() { <span class="keywordflow">return</span> ready(); }</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;};</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,seconds16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNSeconds</a>;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,bseconds16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNBSeconds</a>;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint32_t,millis&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNMillis</a>;</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,minutes16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNMinutes</a>;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint8_t,hours8&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNHours</a>;</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<span class="preprocessor">#define CONCAT_HELPER( x, y ) x##y</span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="preprocessor">#define CONCAT_MACRO( x, y ) CONCAT_HELPER( x, y )</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="preprocessor">#define EVERY_N_MILLIS(N) EVERY_N_MILLIS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;<span class="preprocessor">#define EVERY_N_MILLIS_I(NAME,N) static CEveryNMillis NAME(N); if( NAME )</span></div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;<span class="preprocessor">#define EVERY_N_SECONDS(N) EVERY_N_SECONDS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="preprocessor">#define EVERY_N_SECONDS_I(NAME,N) static CEveryNSeconds NAME(N); if( NAME )</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="preprocessor">#define EVERY_N_BSECONDS(N) EVERY_N_BSECONDS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;<span class="preprocessor">#define EVERY_N_BSECONDS_I(NAME,N) static CEveryNBSeconds NAME(N); if( NAME )</span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="preprocessor">#define EVERY_N_MINUTES(N) EVERY_N_MINUTES_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="preprocessor">#define EVERY_N_MINUTES_I(NAME,N) static CEveryNMinutes NAME(N); if( NAME )</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="preprocessor">#define EVERY_N_HOURS(N) EVERY_N_HOURS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="preprocessor">#define EVERY_N_HOURS_I(NAME,N) static CEveryNHours NAME(N); if( NAME )</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="preprocessor">#define CEveryNMilliseconds CEveryNMillis</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="preprocessor">#define EVERY_N_MILLISECONDS(N) EVERY_N_MILLIS(N)</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="group__lib8tion_html_ga837f5a688998f3340994613944e47d41"><div class="ttname"><a href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a></div><div class="ttdeci">LIB8STATIC uint8_t hours8()</div><div class="ttdoc">Return the current hours since boot in an 8-bit value. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:923</div></div>
+<div class="ttc" id="group__lib8tion_html_ga8c8f06da86c5d7cf13f55c3a5bfdf251"><div class="ttname"><a href="group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251">lerp16by8</a></div><div class="ttdeci">LIB8STATIC uint16_t lerp16by8(uint16_t a, uint16_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two unsigned 16-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> lib8tion.h:470</div></div>
+<div class="ttc" id="group__lib8tion_html_gade6acbf6fd3c9d346148bccfcafb2fe2"><div class="ttname"><a href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a></div><div class="ttdeci">LIB8STATIC uint16_t beat16(accum88 beats_per_minute, uint32_t timebase=0)</div><div class="ttdoc">beat16 generates a 16-bit &#39;sawtooth&#39; wave at a given BPM </div><div class="ttdef"><b>Definition:</b> lib8tion.h:844</div></div>
+<div class="ttc" id="group__lib8tion_html_ga381449070b2d6bfba356f87881ab28c0"><div class="ttname"><a href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0">ease8InOutQuad</a></div><div class="ttdeci">LIB8STATIC uint8_t ease8InOutQuad(uint8_t i)</div><div class="ttdoc">ease8InOutQuad: 8-bit quadratic ease-in / ease-out function Takes around 13 cycles on AVR ...</div><div class="ttdef"><b>Definition:</b> lib8tion.h:552</div></div>
+<div class="ttc" id="group__lib8tion_html_ga223820399921e32ddf018a90223ff336"><div class="ttname"><a href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a></div><div class="ttdeci">LIB8STATIC uint16_t minutes16()</div><div class="ttdoc">Return the current minutes since boot in a 16-bit value. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:913</div></div>
+<div class="ttc" id="group__lib8tion_html_ga62ed4425400bc4140902347dc54ffb72"><div class="ttname"><a href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a></div><div class="ttdeci">LIB8STATIC uint8_t lerp8by8(uint8_t a, uint8_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two unsigned 8-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> lib8tion.h:436</div></div>
+<div class="ttc" id="group__lib8tion_html_ga7c02960d0f26e90054c7312e5f9a55b3"><div class="ttname"><a href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a></div><div class="ttdeci">LIB8STATIC uint16_t lerp16by16(uint16_t a, uint16_t b, fract16 frac)</div><div class="ttdoc">linear interpolation between two unsigned 16-bit values, with 16-bit fraction </div><div class="ttdef"><b>Definition:</b> lib8tion.h:453</div></div>
<div class="ttc" id="group___scaling_html_ga6c160f8c36ce9b3c5eda68e4992010af"><div class="ttname"><a href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8(uint8_t i, fract8 scale)</div><div class="ttdoc">scale one byte by a second one, which is treated as the numerator of a fraction whose denominator is ...</div><div class="ttdef"><b>Definition:</b> scale8.h:20</div></div>
<div class="ttc" id="union_i_e_e_e754binary32__t_html"><div class="ttname"><a href="union_i_e_e_e754binary32__t.html">IEEE754binary32_t</a></div><div class="ttdef"><b>Definition:</b> lib8tion.h:342</div></div>
+<div class="ttc" id="group__lib8tion_html_gaa46e5de1c4c27833359e7a97a18c839b"><div class="ttname"><a href="group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b">beatsin16</a></div><div class="ttdeci">LIB8STATIC uint16_t beatsin16(accum88 beats_per_minute, uint16_t lowest=0, uint16_t highest=65535, uint32_t timebase=0, uint16_t phase_offset=0)</div><div class="ttdoc">beatsin16 generates a 16-bit sine wave at a given BPM, that oscillates within a given range...</div><div class="ttdef"><b>Definition:</b> lib8tion.h:876</div></div>
+<div class="ttc" id="group__lib8tion_html_gad4b09aba4e188e14d3e71d1c9f77f1a5"><div class="ttname"><a href="group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5">lerp15by16</a></div><div class="ttdeci">LIB8STATIC int16_t lerp15by16(int16_t a, int16_t b, fract16 frac)</div><div class="ttdoc">linear interpolation between two signed 15-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> lib8tion.h:504</div></div>
<div class="ttc" id="group___scaling_html_gaf34fde0746c9c2e5ed44f9c437a2267e"><div class="ttname"><a href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a></div><div class="ttdeci">LIB8STATIC uint16_t scale16by8(uint16_t i, fract8 scale)</div><div class="ttdoc">scale a 16-bit unsigned value by an 8-bit value, considered as numerator of a fraction whose denomina...</div><div class="ttdef"><b>Definition:</b> scale8.h:348</div></div>
<div class="ttc" id="group___scaling_html_ga1ff8ac00ad78e22acc7bb7445bfdb145"><div class="ttname"><a href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a></div><div class="ttdeci">LIB8STATIC uint16_t scale16(uint16_t i, fract16 scale)</div><div class="ttdoc">scale a 16-bit unsigned value by a 16-bit value, considered as numerator of a fraction whose denomina...</div><div class="ttdef"><b>Definition:</b> scale8.h:384</div></div>
-<div class="ttc" id="class_c_every_n_time_periods_html"><div class="ttname"><a href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a></div><div class="ttdef"><b>Definition:</b> lib8tion.h:1006</div></div>
+<div class="ttc" id="group__lib8tion_html_gaa2facbc0ec935e34c629aef43d6262c0"><div class="ttname"><a href="group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0">floatToSfract15</a></div><div class="ttdeci">LIB8STATIC sfract15 floatToSfract15(float f)</div><div class="ttdoc">conversion from IEEE754 float in the range (-1,1) to 16-bit fixed point. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:393</div></div>
+<div class="ttc" id="group__lib8tion_html_gaa2abcee2fe76fafd7f3a2aeab03e3b69"><div class="ttname"><a href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a></div><div class="ttdeci">LIB8STATIC uint16_t seconds16()</div><div class="ttdoc">Return the current seconds since boot in a 16-bit value. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:903</div></div>
+<div class="ttc" id="group__lib8tion_html_ga52659d1994f2f21eb05080c97417e93b"><div class="ttname"><a href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a></div><div class="ttdeci">LIB8STATIC uint16_t bseconds16()</div><div class="ttdoc">bseconds16 returns the current time-since-boot in "binary seconds", which are actually 1024/1000 of a...</div><div class="ttdef"><b>Definition:</b> lib8tion.h:967</div></div>
+<div class="ttc" id="group__lib8tion_html_ga209d6cbdb109cc3139e7bb1e46c6228f"><div class="ttname"><a href="group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f">quadwave8</a></div><div class="ttdeci">LIB8STATIC uint8_t quadwave8(uint8_t in)</div><div class="ttdoc">quadwave8: quadratic waveform generator. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:684</div></div>
+<div class="ttc" id="class_c_every_n_time_periods_html"><div class="ttname"><a href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a></div><div class="ttdef"><b>Definition:</b> lib8tion.h:1018</div></div>
+<div class="ttc" id="group__lib8tion_html_gaf917825ff26c8e1174c5b674a2f3c631"><div class="ttname"><a href="group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631">beatsin88</a></div><div class="ttdeci">LIB8STATIC uint16_t beatsin88(accum88 beats_per_minute_88, uint16_t lowest=0, uint16_t highest=65535, uint32_t timebase=0, uint16_t phase_offset=0)</div><div class="ttdoc">beatsin88 generates a 16-bit sine wave at a given BPM, that oscillates within a given range...</div><div class="ttdef"><b>Definition:</b> lib8tion.h:863</div></div>
<div class="ttc" id="group___scaling_html_ga39579fcf09743f15545fe0b831ca313c"><div class="ttname"><a href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_LEAVING_R1_DIRTY(uint8_t i, fract8 scale)</div><div class="ttdoc">This version of scale8 does not clean up the R1 register on AVR If you are doing several &#39;scale8&#39;s in...</div><div class="ttdef"><b>Definition:</b> scale8.h:121</div></div>
+<div class="ttc" id="group__lib8tion_html_ga06b04a0cf955ec107d49b76e0cb35225"><div class="ttname"><a href="group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225">cubicwave8</a></div><div class="ttdeci">LIB8STATIC uint8_t cubicwave8(uint8_t in)</div><div class="ttdoc">cubicwave8: cubic waveform generator. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:691</div></div>
+<div class="ttc" id="group__lib8tion_html_ga1b48fc520db5f40910caf79974992395"><div class="ttname"><a href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a></div><div class="ttdeci">LIB8STATIC uint16_t beat88(accum88 beats_per_minute_88, uint32_t timebase=0)</div><div class="ttdoc">with BPM specified in Q8.8 fixed-point format; e.g. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:830</div></div>
+<div class="ttc" id="group__lib8tion_html_gaa041cdbb17f073dbd352fcae6962dc23"><div class="ttname"><a href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23">ease8InOutApprox</a></div><div class="ttdeci">LIB8STATIC fract8 ease8InOutApprox(fract8 i)</div><div class="ttdoc">ease8InOutApprox: fast, rough 8-bit ease-in/ease-out function shaped approximately like &#39;ease8InOutCu...</div><div class="ttdef"><b>Definition:</b> lib8tion.h:598</div></div>
+<div class="ttc" id="group__lib8tion_html_ga3fa6d71702477e71d7c0dd864eb1d568"><div class="ttname"><a href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568">ease8InOutCubic</a></div><div class="ttdeci">LIB8STATIC fract8 ease8InOutCubic(fract8 i)</div><div class="ttdoc">ease8InOutCubic: 8-bit cubic ease-in / ease-out function Takes around 18 cycles on AVR ...</div><div class="ttdef"><b>Definition:</b> lib8tion.h:569</div></div>
+<div class="ttc" id="group__lib8tion_html_ga12014943214a72eec31433d9682d4ebe"><div class="ttname"><a href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe">beat8</a></div><div class="ttdeci">LIB8STATIC uint8_t beat8(accum88 beats_per_minute, uint32_t timebase=0)</div><div class="ttdoc">beat8 generates an 8-bit &#39;sawtooth&#39; wave at a given BPM </div><div class="ttdef"><b>Definition:</b> lib8tion.h:852</div></div>
<div class="ttc" id="group___bitswap_html_ga01396a2e40133293c3badab349ac99f0"><div class="ttname"><a href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void swapbits8(bitswap_type in</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> fastled_delay.h:82</div></div>
-<div class="ttc" id="classq_html"><div class="ttname"><a href="classq.html">q</a></div><div class="ttdef"><b>Definition:</b> lib8tion.h:722</div></div>
+<div class="ttc" id="group__lib8tion_html_gae9e011ff745ade1164ae77b0ef62bfac"><div class="ttname"><a href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a></div><div class="ttdeci">LIB8STATIC uint8_t triwave8(uint8_t in)</div><div class="ttdoc">triwave8: triangle (sawtooth) wave generator. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:663</div></div>
+<div class="ttc" id="group__lib8tion_html_gaecd7cbfc2640407cabf75afcc7d9ddf4"><div class="ttname"><a href="group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4">beatsin8</a></div><div class="ttdeci">LIB8STATIC uint8_t beatsin8(accum88 beats_per_minute, uint8_t lowest=0, uint8_t highest=255, uint32_t timebase=0, uint8_t phase_offset=0)</div><div class="ttdoc">beatsin8 generates an 8-bit sine wave at a given BPM, that oscillates within a given range...</div><div class="ttdef"><b>Definition:</b> lib8tion.h:889</div></div>
+<div class="ttc" id="group__lib8tion_html_ga17ae8fcfd9c485bb1120d908f836637a"><div class="ttname"><a href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a">squarewave8</a></div><div class="ttdeci">LIB8STATIC uint8_t squarewave8(uint8_t in, uint8_t pulsewidth=128)</div><div class="ttdoc">squarewave8: square wave generator. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:720</div></div>
+<div class="ttc" id="group__lib8tion_html_gaacea0eaea98a065dfa08bb1c147c52a1"><div class="ttname"><a href="group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1">lerp15by8</a></div><div class="ttdeci">LIB8STATIC int16_t lerp15by8(int16_t a, int16_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two signed 15-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> lib8tion.h:487</div></div>
+<div class="ttc" id="classq_html"><div class="ttname"><a href="classq.html">q</a></div><div class="ttdef"><b>Definition:</b> lib8tion.h:733</div></div>
+<div class="ttc" id="group__lib8tion_html_gaf65357c7aeca9778e5a2f80a6bac2b5d"><div class="ttname"><a href="group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d">map8</a></div><div class="ttdeci">LIB8STATIC uint8_t map8(uint8_t in, uint8_t rangeStart, uint8_t rangeEnd)</div><div class="ttdoc">map8: map from one full-range 8-bit value into a narrower range of 8-bit values, possibly a range of ...</div><div class="ttdef"><b>Definition:</b> lib8tion.h:536</div></div>
+<div class="ttc" id="group__lib8tion_html_ga5f95d6e55b4986bd88f662528cef717e"><div class="ttname"><a href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e">div1024_32_16</a></div><div class="ttdeci">LIB8STATIC uint16_t div1024_32_16(uint32_t in32)</div><div class="ttdoc">Helper routine to divide a 32-bit value by 1024, returning only the low 16 bits. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:942</div></div>
+<div class="ttc" id="group__lib8tion_html_gab947c1150e3b9056cb91685a14270173"><div class="ttname"><a href="group__lib8tion.html#gab947c1150e3b9056cb91685a14270173">sfract15ToFloat</a></div><div class="ttdeci">LIB8STATIC float sfract15ToFloat(sfract15 y)</div><div class="ttdoc">sfract15ToFloat: conversion from sfract15 fixed point to IEEE754 32-bit float. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:384</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/math8_8h_source.html b/docs/3.1/math8_8h_source.html
index 2a940277..803e4b90 100644
--- a/docs/3.1/math8_8h_source.html
+++ b/docs/3.1/math8_8h_source.html
@@ -408,7 +408,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/md__m0-clocklessnotes.html b/docs/3.1/md__m0-clocklessnotes.html
index c28def2c..b9e28c64 100644
--- a/docs/3.1/md__m0-clocklessnotes.html
+++ b/docs/3.1/md__m0-clocklessnotes.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/md__p_o_r_t_i_n_g.html b/docs/3.1/md__p_o_r_t_i_n_g.html
index 03b189c7..42639fb6 100644
--- a/docs/3.1/md__p_o_r_t_i_n_g.html
+++ b/docs/3.1/md__p_o_r_t_i_n_g.html
@@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/md__r_e_a_d_m_e.html b/docs/3.1/md__r_e_a_d_m_e.html
index 7cbd0e48..25492a28 100644
--- a/docs/3.1/md__r_e_a_d_m_e.html
+++ b/docs/3.1/md__r_e_a_d_m_e.html
@@ -140,7 +140,7 @@ void loop() {
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/md__t_o_d_o.html b/docs/3.1/md__t_o_d_o.html
index 1885f363..4a087686 100644
--- a/docs/3.1/md__t_o_d_o.html
+++ b/docs/3.1/md__t_o_d_o.html
@@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/md_release_notes.html b/docs/3.1/md_release_notes.html
index 7e6613ab..63dbdacf 100644
--- a/docs/3.1/md_release_notes.html
+++ b/docs/3.1/md_release_notes.html
@@ -197,7 +197,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/modules.html b/docs/3.1/modules.html
index 8790f99e..2058db1e 100644
--- a/docs/3.1/modules.html
+++ b/docs/3.1/modules.html
@@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/noise_8h.html b/docs/3.1/noise_8h.html
index b55445a2..443fba54 100644
--- a/docs/3.1/noise_8h.html
+++ b/docs/3.1/noise_8h.html
@@ -200,7 +200,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise16</b> (<
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/noise_8h_source.html b/docs/3.1/noise_8h_source.html
index 8972fd82..25b6dc0b 100644
--- a/docs/3.1/noise_8h_source.html
+++ b/docs/3.1/noise_8h_source.html
@@ -139,11 +139,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
<div class="ttc" id="group___noise_html_ga810bdc406dcf8fd5b7add9041aa18abd"><div class="ttname"><a href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a></div><div class="ttdeci">int16_t inoise16_raw(uint32_t x, uint32_t y, uint32_t z)</div><div class="ttdoc">16 bit raw versions of the noise functions. </div><div class="ttdef"><b>Definition:</b> noise.cpp:245</div></div>
-<div class="ttc" id="classq_html"><div class="ttname"><a href="classq.html">q</a></div><div class="ttdef"><b>Definition:</b> lib8tion.h:722</div></div>
+<div class="ttc" id="classq_html"><div class="ttname"><a href="classq.html">q</a></div><div class="ttdef"><b>Definition:</b> lib8tion.h:733</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/pages.html b/docs/3.1/pages.html
index a7cb9381..4e8dcca2 100644
--- a/docs/3.1/pages.html
+++ b/docs/3.1/pages.html
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/pixeltypes_8h_source.html b/docs/3.1/pixeltypes_8h_source.html
index 2b4724b0..450074c2 100644
--- a/docs/3.1/pixeltypes_8h_source.html
+++ b/docs/3.1/pixeltypes_8h_source.html
@@ -533,9 +533,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; {</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; ret.r = lerp8by8(r,other.r,frac);</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; ret.g = lerp8by8(g,other.g,frac);</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; ret.b = lerp8by8(b,other.b,frac);</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; ret.r = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(r,other.r,frac);</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; ret.g = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(g,other.g,frac);</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; ret.b = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(b,other.b,frac);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">return</span> ret;</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div>
@@ -544,9 +544,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; {</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; ret.r = lerp16by16(r&lt;&lt;8,other.r&lt;&lt;8,frac)&gt;&gt;8;</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; ret.g = lerp16by16(g&lt;&lt;8,other.g&lt;&lt;8,frac)&gt;&gt;8;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; ret.b = lerp16by16(b&lt;&lt;8,other.b&lt;&lt;8,frac)&gt;&gt;8;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; ret.r = <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>(r&lt;&lt;8,other.r&lt;&lt;8,frac)&gt;&gt;8;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; ret.g = <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>(g&lt;&lt;8,other.g&lt;&lt;8,frac)&gt;&gt;8;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; ret.b = <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>(b&lt;&lt;8,other.b&lt;&lt;8,frac)&gt;&gt;8;</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> ret;</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
@@ -907,6 +907,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="group___math_html_ga9d113e85065df7c9006704ea6b6dcda4"><div class="ttname"><a href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a></div><div class="ttdeci">LIB8STATIC uint8_t qmul8(uint8_t i, uint8_t j)</div><div class="ttdoc">saturating 8x8 bit multiplication, with 8 bit result </div><div class="ttdef"><b>Definition:</b> math8.h:267</div></div>
<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
+<div class="ttc" id="group__lib8tion_html_ga62ed4425400bc4140902347dc54ffb72"><div class="ttname"><a href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a></div><div class="ttdeci">LIB8STATIC uint8_t lerp8by8(uint8_t a, uint8_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two unsigned 8-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> lib8tion.h:436</div></div>
+<div class="ttc" id="group__lib8tion_html_ga7c02960d0f26e90054c7312e5f9a55b3"><div class="ttname"><a href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a></div><div class="ttdeci">LIB8STATIC uint16_t lerp16by16(uint16_t a, uint16_t b, fract16 frac)</div><div class="ttdoc">linear interpolation between two unsigned 16-bit values, with 16-bit fraction </div><div class="ttdef"><b>Definition:</b> lib8tion.h:453</div></div>
<div class="ttc" id="group___math_html_gaaaa16f47aca46653d51793b1af177587"><div class="ttname"><a href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a></div><div class="ttdeci">LIB8STATIC uint8_t qsub8(uint8_t i, uint8_t j)</div><div class="ttdoc">subtract one byte from another, saturating at 0x00 </div><div class="ttdef"><b>Definition:</b> math8.h:86</div></div>
<div class="ttc" id="group___math_html_ga38e9f9a8830353f9cbfecad7c8758b1f"><div class="ttname"><a href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a></div><div class="ttdeci">LIB8STATIC uint8_t qadd8(uint8_t i, uint8_t j)</div><div class="ttdoc">add one byte to another, saturating at 0xFF </div><div class="ttdef"><b>Definition:</b> math8.h:21</div></div>
<div class="ttc" id="group___scaling_html_ga700b7f510f32e8c91385093c436c27d9"><div class="ttname"><a href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a></div><div class="ttdeci">LIB8STATIC void nscale8x3_video(uint8_t &amp;r, uint8_t &amp;g, uint8_t &amp;b, fract8 scale)</div><div class="ttdoc">scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose de...</div><div class="ttdef"><b>Definition:</b> scale8.h:282</div></div>
@@ -920,7 +922,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/platforms_8h_source.html b/docs/3.1/platforms_8h_source.html
index a79e9eba..e902c0f8 100644
--- a/docs/3.1/platforms_8h_source.html
+++ b/docs/3.1/platforms_8h_source.html
@@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/power__mgt_8h_source.html b/docs/3.1/power__mgt_8h_source.html
index 1e3e7ba3..c40566df 100644
--- a/docs/3.1/power__mgt_8h_source.html
+++ b/docs/3.1/power__mgt_8h_source.html
@@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/random8_8h_source.html b/docs/3.1/random8_8h_source.html
index 1efb0fb3..c2efcf21 100644
--- a/docs/3.1/random8_8h_source.html
+++ b/docs/3.1/random8_8h_source.html
@@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/scale8_8h_source.html b/docs/3.1/scale8_8h_source.html
index a4e5cb87..d9c80a4f 100644
--- a/docs/3.1/scale8_8h_source.html
+++ b/docs/3.1/scale8_8h_source.html
@@ -540,7 +540,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/search/all_10.js b/docs/3.1/search/all_10.js
index 483676f6..4d4825d0 100644
--- a/docs/3.1/search/all_10.js
+++ b/docs/3.1/search/all_10.js
@@ -4,5 +4,6 @@ var searchData=
['qadd7',['qadd7',['../group___math.html#gadf60ccff727f52078aecdd5873b6f0bc',1,'math8.h']]],
['qadd8',['qadd8',['../group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f',1,'math8.h']]],
['qmul8',['qmul8',['../group___math.html#ga9d113e85065df7c9006704ea6b6dcda4',1,'math8.h']]],
- ['qsub8',['qsub8',['../group___math.html#gaaaa16f47aca46653d51793b1af177587',1,'math8.h']]]
+ ['qsub8',['qsub8',['../group___math.html#gaaaa16f47aca46653d51793b1af177587',1,'math8.h']]],
+ ['quadwave8',['quadwave8',['../group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/all_12.js b/docs/3.1/search/all_12.js
index 0f1aaa0a..71534e3a 100644
--- a/docs/3.1/search/all_12.js
+++ b/docs/3.1/search/all_12.js
@@ -7,6 +7,7 @@ var searchData=
['scale8_5fvideo',['scale8_video',['../group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1',1,'scale8.h']]],
['scale8_5fvideo_5fleaving_5fr1_5fdirty',['scale8_video_LEAVING_R1_DIRTY',['../group___scaling.html#gab341cef8d46232269bb70092fed9eb75',1,'scale8.h']]],
['scaling_20functions',['Scaling functions',['../group___scaling.html',1,'']]],
+ ['seconds16',['seconds16',['../group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69',1,'lib8tion.h']]],
['selectable',['Selectable',['../class_selectable.html',1,'']]],
['setbrightness',['setBrightness',['../class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb',1,'CFastLED']]],
['setcorrection',['setCorrection',['../class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8',1,'CLEDController::setCorrection(CRGB correction)'],['../class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9',1,'CLEDController::setCorrection(LEDColorCorrection correction)'],['../class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282',1,'CFastLED::setCorrection()']]],
@@ -14,9 +15,14 @@ var searchData=
['setleds',['setLeds',['../class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037',1,'CLEDController']]],
['setmaxrefreshrate',['setMaxRefreshRate',['../class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1',1,'CFastLED']]],
['settemperature',['setTemperature',['../class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883',1,'CLEDController::setTemperature(CRGB temperature)'],['../class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4',1,'CLEDController::setTemperature(ColorTemperature temperature)'],['../class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f',1,'CFastLED::setTemperature()']]],
+ ['sfract15tofloat',['sfract15ToFloat',['../group__lib8tion.html#gab947c1150e3b9056cb91685a14270173',1,'lib8tion.h']]],
['show',['show',['../class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5',1,'LPD8806Controller::show()'],['../class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0',1,'WS2801Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0',1,'WS2801Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332',1,'APA102Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332',1,'APA102Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81',1,'P9813Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81',1,'P9813Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d',1,'SM16716Controller::show()'],['../class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f',1,'CLEDController::show(const struct CRGB *data, int nLeds, CRGB scale)=0'],['../class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb',1,'CLEDController::show(const struct CRGB *data, int nLeds, uint8_t brightness)'],['../class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186',1,'DMXSimpleController::show()'],['../class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1',1,'DMXSerialController::show()'],['../class_c_fast_l_e_d.html#a83afdd1e2a21f33ac4f8d2610d6e331b',1,'CFastLED::show(uint8_t scale)'],['../class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de',1,'CFastLED::show()']]],
['showcolor',['showColor',['../class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259',1,'LPD8806Controller::showColor()'],['../class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501',1,'WS2801Controller::showColor()'],['../class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428',1,'APA102Controller::showColor()'],['../class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a',1,'P9813Controller::showColor()'],['../class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677',1,'SM16716Controller::showColor()'],['../class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)=0'],['../class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, uint8_t brightness)'],['../class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4',1,'CLEDController::showColor(const struct CRGB &amp;data, uint8_t brightness=255)'],['../class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1',1,'DMXSimpleController::showColor()'],['../class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b',1,'DMXSerialController::showColor()'],['../class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0',1,'CFastLED::showColor(const struct CRGB &amp;color, uint8_t scale)'],['../class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9',1,'CFastLED::showColor(const struct CRGB &amp;color)']]],
['showleds',['showLeds',['../class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076',1,'CLEDController']]],
+ ['sin16_5favr',['sin16_avr',['../group___trig.html#ga660ff60bfc5116525e50187de72009fc',1,'trig8.h']]],
+ ['sin16_5fc',['sin16_C',['../group___trig.html#ga0890962cb06b267617f4b06d7e9be5eb',1,'trig8.h']]],
+ ['sin8_5favr',['sin8_avr',['../group___trig.html#ga6aa1f993cbbc427d80da1ee2ccca86e7',1,'trig8.h']]],
+ ['sin8_5fc',['sin8_C',['../group___trig.html#ga46933a9b42921c6605588268d11f7c1e',1,'trig8.h']]],
['size',['size',['../class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08',1,'CLEDController::size()'],['../class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0',1,'CFastLED::size()']]],
['sm16716controller',['SM16716Controller',['../class_s_m16716_controller.html',1,'']]],
['softwarespioutput',['SoftwareSPIOutput',['../class_software_s_p_i_output.html',1,'']]],
@@ -29,6 +35,7 @@ var searchData=
['spioutput_3c_20spi_5fuart0_5fdata_2c_20spi_5fuart0_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED &gt;',['../class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html',1,'']]],
['spioutput_3c_20spi_5fuart1_5fdata_2c_20spi_5fuart1_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED &gt;',['../class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html',1,'']]],
['sqrt16',['sqrt16',['../group___math.html#ga66ecef97faa5f9b92c49766651c5afe9',1,'math8.h']]],
+ ['squarewave8',['squarewave8',['../group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a',1,'lib8tion.h']]],
['sub4',['sub4',['../structsub4.html',1,'']]],
['sub8',['sub8',['../group___math.html#ga0c40c15ab5af36ddabded161941f2091',1,'math8.h']]]
];
diff --git a/docs/3.1/search/all_13.js b/docs/3.1/search/all_13.js
index e7a08ef0..1c5c95ab 100644
--- a/docs/3.1/search/all_13.js
+++ b/docs/3.1/search/all_13.js
@@ -12,6 +12,7 @@ var searchData=
['tm1829controller800khz',['TM1829Controller800Khz',['../class_t_m1829_controller800_khz.html',1,'']]],
['todo_20list',['Todo List',['../todo.html',1,'']]],
['trgbgradientpaletteentryunion',['TRGBGradientPaletteEntryUnion',['../union_t_r_g_b_gradient_palette_entry_union.html',1,'']]],
+ ['triwave8',['triwave8',['../group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac',1,'lib8tion.h']]],
['tungsten100w',['Tungsten100W',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48',1,'color.h']]],
['tungsten40w',['Tungsten40W',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91',1,'color.h']]],
['typical8mmpixel',['Typical8mmPixel',['../group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b',1,'color.h']]],
diff --git a/docs/3.1/search/all_2.js b/docs/3.1/search/all_2.js
index 2115ee55..75be7635 100644
--- a/docs/3.1/search/all_2.js
+++ b/docs/3.1/search/all_2.js
@@ -1,10 +1,17 @@
var searchData=
[
+ ['beat16',['beat16',['../group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2',1,'lib8tion.h']]],
+ ['beat8',['beat8',['../group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe',1,'lib8tion.h']]],
+ ['beat88',['beat88',['../group__lib8tion.html#ga1b48fc520db5f40910caf79974992395',1,'lib8tion.h']]],
+ ['beatsin16',['beatsin16',['../group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b',1,'lib8tion.h']]],
+ ['beatsin8',['beatsin8',['../group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4',1,'lib8tion.h']]],
+ ['beatsin88',['beatsin88',['../group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631',1,'lib8tion.h']]],
['bit_20swapping_2frotate',['Bit swapping/rotate',['../group___bitswap.html',1,'']]],
['bitswap_2eh',['bitswap.h',['../bitswap_8h.html',1,'']]],
['bitswap_5ftype',['bitswap_type',['../unionbitswap__type.html',1,'']]],
['brighten8_5flin',['brighten8_lin',['../group___dimming.html#ga094bda002b416c66e57521fc93878830',1,'scale8.h']]],
['brighten8_5fraw',['brighten8_raw',['../group___dimming.html#gae8e36472a70f3016595048532d6c3a2d',1,'scale8.h']]],
['brighten8_5fvideo',['brighten8_video',['../group___dimming.html#gad21876a676bcf26c47f957faed23f9bb',1,'scale8.h']]],
+ ['bseconds16',['bseconds16',['../group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b',1,'lib8tion.h']]],
['basic_20math_20operations',['Basic math operations',['../group___math.html',1,'']]]
];
diff --git a/docs/3.1/search/all_3.js b/docs/3.1/search/all_3.js
index 89405c2c..26def6a4 100644
--- a/docs/3.1/search/all_3.js
+++ b/docs/3.1/search/all_3.js
@@ -18,9 +18,12 @@ var searchData=
['color_20correction_2ftemperature',['Color correction/temperature',['../group___color_enums.html',1,'']]],
['colortemperature',['ColorTemperature',['../group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9',1,'color.h']]],
['color_20utility_20functions',['Color utility functions',['../group___colorutils.html',1,'']]],
+ ['cos16',['cos16',['../group___trig.html#ga056952ebed39f55880bb353857b47075',1,'trig8.h']]],
+ ['cos8',['cos8',['../group___trig.html#ga4432f985c94f5bff715db402d767b0e8',1,'trig8.h']]],
['count',['count',['../class_c_fast_l_e_d.html#ae5730545ea18b1f5228172f9d246beb6',1,'CFastLED']]],
['countfps',['countFPS',['../class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32',1,'CFastLED']]],
['crgb',['CRGB',['../struct_c_r_g_b.html',1,'']]],
['crgbpalette16',['CRGBPalette16',['../class_c_r_g_b_palette16.html',1,'']]],
- ['crgbpalette256',['CRGBPalette256',['../class_c_r_g_b_palette256.html',1,'']]]
+ ['crgbpalette256',['CRGBPalette256',['../class_c_r_g_b_palette256.html',1,'']]],
+ ['cubicwave8',['cubicwave8',['../group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/all_4.js b/docs/3.1/search/all_4.js
index 8bb91ba5..9808a486 100644
--- a/docs/3.1/search/all_4.js
+++ b/docs/3.1/search/all_4.js
@@ -7,6 +7,7 @@ var searchData=
['dim8_5fvideo',['dim8_video',['../group___dimming.html#ga40a13446a2022dc489be8b2a8f2fa494',1,'scale8.h']]],
['dimming_20and_20brightening_20functions',['Dimming and brightening functions',['../group___dimming.html',1,'']]],
['directsunlight',['DirectSunlight',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621',1,'color.h']]],
+ ['div1024_5f32_5f16',['div1024_32_16',['../group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e',1,'lib8tion.h']]],
['dmxserial',['DMXSERIAL',['../class_d_m_x_s_e_r_i_a_l.html',1,'']]],
['dmxserialcontroller',['DMXSerialController',['../class_d_m_x_serial_controller.html',1,'']]],
['dmxsimple',['DMXSIMPLE',['../class_d_m_x_s_i_m_p_l_e.html',1,'']]],
diff --git a/docs/3.1/search/all_5.js b/docs/3.1/search/all_5.js
index bace709d..3194818e 100644
--- a/docs/3.1/search/all_5.js
+++ b/docs/3.1/search/all_5.js
@@ -1,4 +1,7 @@
var searchData=
[
+ ['ease8inoutapprox',['ease8InOutApprox',['../group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23',1,'lib8tion.h']]],
+ ['ease8inoutcubic',['ease8InOutCubic',['../group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568',1,'lib8tion.h']]],
+ ['ease8inoutquad',['ease8InOutQuad',['../group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0',1,'lib8tion.h']]],
['enable_5fdithering',['enable_dithering',['../struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3',1,'PixelController']]]
];
diff --git a/docs/3.1/search/all_6.js b/docs/3.1/search/all_6.js
index 9dcf8bd8..852af997 100644
--- a/docs/3.1/search/all_6.js
+++ b/docs/3.1/search/all_6.js
@@ -7,6 +7,7 @@ var searchData=
['fill_5frainbow',['fill_rainbow',['../group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2',1,'fill_rainbow(struct CRGB *pFirstLED, int numToFill, uint8_t initialhue, uint8_t deltahue):&#160;colorutils.cpp'],['../group___colorutils.html#gac3052a230febda0693517ce9d12aa452',1,'fill_rainbow(struct CHSV *targetArray, int numToFill, uint8_t initialhue, uint8_t deltahue):&#160;colorutils.cpp'],['../group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2',1,'fill_rainbow(struct CRGB *pFirstLED, int numToFill, uint8_t initialhue, uint8_t deltahue=5):&#160;colorutils.cpp'],['../group___colorutils.html#gac3052a230febda0693517ce9d12aa452',1,'fill_rainbow(struct CHSV *targetArray, int numToFill, uint8_t initialhue, uint8_t deltahue=5):&#160;colorutils.cpp']]],
['fill_5fsolid',['fill_solid',['../group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b',1,'fill_solid(struct CRGB *leds, int numToFill, const struct CRGB &amp;color):&#160;colorutils.cpp'],['../group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed',1,'fill_solid(struct CHSV *targetArray, int numToFill, const struct CHSV &amp;hsvColor):&#160;colorutils.cpp'],['../group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b',1,'fill_solid(struct CRGB *leds, int numToFill, const struct CRGB &amp;color):&#160;colorutils.cpp'],['../group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed',1,'fill_solid(struct CHSV *targetArray, int numToFill, const struct CHSV &amp;hsvColor):&#160;colorutils.cpp']]],
['fl_5fprogmem',['FL_PROGMEM',['../group___colorpalletes.html#ga57a38373661043f74b292976e83c687b',1,'FL_PROGMEM():&#160;colorpalettes.cpp'],['../group___colorpalletes.html#ga57a38373661043f74b292976e83c687b',1,'FL_PROGMEM():&#160;colorpalettes.h']]],
+ ['floattosfract15',['floatToSfract15',['../group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0',1,'lib8tion.h']]],
['fast_20math_20functions',['Fast math functions',['../group__lib8tion.html',1,'']]],
['fastled3_2e0',['FastLED3.0',['../md_release_notes.html',1,'']]],
['fast_20random_20number_20generators',['Fast random number generators',['../group___random.html',1,'']]],
diff --git a/docs/3.1/search/all_8.js b/docs/3.1/search/all_8.js
index f5520fd4..8318353f 100644
--- a/docs/3.1/search/all_8.js
+++ b/docs/3.1/search/all_8.js
@@ -2,5 +2,6 @@ var searchData=
[
['halogen',['Halogen',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79',1,'color.h']]],
['head',['head',['../class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0',1,'CLEDController']]],
- ['highnoonsun',['HighNoonSun',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76',1,'color.h']]]
+ ['highnoonsun',['HighNoonSun',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76',1,'color.h']]],
+ ['hours8',['hours8',['../group__lib8tion.html#ga837f5a688998f3340994613944e47d41',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/all_b.js b/docs/3.1/search/all_b.js
index ddd4d306..f3bf2c6b 100644
--- a/docs/3.1/search/all_b.js
+++ b/docs/3.1/search/all_b.js
@@ -2,6 +2,11 @@ var searchData=
[
['ledcolorcorrection',['LEDColorCorrection',['../group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8',1,'color.h']]],
['leds',['leds',['../class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399',1,'CLEDController::leds()'],['../class_c_fast_l_e_d.html#ae3c0a81b88fb64a65725cb2fed67f766',1,'CFastLED::leds()']]],
+ ['lerp15by16',['lerp15by16',['../group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5',1,'lib8tion.h']]],
+ ['lerp15by8',['lerp15by8',['../group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1',1,'lib8tion.h']]],
+ ['lerp16by16',['lerp16by16',['../group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3',1,'lib8tion.h']]],
+ ['lerp16by8',['lerp16by8',['../group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251',1,'lib8tion.h']]],
+ ['lerp8by8',['lerp8by8',['../group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72',1,'lib8tion.h']]],
['lpd1886',['LPD1886',['../class_l_p_d1886.html',1,'']]],
['lpd1886controller1250khz',['LPD1886Controller1250Khz',['../class_l_p_d1886_controller1250_khz.html',1,'']]],
['lpd8806controller',['LPD8806Controller',['../class_l_p_d8806_controller.html',1,'']]]
diff --git a/docs/3.1/search/all_c.js b/docs/3.1/search/all_c.js
index c85c3e10..874903db 100644
--- a/docs/3.1/search/all_c.js
+++ b/docs/3.1/search/all_c.js
@@ -1,6 +1,8 @@
var searchData=
[
+ ['map8',['map8',['../group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d',1,'lib8tion.h']]],
['m0_2dclocklessnotes',['M0-clocklessnotes',['../md__m0-clocklessnotes.html',1,'']]],
+ ['minutes16',['minutes16',['../group__lib8tion.html#ga223820399921e32ddf018a90223ff336',1,'lib8tion.h']]],
['mod8',['mod8',['../group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88',1,'math8.h']]],
['mul8',['mul8',['../group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f',1,'math8.h']]],
['multipixelcontroller',['MultiPixelController',['../struct_multi_pixel_controller.html',1,'']]]
diff --git a/docs/3.1/search/functions_11.js b/docs/3.1/search/functions_11.js
index bd8f1a05..0eda8d4a 100644
--- a/docs/3.1/search/functions_11.js
+++ b/docs/3.1/search/functions_11.js
@@ -6,16 +6,23 @@ var searchData=
['scale8_5fleaving_5fr1_5fdirty',['scale8_LEAVING_R1_DIRTY',['../group___scaling.html#ga39579fcf09743f15545fe0b831ca313c',1,'scale8.h']]],
['scale8_5fvideo',['scale8_video',['../group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1',1,'scale8.h']]],
['scale8_5fvideo_5fleaving_5fr1_5fdirty',['scale8_video_LEAVING_R1_DIRTY',['../group___scaling.html#gab341cef8d46232269bb70092fed9eb75',1,'scale8.h']]],
+ ['seconds16',['seconds16',['../group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69',1,'lib8tion.h']]],
['setbrightness',['setBrightness',['../class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb',1,'CFastLED']]],
['setcorrection',['setCorrection',['../class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8',1,'CLEDController::setCorrection(CRGB correction)'],['../class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9',1,'CLEDController::setCorrection(LEDColorCorrection correction)'],['../class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282',1,'CFastLED::setCorrection()']]],
['setdither',['setDither',['../class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517',1,'CLEDController::setDither()'],['../class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36',1,'CFastLED::setDither()']]],
['setleds',['setLeds',['../class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037',1,'CLEDController']]],
['setmaxrefreshrate',['setMaxRefreshRate',['../class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1',1,'CFastLED']]],
['settemperature',['setTemperature',['../class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883',1,'CLEDController::setTemperature(CRGB temperature)'],['../class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4',1,'CLEDController::setTemperature(ColorTemperature temperature)'],['../class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f',1,'CFastLED::setTemperature()']]],
+ ['sfract15tofloat',['sfract15ToFloat',['../group__lib8tion.html#gab947c1150e3b9056cb91685a14270173',1,'lib8tion.h']]],
['show',['show',['../class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5',1,'LPD8806Controller::show()'],['../class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0',1,'WS2801Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0',1,'WS2801Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332',1,'APA102Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332',1,'APA102Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81',1,'P9813Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81',1,'P9813Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d',1,'SM16716Controller::show()'],['../class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f',1,'CLEDController::show(const struct CRGB *data, int nLeds, CRGB scale)=0'],['../class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb',1,'CLEDController::show(const struct CRGB *data, int nLeds, uint8_t brightness)'],['../class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186',1,'DMXSimpleController::show()'],['../class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1',1,'DMXSerialController::show()'],['../class_c_fast_l_e_d.html#a83afdd1e2a21f33ac4f8d2610d6e331b',1,'CFastLED::show(uint8_t scale)'],['../class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de',1,'CFastLED::show()']]],
['showcolor',['showColor',['../class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259',1,'LPD8806Controller::showColor()'],['../class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501',1,'WS2801Controller::showColor()'],['../class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428',1,'APA102Controller::showColor()'],['../class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a',1,'P9813Controller::showColor()'],['../class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677',1,'SM16716Controller::showColor()'],['../class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)=0'],['../class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, uint8_t brightness)'],['../class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4',1,'CLEDController::showColor(const struct CRGB &amp;data, uint8_t brightness=255)'],['../class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1',1,'DMXSimpleController::showColor()'],['../class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b',1,'DMXSerialController::showColor()'],['../class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0',1,'CFastLED::showColor(const struct CRGB &amp;color, uint8_t scale)'],['../class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9',1,'CFastLED::showColor(const struct CRGB &amp;color)']]],
['showleds',['showLeds',['../class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076',1,'CLEDController']]],
+ ['sin16_5favr',['sin16_avr',['../group___trig.html#ga660ff60bfc5116525e50187de72009fc',1,'trig8.h']]],
+ ['sin16_5fc',['sin16_C',['../group___trig.html#ga0890962cb06b267617f4b06d7e9be5eb',1,'trig8.h']]],
+ ['sin8_5favr',['sin8_avr',['../group___trig.html#ga6aa1f993cbbc427d80da1ee2ccca86e7',1,'trig8.h']]],
+ ['sin8_5fc',['sin8_C',['../group___trig.html#ga46933a9b42921c6605588268d11f7c1e',1,'trig8.h']]],
['size',['size',['../class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08',1,'CLEDController::size()'],['../class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0',1,'CFastLED::size()']]],
['sqrt16',['sqrt16',['../group___math.html#ga66ecef97faa5f9b92c49766651c5afe9',1,'math8.h']]],
+ ['squarewave8',['squarewave8',['../group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a',1,'lib8tion.h']]],
['sub8',['sub8',['../group___math.html#ga0c40c15ab5af36ddabded161941f2091',1,'math8.h']]]
];
diff --git a/docs/3.1/search/functions_2.js b/docs/3.1/search/functions_2.js
index 278c3885..734532bb 100644
--- a/docs/3.1/search/functions_2.js
+++ b/docs/3.1/search/functions_2.js
@@ -1,6 +1,13 @@
var searchData=
[
+ ['beat16',['beat16',['../group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2',1,'lib8tion.h']]],
+ ['beat8',['beat8',['../group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe',1,'lib8tion.h']]],
+ ['beat88',['beat88',['../group__lib8tion.html#ga1b48fc520db5f40910caf79974992395',1,'lib8tion.h']]],
+ ['beatsin16',['beatsin16',['../group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b',1,'lib8tion.h']]],
+ ['beatsin8',['beatsin8',['../group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4',1,'lib8tion.h']]],
+ ['beatsin88',['beatsin88',['../group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631',1,'lib8tion.h']]],
['brighten8_5flin',['brighten8_lin',['../group___dimming.html#ga094bda002b416c66e57521fc93878830',1,'scale8.h']]],
['brighten8_5fraw',['brighten8_raw',['../group___dimming.html#gae8e36472a70f3016595048532d6c3a2d',1,'scale8.h']]],
- ['brighten8_5fvideo',['brighten8_video',['../group___dimming.html#gad21876a676bcf26c47f957faed23f9bb',1,'scale8.h']]]
+ ['brighten8_5fvideo',['brighten8_video',['../group___dimming.html#gad21876a676bcf26c47f957faed23f9bb',1,'scale8.h']]],
+ ['bseconds16',['bseconds16',['../group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/functions_3.js b/docs/3.1/search/functions_3.js
index b487a87a..7046f53f 100644
--- a/docs/3.1/search/functions_3.js
+++ b/docs/3.1/search/functions_3.js
@@ -6,6 +6,9 @@ var searchData=
['clearleddata',['clearLedData',['../class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52',1,'CLEDController']]],
['clearleds',['clearLeds',['../class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e',1,'LPD8806Controller::clearLeds()'],['../class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c',1,'WS2801Controller::clearLeds()'],['../class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb',1,'APA102Controller::clearLeds()'],['../class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c',1,'P9813Controller::clearLeds()'],['../class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8',1,'SM16716Controller::clearLeds()'],['../class_c_l_e_d_controller.html#adfa6601c84fefd733904b32ac98b6dae',1,'CLEDController::clearLeds()'],['../class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e',1,'DMXSimpleController::clearLeds()'],['../class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129',1,'DMXSerialController::clearLeds()']]],
['cledcontroller',['CLEDController',['../class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32',1,'CLEDController']]],
+ ['cos16',['cos16',['../group___trig.html#ga056952ebed39f55880bb353857b47075',1,'trig8.h']]],
+ ['cos8',['cos8',['../group___trig.html#ga4432f985c94f5bff715db402d767b0e8',1,'trig8.h']]],
['count',['count',['../class_c_fast_l_e_d.html#ae5730545ea18b1f5228172f9d246beb6',1,'CFastLED']]],
- ['countfps',['countFPS',['../class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32',1,'CFastLED']]]
+ ['countfps',['countFPS',['../class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32',1,'CFastLED']]],
+ ['cubicwave8',['cubicwave8',['../group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/functions_4.js b/docs/3.1/search/functions_4.js
index e12efa05..e9fa4ed5 100644
--- a/docs/3.1/search/functions_4.js
+++ b/docs/3.1/search/functions_4.js
@@ -3,5 +3,6 @@ var searchData=
['delay',['delay',['../class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202',1,'CFastLED']]],
['dim8_5flin',['dim8_lin',['../group___dimming.html#ga3f94d2455e0aa92133f77af8747b5914',1,'scale8.h']]],
['dim8_5fraw',['dim8_raw',['../group___dimming.html#gae51352a3522bb8eae5e17dbee97aa1aa',1,'scale8.h']]],
- ['dim8_5fvideo',['dim8_video',['../group___dimming.html#ga40a13446a2022dc489be8b2a8f2fa494',1,'scale8.h']]]
+ ['dim8_5fvideo',['dim8_video',['../group___dimming.html#ga40a13446a2022dc489be8b2a8f2fa494',1,'scale8.h']]],
+ ['div1024_5f32_5f16',['div1024_32_16',['../group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/functions_5.js b/docs/3.1/search/functions_5.js
index bace709d..3194818e 100644
--- a/docs/3.1/search/functions_5.js
+++ b/docs/3.1/search/functions_5.js
@@ -1,4 +1,7 @@
var searchData=
[
+ ['ease8inoutapprox',['ease8InOutApprox',['../group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23',1,'lib8tion.h']]],
+ ['ease8inoutcubic',['ease8InOutCubic',['../group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568',1,'lib8tion.h']]],
+ ['ease8inoutquad',['ease8InOutQuad',['../group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0',1,'lib8tion.h']]],
['enable_5fdithering',['enable_dithering',['../struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3',1,'PixelController']]]
];
diff --git a/docs/3.1/search/functions_6.js b/docs/3.1/search/functions_6.js
index a076edd8..9928b09d 100644
--- a/docs/3.1/search/functions_6.js
+++ b/docs/3.1/search/functions_6.js
@@ -2,5 +2,6 @@ var searchData=
[
['fill_5fgradient',['fill_gradient',['../group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98',1,'colorutils.h']]],
['fill_5frainbow',['fill_rainbow',['../group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2',1,'fill_rainbow(struct CRGB *pFirstLED, int numToFill, uint8_t initialhue, uint8_t deltahue):&#160;colorutils.cpp'],['../group___colorutils.html#gac3052a230febda0693517ce9d12aa452',1,'fill_rainbow(struct CHSV *targetArray, int numToFill, uint8_t initialhue, uint8_t deltahue):&#160;colorutils.cpp'],['../group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2',1,'fill_rainbow(struct CRGB *pFirstLED, int numToFill, uint8_t initialhue, uint8_t deltahue=5):&#160;colorutils.cpp'],['../group___colorutils.html#gac3052a230febda0693517ce9d12aa452',1,'fill_rainbow(struct CHSV *targetArray, int numToFill, uint8_t initialhue, uint8_t deltahue=5):&#160;colorutils.cpp']]],
- ['fill_5fsolid',['fill_solid',['../group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b',1,'fill_solid(struct CRGB *leds, int numToFill, const struct CRGB &amp;color):&#160;colorutils.cpp'],['../group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed',1,'fill_solid(struct CHSV *targetArray, int numToFill, const struct CHSV &amp;hsvColor):&#160;colorutils.cpp'],['../group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b',1,'fill_solid(struct CRGB *leds, int numToFill, const struct CRGB &amp;color):&#160;colorutils.cpp'],['../group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed',1,'fill_solid(struct CHSV *targetArray, int numToFill, const struct CHSV &amp;hsvColor):&#160;colorutils.cpp']]]
+ ['fill_5fsolid',['fill_solid',['../group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b',1,'fill_solid(struct CRGB *leds, int numToFill, const struct CRGB &amp;color):&#160;colorutils.cpp'],['../group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed',1,'fill_solid(struct CHSV *targetArray, int numToFill, const struct CHSV &amp;hsvColor):&#160;colorutils.cpp'],['../group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b',1,'fill_solid(struct CRGB *leds, int numToFill, const struct CRGB &amp;color):&#160;colorutils.cpp'],['../group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed',1,'fill_solid(struct CHSV *targetArray, int numToFill, const struct CHSV &amp;hsvColor):&#160;colorutils.cpp']]],
+ ['floattosfract15',['floatToSfract15',['../group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/functions_8.js b/docs/3.1/search/functions_8.js
index c14710b3..0fd2e25a 100644
--- a/docs/3.1/search/functions_8.js
+++ b/docs/3.1/search/functions_8.js
@@ -1,4 +1,5 @@
var searchData=
[
- ['head',['head',['../class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0',1,'CLEDController']]]
+ ['head',['head',['../class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0',1,'CLEDController']]],
+ ['hours8',['hours8',['../group__lib8tion.html#ga837f5a688998f3340994613944e47d41',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/functions_a.js b/docs/3.1/search/functions_a.js
index c0e202e7..f4d21a1e 100644
--- a/docs/3.1/search/functions_a.js
+++ b/docs/3.1/search/functions_a.js
@@ -1,4 +1,9 @@
var searchData=
[
- ['leds',['leds',['../class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399',1,'CLEDController::leds()'],['../class_c_fast_l_e_d.html#ae3c0a81b88fb64a65725cb2fed67f766',1,'CFastLED::leds()']]]
+ ['leds',['leds',['../class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399',1,'CLEDController::leds()'],['../class_c_fast_l_e_d.html#ae3c0a81b88fb64a65725cb2fed67f766',1,'CFastLED::leds()']]],
+ ['lerp15by16',['lerp15by16',['../group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5',1,'lib8tion.h']]],
+ ['lerp15by8',['lerp15by8',['../group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1',1,'lib8tion.h']]],
+ ['lerp16by16',['lerp16by16',['../group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3',1,'lib8tion.h']]],
+ ['lerp16by8',['lerp16by8',['../group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251',1,'lib8tion.h']]],
+ ['lerp8by8',['lerp8by8',['../group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/functions_b.js b/docs/3.1/search/functions_b.js
index 4108d5bf..c66250b4 100644
--- a/docs/3.1/search/functions_b.js
+++ b/docs/3.1/search/functions_b.js
@@ -1,5 +1,7 @@
var searchData=
[
+ ['map8',['map8',['../group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d',1,'lib8tion.h']]],
+ ['minutes16',['minutes16',['../group__lib8tion.html#ga223820399921e32ddf018a90223ff336',1,'lib8tion.h']]],
['mod8',['mod8',['../group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88',1,'math8.h']]],
['mul8',['mul8',['../group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f',1,'math8.h']]]
];
diff --git a/docs/3.1/search/functions_f.js b/docs/3.1/search/functions_f.js
index 5660a40f..aef9ecd0 100644
--- a/docs/3.1/search/functions_f.js
+++ b/docs/3.1/search/functions_f.js
@@ -3,5 +3,6 @@ var searchData=
['qadd7',['qadd7',['../group___math.html#gadf60ccff727f52078aecdd5873b6f0bc',1,'math8.h']]],
['qadd8',['qadd8',['../group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f',1,'math8.h']]],
['qmul8',['qmul8',['../group___math.html#ga9d113e85065df7c9006704ea6b6dcda4',1,'math8.h']]],
- ['qsub8',['qsub8',['../group___math.html#gaaaa16f47aca46653d51793b1af177587',1,'math8.h']]]
+ ['qsub8',['qsub8',['../group___math.html#gaaaa16f47aca46653d51793b1af177587',1,'math8.h']]],
+ ['quadwave8',['quadwave8',['../group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/searchdata.js b/docs/3.1/search/searchdata.js
index fb6997cb..194d1897 100644
--- a/docs/3.1/search/searchdata.js
+++ b/docs/3.1/search/searchdata.js
@@ -3,7 +3,7 @@ var indexSectionsWithContent =
0: "_abcdefghijlmnopqrstuw",
1: "abcdfgijlmnopqstuw",
2: "bn",
- 3: "_abcdefghilmnopqrs",
+ 3: "_abcdefghilmnopqrst",
4: "fr",
5: "cl",
6: "cdhotu",
diff --git a/docs/3.1/struct_c_h_s_v-members.html b/docs/3.1/struct_c_h_s_v-members.html
index 1efcf6a1..d0445af9 100644
--- a/docs/3.1/struct_c_h_s_v-members.html
+++ b/docs/3.1/struct_c_h_s_v-members.html
@@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_c_h_s_v.html b/docs/3.1/struct_c_h_s_v.html
index 5df8e002..95146abd 100644
--- a/docs/3.1/struct_c_h_s_v.html
+++ b/docs/3.1/struct_c_h_s_v.html
@@ -165,7 +165,7 @@ union {</td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_c_r_g_b-members.html b/docs/3.1/struct_c_r_g_b-members.html
index 47bc5d13..98a34d1e 100644
--- a/docs/3.1/struct_c_r_g_b-members.html
+++ b/docs/3.1/struct_c_r_g_b-members.html
@@ -299,7 +299,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_c_r_g_b.html b/docs/3.1/struct_c_r_g_b.html
index 800a9dfc..2db812d2 100644
--- a/docs/3.1/struct_c_r_g_b.html
+++ b/docs/3.1/struct_c_r_g_b.html
@@ -477,7 +477,7 @@ union {</td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_multi_pixel_controller-members.html b/docs/3.1/struct_multi_pixel_controller-members.html
index 36295425..0e368a5b 100644
--- a/docs/3.1/struct_multi_pixel_controller-members.html
+++ b/docs/3.1/struct_multi_pixel_controller-members.html
@@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_multi_pixel_controller.html b/docs/3.1/struct_multi_pixel_controller.html
index ab9d6af1..9132173c 100644
--- a/docs/3.1/struct_multi_pixel_controller.html
+++ b/docs/3.1/struct_multi_pixel_controller.html
@@ -268,7 +268,7 @@ int uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>scale</b> { re
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_pixel_controller-members.html b/docs/3.1/struct_pixel_controller-members.html
index 69fd4be2..490dd72b 100644
--- a/docs/3.1/struct_pixel_controller-members.html
+++ b/docs/3.1/struct_pixel_controller-members.html
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_pixel_controller.html b/docs/3.1/struct_pixel_controller.html
index 6f327db0..2f819fcf 100644
--- a/docs/3.1/struct_pixel_controller.html
+++ b/docs/3.1/struct_pixel_controller.html
@@ -302,7 +302,7 @@ template&lt;EOrder RGB_ORDER&gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/structsub4-members.html b/docs/3.1/structsub4-members.html
index 0ed8aa36..a1c1fda7 100644
--- a/docs/3.1/structsub4-members.html
+++ b/docs/3.1/structsub4-members.html
@@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/structsub4.html b/docs/3.1/structsub4.html
index e530a7fa..6ea4c84b 100644
--- a/docs/3.1/structsub4.html
+++ b/docs/3.1/structsub4.html
@@ -205,7 +205,7 @@ uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>d7</b>:1</td></tr
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/todo.html b/docs/3.1/todo.html
index 622cc71c..069c37a7 100644
--- a/docs/3.1/todo.html
+++ b/docs/3.1/todo.html
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/trig8_8h_source.html b/docs/3.1/trig8_8h_source.html
index 5d73584a..da8de29b 100644
--- a/docs/3.1/trig8_8h_source.html
+++ b/docs/3.1/trig8_8h_source.html
@@ -95,210 +95,216 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_LIB8TION_TRIG_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define sin16 sin16_avr</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define sin16 sin16_C</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;LIB8STATIC int16_t sin16_avr( uint16_t theta )</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t data[] =</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; { 0, 0, 49, 0, 6393%256, 6393/256, 48, 0,</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; 12539%256, 12539/256, 44, 0, 18204%256, 18204/256, 38, 0,</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; 23170%256, 23170/256, 31, 0, 27245%256, 27245/256, 23, 0,</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; 30273%256, 30273/256, 14, 0, 32137%256, 32137/256, 4 <span class="comment">/*,0*/</span> };</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; uint16_t offset = (theta &amp; 0x3FFF);</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// AVR doesn&#39;t have a multi-bit shift instruction,</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// so if we say &quot;offset &gt;&gt;= 3&quot;, gcc makes a tiny loop.</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Inserting empty volatile statements between each</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// bit shift forces gcc to unroll the loop.</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; offset &gt;&gt;= 1; <span class="comment">// 0..8191</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(<span class="stringliteral">&quot;&quot;</span>);</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; offset &gt;&gt;= 1; <span class="comment">// 0..4095</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(<span class="stringliteral">&quot;&quot;</span>);</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; offset &gt;&gt;= 1; <span class="comment">// 0..2047</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x4000 ) offset = 2047 - offset;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; uint8_t sectionX4;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; sectionX4 = offset / 256;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; sectionX4 *= 4;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; uint8_t m;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; uint16_t b;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; uint8_t blo;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; uint8_t bhi;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; };</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; } u;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">//in effect u.b = blo + (256 * bhi);</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; u.blo = data[ sectionX4 ];</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; u.bhi = data[ sectionX4 + 1];</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m = data[ sectionX4 + 2];</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; uint8_t secoffset8 = (uint8_t)(offset) / 2;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; uint16_t mx = m * secoffset8;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; int16_t y = mx + u.b;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x8000 ) y = -y;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> y;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;LIB8STATIC int16_t sin16_C( uint16_t theta )</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint16_t base[] =</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; { 0, 6393, 12539, 18204, 23170, 27245, 30273, 32137 };</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t slope[] =</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; { 49, 48, 44, 38, 31, 23, 14, 4 };</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; uint16_t offset = (theta &amp; 0x3FFF) &gt;&gt; 3; <span class="comment">// 0..2047</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x4000 ) offset = 2047 - offset;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; uint8_t section = offset / 256; <span class="comment">// 0..7</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; uint16_t b = base[section];</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; uint8_t m = slope[section];</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; uint8_t secoffset8 = (uint8_t)(offset) / 2;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; uint16_t mx = m * secoffset8;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; int16_t y = mx + b;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x8000 ) y = -y;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> y;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define sin16 sin16_avr</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define sin16 sin16_C</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="group___trig.html#ga660ff60bfc5116525e50187de72009fc"> 30</a></span>&#160;LIB8STATIC int16_t <a class="code" href="group___trig.html#ga660ff60bfc5116525e50187de72009fc">sin16_avr</a>( uint16_t theta )</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t data[] =</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; { 0, 0, 49, 0, 6393%256, 6393/256, 48, 0,</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; 12539%256, 12539/256, 44, 0, 18204%256, 18204/256, 38, 0,</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; 23170%256, 23170/256, 31, 0, 27245%256, 27245/256, 23, 0,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; 30273%256, 30273/256, 14, 0, 32137%256, 32137/256, 4 <span class="comment">/*,0*/</span> };</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; uint16_t offset = (theta &amp; 0x3FFF);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// AVR doesn&#39;t have a multi-bit shift instruction,</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// so if we say &quot;offset &gt;&gt;= 3&quot;, gcc makes a tiny loop.</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// Inserting empty volatile statements between each</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// bit shift forces gcc to unroll the loop.</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; offset &gt;&gt;= 1; <span class="comment">// 0..8191</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(<span class="stringliteral">&quot;&quot;</span>);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; offset &gt;&gt;= 1; <span class="comment">// 0..4095</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(<span class="stringliteral">&quot;&quot;</span>);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; offset &gt;&gt;= 1; <span class="comment">// 0..2047</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x4000 ) offset = 2047 - offset;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; uint8_t sectionX4;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; sectionX4 = offset / 256;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; sectionX4 *= 4;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; uint8_t m;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; uint16_t b;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; uint8_t blo;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; uint8_t bhi;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; };</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; } u;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">//in effect u.b = blo + (256 * bhi);</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; u.blo = data[ sectionX4 ];</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; u.bhi = data[ sectionX4 + 1];</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m = data[ sectionX4 + 2];</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; uint8_t secoffset8 = (uint8_t)(offset) / 2;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; uint16_t mx = m * secoffset8;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; int16_t y = mx + u.b;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x8000 ) y = -y;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> y;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="group___trig.html#ga0890962cb06b267617f4b06d7e9be5eb"> 88</a></span>&#160;LIB8STATIC int16_t <a class="code" href="group___trig.html#ga0890962cb06b267617f4b06d7e9be5eb">sin16_C</a>( uint16_t theta )</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint16_t base[] =</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; { 0, 6393, 12539, 18204, 23170, 27245, 30273, 32137 };</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> uint8_t slope[] =</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; { 49, 48, 44, 38, 31, 23, 14, 4 };</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; uint16_t offset = (theta &amp; 0x3FFF) &gt;&gt; 3; <span class="comment">// 0..2047</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x4000 ) offset = 2047 - offset;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; uint8_t section = offset / 256; <span class="comment">// 0..7</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; uint16_t b = base[section];</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; uint8_t m = slope[section];</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; uint8_t secoffset8 = (uint8_t)(offset) / 2;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; uint16_t mx = m * secoffset8;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; int16_t y = mx + b;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x8000 ) y = -y;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> y;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;LIB8STATIC int16_t cos16( uint16_t theta)</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> sin16( theta + 16384);</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">// sin8 &amp; cos8</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">// Fast 8-bit approximations of sin(x) &amp; cos(x).</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">// Input angle is an unsigned int from 0-255.</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment">// Output is an unsigned int from 0 to 255.</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment">// This approximation can vary to to 2%</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment">// from the floating point value you&#39;d get by doing</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">// float s = (sin( x ) * 128.0) + 128;</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">// Don&#39;t use this approximation for calculating the</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">// &quot;real&quot; trigonometric calculations, but it&#39;s great</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment">// for art projects and LED displays.</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">// On Arduino/AVR, this approximation is more than</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// 20X faster than floating point sin(x) and cos(x)</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#if defined(__AVR__) &amp;&amp; !defined(LIB8_ATTINY)</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#define sin8 sin8_avr</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">#define sin8 sin8_C</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="group___trig.html#ga056952ebed39f55880bb353857b47075"> 120</a></span>&#160;LIB8STATIC int16_t <a class="code" href="group___trig.html#ga056952ebed39f55880bb353857b47075">cos16</a>( uint16_t theta)</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;{</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> sin16( theta + 16384);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">// sin8 &amp; cos8</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">// Fast 8-bit approximations of sin(x) &amp; cos(x).</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment">// Input angle is an unsigned int from 0-255.</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment">// Output is an unsigned int from 0 to 255.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment">// This approximation can vary to to 2%</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">// from the floating point value you&#39;d get by doing</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment">// float s = (sin( x ) * 128.0) + 128;</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">// Don&#39;t use this approximation for calculating the</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment">// &quot;real&quot; trigonometric calculations, but it&#39;s great</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment">// for art projects and LED displays.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// On Arduino/AVR, this approximation is more than</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment">// 20X faster than floating point sin(x) and cos(x)</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#if defined(__AVR__) &amp;&amp; !defined(LIB8_ATTINY)</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#define sin8 sin8_avr</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#define sin8 sin8_C</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keyword">const</span> uint8_t b_m16_interleave[] = { 0, 49, 49, 41, 90, 27, 117, 10 };</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;LIB8STATIC uint8_t sin8_avr( uint8_t theta)</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; uint8_t offset = theta;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="stringliteral">&quot;sbrc %[theta],6 \n\t&quot;</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="stringliteral">&quot;com %[offset] \n\t&quot;</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; : [theta] <span class="stringliteral">&quot;+r&quot;</span> (theta), [offset] <span class="stringliteral">&quot;+r&quot;</span> (offset)</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; );</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; offset &amp;= 0x3F; <span class="comment">// 0..63</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; uint8_t secoffset = offset &amp; 0x0F; <span class="comment">// 0..15</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x40) secoffset++;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; uint8_t m16; uint8_t b;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; uint8_t section = offset &gt;&gt; 4; <span class="comment">// 0..3</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; uint8_t s2 = section * 2;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">const</span> uint8_t* p = b_m16_interleave;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; p += s2;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; b = *p;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; p++;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m16 = *p;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; uint8_t mx;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; uint8_t xr1;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="stringliteral">&quot;mul %[m16],%[secoffset] \n\t&quot;</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="stringliteral">&quot;mov %[mx],r0 \n\t&quot;</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="stringliteral">&quot;mov %[xr1],r1 \n\t&quot;</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="stringliteral">&quot;eor r1, r1 \n\t&quot;</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="stringliteral">&quot;swap %[mx] \n\t&quot;</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="stringliteral">&quot;andi %[mx],0x0F \n\t&quot;</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="stringliteral">&quot;swap %[xr1] \n\t&quot;</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="stringliteral">&quot;andi %[xr1], 0xF0 \n\t&quot;</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="stringliteral">&quot;or %[mx], %[xr1] \n\t&quot;</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; : [mx] <span class="stringliteral">&quot;=r&quot;</span> (mx), [xr1] <span class="stringliteral">&quot;=r&quot;</span> (xr1)</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; : [m16] <span class="stringliteral">&quot;r&quot;</span> (m16), [secoffset] <span class="stringliteral">&quot;r&quot;</span> (secoffset)</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; );</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; int8_t y = mx + b;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x80 ) y = -y;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; y += 128;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> y;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;}</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keyword">const</span> uint8_t b_m16_interleave[] = { 0, 49, 49, 41, 90, 27, 117, 10 };</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="group___trig.html#ga6aa1f993cbbc427d80da1ee2ccca86e7"> 159</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___trig.html#ga6aa1f993cbbc427d80da1ee2ccca86e7">sin8_avr</a>( uint8_t theta)</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;{</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; uint8_t offset = theta;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="stringliteral">&quot;sbrc %[theta],6 \n\t&quot;</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="stringliteral">&quot;com %[offset] \n\t&quot;</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; : [theta] <span class="stringliteral">&quot;+r&quot;</span> (theta), [offset] <span class="stringliteral">&quot;+r&quot;</span> (offset)</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; );</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; offset &amp;= 0x3F; <span class="comment">// 0..63</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; uint8_t secoffset = offset &amp; 0x0F; <span class="comment">// 0..15</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x40) secoffset++;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; uint8_t m16; uint8_t b;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; uint8_t section = offset &gt;&gt; 4; <span class="comment">// 0..3</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; uint8_t s2 = section * 2;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">const</span> uint8_t* p = b_m16_interleave;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; p += s2;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; b = *p;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; p++;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; m16 = *p;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; uint8_t mx;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; uint8_t xr1;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="stringliteral">&quot;mul %[m16],%[secoffset] \n\t&quot;</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="stringliteral">&quot;mov %[mx],r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="stringliteral">&quot;mov %[xr1],r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="stringliteral">&quot;eor r1, r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="stringliteral">&quot;swap %[mx] \n\t&quot;</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="stringliteral">&quot;andi %[mx],0x0F \n\t&quot;</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="stringliteral">&quot;swap %[xr1] \n\t&quot;</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="stringliteral">&quot;andi %[xr1], 0xF0 \n\t&quot;</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="stringliteral">&quot;or %[mx], %[xr1] \n\t&quot;</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; : [mx] <span class="stringliteral">&quot;=r&quot;</span> (mx), [xr1] <span class="stringliteral">&quot;=r&quot;</span> (xr1)</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; : [m16] <span class="stringliteral">&quot;r&quot;</span> (m16), [secoffset] <span class="stringliteral">&quot;r&quot;</span> (secoffset)</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; );</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; int8_t y = mx + b;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x80 ) y = -y;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; y += 128;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> y;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;LIB8STATIC uint8_t sin8_C( uint8_t theta)</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;{</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; uint8_t offset = theta;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x40 ) {</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; offset = (uint8_t)255 - offset;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; offset &amp;= 0x3F; <span class="comment">// 0..63</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; uint8_t secoffset = offset &amp; 0x0F; <span class="comment">// 0..15</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x40) secoffset++;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; uint8_t section = offset &gt;&gt; 4; <span class="comment">// 0..3</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; uint8_t s2 = section * 2;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">const</span> uint8_t* p = b_m16_interleave;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; p += s2;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; uint8_t b = *p;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; p++;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; uint8_t m16 = *p;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint8_t mx = (m16 * secoffset) &gt;&gt; 4;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; int8_t y = mx + b;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x80 ) y = -y;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; y += 128;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> y;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;}</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;LIB8STATIC uint8_t cos8( uint8_t theta)</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;{</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> sin8( theta + 64);</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;}</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="group___trig.html#ga46933a9b42921c6605588268d11f7c1e"> 217</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___trig.html#ga46933a9b42921c6605588268d11f7c1e">sin8_C</a>( uint8_t theta)</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; uint8_t offset = theta;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x40 ) {</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; offset = (uint8_t)255 - offset;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; offset &amp;= 0x3F; <span class="comment">// 0..63</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; uint8_t secoffset = offset &amp; 0x0F; <span class="comment">// 0..15</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x40) secoffset++;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; uint8_t section = offset &gt;&gt; 4; <span class="comment">// 0..3</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; uint8_t s2 = section * 2;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">const</span> uint8_t* p = b_m16_interleave;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; p += s2;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; uint8_t b = *p;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; p++;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; uint8_t m16 = *p;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; uint8_t mx = (m16 * secoffset) &gt;&gt; 4;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; int8_t y = mx + b;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>( theta &amp; 0x80 ) y = -y;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; y += 128;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> y;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;}</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="group___trig.html#ga4432f985c94f5bff715db402d767b0e8"> 253</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___trig.html#ga4432f985c94f5bff715db402d767b0e8">cos8</a>( uint8_t theta)</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;{</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> sin8( theta + 64);</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;}</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="group___trig_html_ga056952ebed39f55880bb353857b47075"><div class="ttname"><a href="group___trig.html#ga056952ebed39f55880bb353857b47075">cos16</a></div><div class="ttdeci">LIB8STATIC int16_t cos16(uint16_t theta)</div><div class="ttdoc">Fast 16-bit approximation of cos(x). </div><div class="ttdef"><b>Definition:</b> trig8.h:120</div></div>
+<div class="ttc" id="group___trig_html_ga4432f985c94f5bff715db402d767b0e8"><div class="ttname"><a href="group___trig.html#ga4432f985c94f5bff715db402d767b0e8">cos8</a></div><div class="ttdeci">LIB8STATIC uint8_t cos8(uint8_t theta)</div><div class="ttdoc">Fast 8-bit approximation of cos(x). </div><div class="ttdef"><b>Definition:</b> trig8.h:253</div></div>
+<div class="ttc" id="group___trig_html_ga6aa1f993cbbc427d80da1ee2ccca86e7"><div class="ttname"><a href="group___trig.html#ga6aa1f993cbbc427d80da1ee2ccca86e7">sin8_avr</a></div><div class="ttdeci">LIB8STATIC uint8_t sin8_avr(uint8_t theta)</div><div class="ttdoc">Fast 8-bit approximation of sin(x). </div><div class="ttdef"><b>Definition:</b> trig8.h:159</div></div>
+<div class="ttc" id="group___trig_html_ga0890962cb06b267617f4b06d7e9be5eb"><div class="ttname"><a href="group___trig.html#ga0890962cb06b267617f4b06d7e9be5eb">sin16_C</a></div><div class="ttdeci">LIB8STATIC int16_t sin16_C(uint16_t theta)</div><div class="ttdoc">Fast 16-bit approximation of sin(x). </div><div class="ttdef"><b>Definition:</b> trig8.h:88</div></div>
+<div class="ttc" id="group___trig_html_ga660ff60bfc5116525e50187de72009fc"><div class="ttname"><a href="group___trig.html#ga660ff60bfc5116525e50187de72009fc">sin16_avr</a></div><div class="ttdeci">LIB8STATIC int16_t sin16_avr(uint16_t theta)</div><div class="ttdoc">Fast 16-bit approximation of sin(x). </div><div class="ttdef"><b>Definition:</b> trig8.h:30</div></div>
+<div class="ttc" id="group___trig_html_ga46933a9b42921c6605588268d11f7c1e"><div class="ttname"><a href="group___trig.html#ga46933a9b42921c6605588268d11f7c1e">sin8_C</a></div><div class="ttdeci">LIB8STATIC uint8_t sin8_C(uint8_t theta)</div><div class="ttdoc">Fast 8-bit approximation of sin(x). </div><div class="ttdef"><b>Definition:</b> trig8.h:217</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/union_i_e_e_e754binary32__t-members.html b/docs/3.1/union_i_e_e_e754binary32__t-members.html
index 0d96ebb1..1a656814 100644
--- a/docs/3.1/union_i_e_e_e754binary32__t-members.html
+++ b/docs/3.1/union_i_e_e_e754binary32__t-members.html
@@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/union_i_e_e_e754binary32__t.html b/docs/3.1/union_i_e_e_e754binary32__t.html
index 9814fce0..a1c5f512 100644
--- a/docs/3.1/union_i_e_e_e754binary32__t.html
+++ b/docs/3.1/union_i_e_e_e754binary32__t.html
@@ -150,7 +150,7 @@ struct {</td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/union_t_r_g_b_gradient_palette_entry_union-members.html b/docs/3.1/union_t_r_g_b_gradient_palette_entry_union-members.html
index 170a977e..f539d0de 100644
--- a/docs/3.1/union_t_r_g_b_gradient_palette_entry_union-members.html
+++ b/docs/3.1/union_t_r_g_b_gradient_palette_entry_union-members.html
@@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/union_t_r_g_b_gradient_palette_entry_union.html b/docs/3.1/union_t_r_g_b_gradient_palette_entry_union.html
index caea9e87..a61461ad 100644
--- a/docs/3.1/union_t_r_g_b_gradient_palette_entry_union.html
+++ b/docs/3.1/union_t_r_g_b_gradient_palette_entry_union.html
@@ -124,7 +124,7 @@ uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>bytes</b> [4]</td>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/unionbitswap__type-members.html b/docs/3.1/unionbitswap__type-members.html
index 4efe6276..c8e991c8 100644
--- a/docs/3.1/unionbitswap__type-members.html
+++ b/docs/3.1/unionbitswap__type-members.html
@@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/unionbitswap__type.html b/docs/3.1/unionbitswap__type.html
index 96a7dde7..45cd04b4 100644
--- a/docs/3.1/unionbitswap__type.html
+++ b/docs/3.1/unionbitswap__type.html
@@ -132,7 +132,7 @@ struct {</td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/unionjust8bits-members.html b/docs/3.1/unionjust8bits-members.html
index df4be5b6..0b1827a9 100644
--- a/docs/3.1/unionjust8bits-members.html
+++ b/docs/3.1/unionjust8bits-members.html
@@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/unionjust8bits.html b/docs/3.1/unionjust8bits.html
index 5ba7c75d..f1fa2daa 100644
--- a/docs/3.1/unionjust8bits.html
+++ b/docs/3.1/unionjust8bits.html
@@ -140,7 +140,7 @@ struct {</td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/uniont_bytes_for_long-members.html b/docs/3.1/uniont_bytes_for_long-members.html
index 24810208..7712bc0e 100644
--- a/docs/3.1/uniont_bytes_for_long-members.html
+++ b/docs/3.1/uniont_bytes_for_long-members.html
@@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/uniont_bytes_for_long.html b/docs/3.1/uniont_bytes_for_long.html
index a0fb4acb..b370d1f3 100644
--- a/docs/3.1/uniont_bytes_for_long.html
+++ b/docs/3.1/uniont_bytes_for_long.html
@@ -108,7 +108,7 @@ uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>raw</b> [4]</td></
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:21:16 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:36:07 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>