Story Structure and Tinderbox: How to REALLY make it work for you


(Michael Prenez-Isbell) #1

(Reposted so people can see it today)

I’ve created an example here for how to use Tinderbox for Dramatica Story Structure, but the ideas really work for anything, including John Truby, Save the Tiger, Syd Field, McKee, and my two favorites, Jack Bickham, whose analysis of scene structure is still the gold standard, and Dwight Swain’s handy bag of easy to use tools.

I’ve long been looking for a tool that would let me throw the structure up, do some writing, then yank the structure away so I can see what the writing looks like, then throw the structure back–and so all this FAST, as I’m deep in the creative writing space.

Here’s how you do that. I made a video for you, and I am uploading the sample .tbx. I’m around if you have specific questions.

Hmm I should add a note about snapping back and forth between outline and map and why that works too…I’ll do that later.

public display tinderbox html template.tbx.zip (66.5 KB)

There’s the document, and there’s the video:

https://youtu.be/avuKSsMjJd8 o

@JFallows thought you’d like to see this.


Turning on or off Notes within a hierarchy
(eastgate) #2

Have you read McPhee’s New Yorker essays on structuring creative nonfiction? They’re reprinted in his new Draft No. 4: https://amzn.to/2K9Adlt

I find the structural discussions fascinating and illuminating. McPhee also writes in some detail about an early word processor, KEDIT, about which he is extremely enthusiastic, and which has some functions that might benefit Tinderbox if only I properly understood them.


(Michael Prenez-Isbell) #3

hah I used KEDIT. That’s going WAY back. I’ll take a look at his notes. There are a lot of ways to skin this cat. Wow. KEDIT.


(Michael Prenez-Isbell) #4

btw it’s still possible to order KEDIT but they are winding the company down.

http://www.kedit.com/features.ia1.html


(Paul Walters) #5

Winding down. No promise of reliable support. But we’ll take your $99 for a license :wink:


(eastgate) #6

My immediate curiosity regards the ALPHA function, which appears to have been renamed. The intent is to avoid repetitive use of vivid, ten-dollar words; if one fellow in a story has “a generous mustache,” you want to be cautious about other generous mustaches and have a second look at other uses of “generous”.

I see the point, but much (obviously) depends on just how the list is compiled and used. Clearly, there’s no point in flagging “and” and “the”. If you’re writing about Quaker Mysticism, you don’t want to flag every occurrence of “Quaker”; in fact, I don’t think you really want to flag proper nouns at all.

Devil in details.


(Michael Prenez-Isbell) #7

Indeed. I’m launching into a study of NLP in iOS and Python, as well as ML. Let’s keep the conversation going. I’ve long been interested in using algorithms to make writing more…beautiful. Clearer. More surprising and delightful. Check out the Hemingway app sometime.


(Michael Prenez-Isbell) #8

If you think about it, that’s just making a list of all the words in the story and then assigning them weights. Even if it takes a little kajiggling to get it to come out right, it’s worth it. Raises your self awareness as a writer, if you’re doing it the right way. In this day and age, how about this for a truism: good writers are good programmers.


(Michael Prenez-Isbell) #9

I choked up with nostalgia when I saw Mansfield Software Group. KEdit was a Big Deal in 1985. I used it in 1985 to write the first CD ROM database index for the Sweet’s Architectural Catalog at McGraw-Hill. My first big C language project. First time I used bitmaps. I was friends with those people for years. If I remember correctly you could fire off the compiler from the editor, too. And it was an Editor, not a word processor. That’s a really important distinction.


(Michael Prenez-Isbell) #10

audibled draft 4 and am in the the part where the guy who wrote structur and Alpha for mcphee has just died. wonderful. weird feeling so nostalgic about software. good stuff about structure but more apocraphyl than useful to someone who wants to do the same

so I understand what he was doing. He liked making little files on his disk, little note files, and assigning each one a code. Then kedit and the Alpha macro would swoop through the disk and order the notes in a single file according to a code (say on the first line in the text). probably it did all the files in a directory, or after a certain date, like that. the explode macro Structur would do the opposite, read a file that had a lot of codes and paragraphs and cut those up into separate files, so they could be reassembled by Alpha. He liked making composable parts, pressing a button, and see them assemble. If his codes were done according to theme, character, etc, he could get different structures for his piece based on the filters he ran. very very very similar to capabilities Tinderbox has internally without its having to squirt things out to the operating system directories.

remember the exploders I wrote a few years ago for Tinderbox? a bunch of text in different string attributes in one note, then drag a note into a container and onAdd would run, create new notes and plug that text into the Text field for each note. and some other action plugged the new text back into the container note.


