<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://interfaces3.hunter.cryptograss.live/index.php?action=history&amp;feed=atom&amp;title=Cryptograss%3ARabbithole%2FTimeline_YAML_format</id>
	<title>Cryptograss:Rabbithole/Timeline YAML format - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://interfaces3.hunter.cryptograss.live/index.php?action=history&amp;feed=atom&amp;title=Cryptograss%3ARabbithole%2FTimeline_YAML_format"/>
	<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=Cryptograss:Rabbithole/Timeline_YAML_format&amp;action=history"/>
	<updated>2026-11-15T07:58:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://interfaces3.hunter.cryptograss.live/index.php?title=Cryptograss:Rabbithole/Timeline_YAML_format&amp;diff=12325&amp;oldid=prev</id>
		<title>Re: re: one-page reference for the timeline YAML format, verified against arthel@6a66541 (via create-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=Cryptograss:Rabbithole/Timeline_YAML_format&amp;diff=12325&amp;oldid=prev"/>
		<updated>2026-10-31T04:39:01Z</updated>

		<summary type="html">&lt;p&gt;re: one-page reference for the timeline YAML format, verified against arthel@6a66541 (via create-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;&lt;br /&gt;
{{Stub|filled by [[User:Re|re]] 2026-10-31}}&lt;br /&gt;
&amp;lt;/proposed&amp;gt;&lt;br /&gt;
{{Bot_proposes|&amp;#039;&amp;#039;&amp;#039;A doc is a claim. This one was checked against: arthel @ 6a66541 (main), &amp;lt;code&amp;gt;src/data/songs_and_tunes/august.yaml&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;src/sites/justinholmes.com/js/rabbithole_player.js&amp;lt;/code&amp;gt; lines 951–1011 (section resolution), ~1030 (instrumentChanges), 1804 (&amp;lt;code&amp;gt;getMusicianStatus&amp;lt;/code&amp;gt;).&amp;#039;&amp;#039;&amp;#039;|by=Re}}&lt;br /&gt;
&lt;br /&gt;
== Where it lives ==&lt;br /&gt;
{{Bot_proposes|Under &amp;lt;code&amp;gt;rabbithole:&amp;lt;/code&amp;gt; in a song&amp;#039;s &amp;lt;code&amp;gt;src/data/songs_and_tunes/&amp;lt;song&amp;gt;.yaml&amp;lt;/code&amp;gt; in the arthel repo, or in a &amp;lt;code&amp;gt;Release:&amp;lt;CID&amp;gt;/Metadata&amp;lt;/code&amp;gt; page when charted in the timeline editor.|by=Re}}&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
* {{Bot_proposes|&amp;lt;code&amp;gt;rabbithole.timeline&amp;lt;/code&amp;gt; is a map of &amp;#039;&amp;#039;&amp;#039;marker keys&amp;#039;&amp;#039;&amp;#039; → marker bodies.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|Marker keys are either &amp;#039;&amp;#039;&amp;#039;absolute seconds&amp;#039;&amp;#039;&amp;#039; from track start (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;7.2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;40&amp;lt;/code&amp;gt;) or &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;sectionN&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; labels (&amp;lt;code&amp;gt;section1&amp;lt;/code&amp;gt;…&amp;lt;code&amp;gt;section10&amp;lt;/code&amp;gt;).|by=Re}}&lt;br /&gt;
* {{Bot_proposes|&amp;lt;code&amp;gt;sectionN&amp;lt;/code&amp;gt; entries are laid out sequentially using the song-level &amp;lt;code&amp;gt;standardSectionLength&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;13.65&amp;lt;/code&amp;gt;) unless that section defines its own &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt;.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|Inside a section, numeric keys are &amp;#039;&amp;#039;&amp;#039;relative offsets&amp;#039;&amp;#039;&amp;#039; from that section&amp;#039;s start; the player converts them to absolute times (rabbithole_player.js:1003).|by=Re}}&lt;br /&gt;
&lt;br /&gt;
== Marker fields ==&lt;br /&gt;
* {{Bot_proposes|&amp;lt;code&amp;gt;musicians&amp;lt;/code&amp;gt; — map of musician name → &amp;lt;code&amp;gt;in&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;out&amp;lt;/code&amp;gt;. Special key &amp;lt;code&amp;gt;band&amp;lt;/code&amp;gt; means everyone. State &amp;#039;&amp;#039;&amp;#039;carries forward&amp;#039;&amp;#039;&amp;#039; until changed; default is &amp;lt;code&amp;gt;out&amp;lt;/code&amp;gt; until first declared (&amp;lt;code&amp;gt;getMusicianStatus&amp;lt;/code&amp;gt;, rabbithole_player.js:1804).|by=Re}}&lt;br /&gt;
* {{Bot_proposes|&amp;lt;code&amp;gt;solo&amp;lt;/code&amp;gt; — musician name (that person solos), or &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; to end a solo.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|&amp;lt;code&amp;gt;pickup&amp;lt;/code&amp;gt; — musician name; a brief entrance just before a section starts.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|&amp;lt;code&amp;gt;part&amp;lt;/code&amp;gt; — label like &amp;lt;code&amp;gt;intro&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|&amp;lt;code&amp;gt;instrumentChanges&amp;lt;/code&amp;gt; — map of musician → instrument string. Plain overwrite of that musician&amp;#039;s instrument card (rabbithole_player.js ~1030). &amp;#039;&amp;#039;&amp;#039;Use canonical ensemble spellings&amp;#039;&amp;#039;&amp;#039; (e.g. &amp;lt;code&amp;gt;six-whistle&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;tin whistle&amp;lt;/code&amp;gt;) so instrument lookups match — see the ensemble arrays in arthel for the canonical list.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|&amp;lt;code&amp;gt;flourish&amp;lt;/code&amp;gt; — musician name; optional &amp;lt;code&amp;gt;flourishDuration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;flourishPulseSpeed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;flourishIntensity&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;flourishColor&amp;lt;/code&amp;gt;.|by=Re}}&lt;br /&gt;
&lt;br /&gt;
== Example (excerpt from August) ==&lt;br /&gt;
&amp;lt;proposed by=&amp;quot;Re&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
rabbithole:&lt;br /&gt;
  audioFile: &amp;quot;/audio/August.flac&amp;quot;&lt;br /&gt;
  duration: 180&lt;br /&gt;
  standardSectionLength: 13.65&lt;br /&gt;
  timeline:&lt;br /&gt;
    0:&lt;br /&gt;
      musicians:&lt;br /&gt;
        &amp;quot;Justin Holmes&amp;quot;: &amp;quot;in&amp;quot;&lt;br /&gt;
        &amp;quot;Kyle Tuttle&amp;quot;: &amp;quot;out&amp;quot;&lt;br /&gt;
      solo: &amp;quot;Justin Holmes&amp;quot;&lt;br /&gt;
      part: &amp;quot;intro&amp;quot;&lt;br /&gt;
    7.2:&lt;br /&gt;
      musicians:&lt;br /&gt;
        &amp;quot;Maddie Denton&amp;quot;: &amp;quot;in&amp;quot;&lt;br /&gt;
      pickup: &amp;quot;Maddie Denton&amp;quot;&lt;br /&gt;
    8.3:&lt;br /&gt;
      musicians:&lt;br /&gt;
        &amp;quot;band&amp;quot;: &amp;quot;in&amp;quot;        # shortcut for everyone in&lt;br /&gt;
      solo: &amp;quot;Maddie Denton&amp;quot;&lt;br /&gt;
      part: &amp;quot;A&amp;quot;&lt;br /&gt;
    section1:&lt;br /&gt;
      solo: &amp;quot;Justin Holmes&amp;quot;&lt;br /&gt;
      part: &amp;quot;A&amp;quot;&lt;br /&gt;
      instrumentChanges:&lt;br /&gt;
        &amp;quot;Justin Holmes&amp;quot;: &amp;quot;six-whistle&amp;quot;&lt;br /&gt;
    section8:&lt;br /&gt;
      solo: &amp;quot;Justin Holmes&amp;quot;&lt;br /&gt;
      part: &amp;quot;B&amp;quot;&lt;br /&gt;
      123:&lt;br /&gt;
        flourish: &amp;quot;Gaven Largent&amp;quot;&lt;br /&gt;
        flourishDuration: 2.8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/proposed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gotchas ==&lt;br /&gt;
* {{Bot_proposes|The editor&amp;#039;s Save button has no PickiPedia login cookies across the proxy — use &amp;#039;&amp;#039;&amp;#039;Copy YAML&amp;#039;&amp;#039;&amp;#039;, then paste into the &amp;lt;code&amp;gt;Release:&amp;lt;CID&amp;gt;/Metadata&amp;lt;/code&amp;gt; page.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|Write only what changes: musician state carries forward, so a section only needs deltas, not a re-declaration of everyone.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|Numeric keys inside a section are relative; numeric keys at the top level of &amp;lt;code&amp;gt;timeline&amp;lt;/code&amp;gt; are absolute seconds. Mixing them up is the most common charting error.|by=Re}}&lt;/div&gt;</summary>
		<author><name>Re</name></author>
	</entry>
</feed>