<story><title>Flicks – A unit of time defined in C++</title><url>https://github.com/OculusVR/Flicks</url></story><parent_chain></parent_chain><comment><author>btown</author><text>This reminds me of how MIDI files [0] represent time offsets, in integral &amp;quot;delta-time&amp;quot; units which can be set to either an arbitrary unit fraction of a quarter note, or an arbitrary unit fraction of an SMPTE frame (which itself can be specified in frames per second). Combined with an ability to dynamically set tempo (at any delta-time offset) in microseconds per quarter note, this allows practically any (Western) music to be represented with just integer delta-times between notes, including crazy tuples and polyrhythms, in a tempo-independent way; just find the greatest common denominator for your subdivisions. You could have thousands of minute tempo changes over the course of a performance and never lose fidelity due to rounding errors.&lt;p&gt;Apple&amp;#x27;s (formerly emagic&amp;#x27;s) Logic software actually made this visible to the user, using 3840 delta-time units per quarter note and presenting an Event List interface [1] where you could edit integers for offset and length directly. As opposed to other WYSIWIG notation software like Finale and Sibelius, it felt like Logic was hiding nothing from you; you could be sure that everything you saw and heard was rendered declaratively from the same underlying data. Moreover, if you were ever having trouble zooming&amp;#x2F;subdividing the drag-and-drop user interface for whatever crazy triplet sequence you wanted, you could just break out a calculator and specify exactly what you want, knowing that you wouldn&amp;#x27;t be &amp;quot;fuzzing&amp;quot; anything by typing in a rounded decimal number.&lt;p&gt;(It&amp;#x27;s a good lesson for us as developers - while it can be extra work to build an interface that doesn&amp;#x27;t hide complexity, professional users will often figure out how to use this to work around other shortcomings in your interface, buying you time to fix them the right way. It&amp;#x27;s just a matter of finding the right abstractions - representing time as integers is just one example.)&lt;p&gt;[0] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.csie.ntu.edu.tw&amp;#x2F;~r92092&amp;#x2F;ref&amp;#x2F;midi&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.csie.ntu.edu.tw&amp;#x2F;~r92092&amp;#x2F;ref&amp;#x2F;midi&amp;#x2F;&lt;/a&gt;&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;support.apple.com&amp;#x2F;kb&amp;#x2F;PH13096?locale=en_US&amp;amp;viewlocale=en_US&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;support.apple.com&amp;#x2F;kb&amp;#x2F;PH13096?locale=en_US&amp;amp;viewlocale...&lt;/a&gt;</text></comment>
<story><title>Flicks – A unit of time defined in C++</title><url>https://github.com/OculusVR/Flicks</url></story><parent_chain></parent_chain><comment><author>mshook</author><text>&lt;i&gt;While humans can&amp;#x27;t hear higher than 48kHz, the higher sample rates are used for working audio files which might later be resampled or retimed.&lt;/i&gt;&lt;p&gt;48 kHz? Someone probably got confused between Nyquist–Shannon sampling theorem and the human ear...&lt;p&gt;And someone beat me to it hehe&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;OculusVR&amp;#x2F;Flicks&amp;#x2F;issues&amp;#x2F;2&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;OculusVR&amp;#x2F;Flicks&amp;#x2F;issues&amp;#x2F;2&lt;/a&gt;</text></comment>