The persistent songbook data is stored in two property iotas (one for page labels, one for pages). The cassette implements telepathy-scrolling to switch pages; the page index is stored in the cassette, and communicated to the main hex via the cassette's label.
In theory, the only prerequisite to set up a songbook is at least one cassette - a focus is not required, though it would make transcribing the songbook hex easier.
The hex shown below is not the songbook itself, but rather a songbook constructor: each cast produces a new, unique songbook with newly created property iotas. The generated songbook should be written to a casting item (ideally an artifact) or an iota storage item (a thought-knot, focus, or even a spellbook) before use.
Casting the songbook will start the cassette if it's not running (unless you're looking at an entity, in which case it casts Recharge Item), or execute the currently selected page (like a CAD) otherwise. Hold telepathy and scroll to switch between pages. To read or write pages, cast the songbook while sneaking and holding telepathy. The songbook will take one of the following actions depending what iota is currently on top of your staff's stack:
- Scribe's Reflection: Push the contents of the current page to your stack.
- Scribe's Gambit: Pop the top iota from your stack and write it to the current page.
- Name Item: Pop the top iota from your stack and set it as the label of the current page.
Requires Hexcassettes, Hexcellular, Hexical, Hexpose, MoreIotas, and Overevaluate.
See the code here: https://github.com/object-Object/hex-he ... hexpattern
(the forum's pattern rendering seems to be broken again, so I can't render the patterns 😔)