(James Fallows) #11

I am late to this and just catching up, but what a fascinating presentation, with all the suggestive implications from it! Thanks for going to the trouble of figuring this out and explaining it.


(Michael Prenez-Isbell) #12

Glad you enjoyed it. I wish John McPhee were around so I could show it to him :slight_smile:


(Pat Maddox) #13

Cool technique, thanks for sharing. I particularly liked having a simple HTML template with the if statements in there. I have typically created new templates per prototype, but it can be tough to keep track of sometimes.


(James Fallows) #14

McPhee is still “around,” in the sense of walking the earth. Don’t think he is a big computer guy though.


(Michael Prenez-Isbell) #15

Just reading Draft 4, his book about writing, and how he has stuck with KEdit through most of his career. @eastgate turned me on to the book. His whole experience with computers is in the book. It’s of it’s time.

And I am delighted he is still around, in the sense of, like Kain, walking the earth.


(Michael Prenez-Isbell) #16

The temptation with Tinderbox is always to make it too complicated and component-tized because well, you can. I advise: resist. Make it as simple as possible. You’re there to write.


(Michael Prenez-Isbell) #17

Incidentally, this is a helpful app if you’re interested in working with Dramatica theory.

https://app.narrativefirst.com/#/

And this is the company the sells the app, driven by one of the creators/researchers of the theory.

Believe me, it’s not a replacement for Tinderbox, but it gets you versed in the ideas for the kind of story structure they work with.


(Michael Prenez-Isbell) #18

And here’s something else to think about :slight_smile:


(Michael Prenez-Isbell) #19

I added a conditional to the text printout: now I only indent the ^text^ when printing the structure; otherwise I leave it unindented.

Here’s the new code block at the end of the HTML item:

^if($Prototype!="Dramatica Definition")^


	^if($PrintDramaticaStructure==true)^

        ^if($Prototype!="Tension Quad Elements")^
            <Blockquote><Blockquote>  ^text^ </Blockquote></Blockquote> 
        ^else^
            <Blockquote><Blockquote> <Blockquote> ^text^ </Blockquote></Blockquote></Blockquote> 
        ^endif^

	^else^

		^text^

	^endif^


^children(/Templates/HTML page/HTML item)^

^endif^

BEWARE. I killed a couple of hours because after I changed the code, the program only printed unindented text, no matter what I did. I thought the problem was in my if-else-endif structure but it turns out that was a red herring. the problem was

	^if($PrintDramaticaStructure==true)^

vs

	^if ($PrintDramaticaStructure==true)^

On the second version of the line, there is a space between ‘if’ and ‘(’ and that caused the ‘if’ test not to be executed, the parser just killed everything until the ^text^ line after the ^else^. NO SPACES BETWEEN IF AND PAREN here, so now I know that.

I find when debugging Tinderbox it helps to get rid of the visual noise sometimes, so I simplified the block like this:

^if($Prototype!="Dramatica Definition")^


	^if($PrintDramaticaStructure==true)^

        ^if($Prototype!="Tension Quad Elements")^
            Amy
        ^else^
            Rory 
        ^endif^

	^else^

		The Doctor

	^endif^


^children(/Templates/HTML page/HTML item)^

^endif^

and that made it easy for me to see the bug. I looked at it went … is that a space…that can’t be the problem…(Tenth Doctor voice) naaaaaaaaaah–but maybe. Allons-y!

Anyone have any thoughts about how to indent first line only?

I’m already evolving this document. I’ll put up an update in a week or two as soon as it’s worthwhile. There’s some new prototypes inherited and whatnot.


Summarizing outlines in $Text - working with relative $OutlineDepth
(Michael Prenez-Isbell) #20

I have a lot of prototypes at my document at the end of a long outline

But I end up scrolling aaaaallll the way down to BaseProto a lot to throw the PrintStructure switch on and off.

To make this better, I put an Instruments item up top and put an Alias to Base Prototype in it.

46 PM

Now I can throw the switch from whatever point is closer in the outline.

Here’s a thought for UI: a vertical doc along the left side of the app window where you can drag aliases to notes you want to have handy. A kind of in-app dashboard. @eastgate Mostly for outline mode. Just a place where you can drop a button that toggles a single attribute on a note. Or perhaps just selects a note. Yeah, columns sort of takes care of that, but I just want to see PrintDramaticaStructure as a single item, not a column item for every single note in the outline, when I only care about it on the prototype itself.