chonger / cueballer

0 stars 2 forks source link

allow shared lines #2

Open acodispo opened 4 weeks ago

acodispo commented 4 weeks ago

I know this is already on the todo list, but I have a suggestion for the expected formatting on the input side.

Here's an example.

SD: Enter GEORGE, RALPH, BENNY.

GEORGE
Hey, guys!

THE GUYS
Hey, George!

RALPH
What's up?

BENNY
Yeah, tell us!

Currently, this would generate characters for GEORGE, RALPH, BENNY, and an extraneous character THE GUYS.

My suggestion:

SD: Enter GEORGE, RALPH, BENNY.

GEORGE
Hey, guys!

RALPH, BENNY
Hey, George!

RALPH
What's up?

BENNY
Yeah, tell us!

So character name lines may contain a list of comma-separated characters that are speaking that line together.

Downside: this could lead to quite long character name lines in some cases, i.e. the common ALL which indicates that everybody or mostly everybody on stage speaks the line.

Thoughts?

efspeck commented 3 weeks ago

Hello again fellers! Whether it's "WITCHES" or "WITCH 1, WITCH 2, WITCH 3" my main concern is accuracy of the cue. Since this issue was already opened in a different doc, I'm copying and pasting below:

-Shared lines with categories of people. This one may be a good reality check for my expectations, because it seems pretty specific:

WITCH 3 There to meet with Macbeth.

WITCH 1 I come, Gray-Malkin. Padock calls anon:

WITCHES
faire is foule, and foule is faire, Houer through the fogge and filthie ayre.

Here I’m playing Witch 1, so I’m going to select both WITCH 1 and WITCHES for my characters. Ideally, since I speak both of these lines in succession, It would look like this: ------------------- to meet with Macbeth.

I come, Gray-Malkin. Padock calls anon: faire is foule, and foule is faire, Houer through the fogge and filthie ayre.

But it is of course giving me the cue line just like the other Witches:

------------------- to meet with Macbeth.

I come, Gray-Malkin. Padock calls anon:

------------------- come, Gray-Malkin. Padock calls anon:

faire is foule, and foule is faire, Houer through the fogge and filthie ayre.

This would require that it follow a different command when someone selects multiple characters that cue each other. This would also be the case if someone is playing LORD ROSS and ALL LORDS. This is probably the stickiest wicket, and the tool is still incredibly useful even if we need to add a disclaimer for users playing multiple roles to keep an eye out for these before printing, but multiple role and shared line accuracy is our holy grail. Interestingly, this also resulted in an inconsistent cue word length; notice that the first cue is only four words, which is where I have it set, but for some reason the second one is six, or five if it counts Gray-Malkin as one word.

Hope that's all clear. I really don't have a strong preference, as I'm torn between the textual accuracy of the folio's "Witches" (and accompanying ease in preparing the input) and the user convenience of just choosing "Witch 1" as output. So my immediate question is, would the "RALPH, BENNY" model make it easier to gain the desired cue accuracy? What we want is an output for Ralph like this:

-------------------------Hey guys! Hey, George! What's up?

Not this:

-------------------------Hey guys! Hey, George! ----------------------Hey, George! What's up?

chonger commented 2 weeks ago

this is a good point - to summarize its:

how do we do the cue script when a single actor line is followed by a group line (or vice versa)

Is there any historical precedent to follow? maybe shakespeare scholars would know

To andrew's initial point, i think we can give the option to create shared lines like you propose - the length of the actor name is not important (in my opinion) as this representation is built for computer ingestion, not for human readability.

acodispo commented 2 weeks ago

To summarize, if I've read correctly so far our options are:

  1. manually add all character names to shared line definitions -- requires manual work from the script preparer
  2. the user selects shared lines they know about when creating their cue script -- this requires user to have a good knowledge of the script in order to know that e.g. ROSSE speaks when LORDS speak

As a third option, maybe we could define a key at the top of the file, like this:

KEY:
WITCHES = WITCH 1, WITCH 2, WITCH 3
LORDS = ROSSE, ANGUS

Then whenever we run across LORDS or WITCHES we'd know that those are actually a stand-in for multiple characters.

One problem with 2 and 3 is that in some scripts ALL could refer to a set of characters in one scene, and another totally different set in another scene. To me that seems to suggest that 1 is the most robust solution, even though it requires careful preparation of the input file.

Maybe we could support all three options?

efspeck commented 2 weeks ago

I think I agree that simply itemizing each character makes the most sense. If we can just ensure that the cues come out correctly when a speaker cues them selves, as when "WITCH 1, WITCH 2, WITCH 3" share the line the cues WITCH 1, we will have done our job.

I don't want to further complicate this, but there really are further complications, like the below:

Screenshot 2024-11-10 at 9 48 19 AM

Three options occur to me for "All":

First: "All" is a character that a user would need to choose. Upside, they get this cue. Downside, how is someone to know whether to choose it or not? The person playing the porter for instance, whose class status probably excludes them, or Lady M, whose gender status probably excludes them, or Duncan who is now dead?

Second: Cueballer keeps track of everyone who is in the scene, and gives "All" it to everyone in the scene. It's generally a good bet that if they are in this scene at all they should have this line, and cueballer has the info it needs to know who is onstage because of the SD: entrances. But again there are exceptions, as above: Would a Lady M yell an oath this way? Would a servant? Would Banquo even though he cues it as a kind of call to allegiance? Or what if someone was in the scene earlier but is currently offstage? Cueballer would then need to track entrances and exits to be clear on who is onstage at that moment. Upside, the user doesn't have to choose "All". Downside, lots of extra work training cueballer to recognize who is in the scene without convincing accuracy of who should speak.

Third: The input specifies who speaks, as "ROSS, MACDUFF, MACBETH, LENOX, MALCOLM, DONALBAINE". Upside, no extra character to choose named "All", no extra work for cueballer to know who is onstage, and no confusion as to who speaks. Downside, the person preparing the input has to actually choose who speaks, editorializing beyond what info is strictly available in the folio text.

Of these three options I'd go with the third

IF the shakespeareswords.com database has already done the work to tag all of these lines to specific speakers, I'm happy to defer to their editorializing, and if they've already tracked entrances and exits, that would be great info to incorporate as well, but as to what we can reasonably attempt now, I think the input just needs a human intelligence choosing specifically who speaks when, and who exits and enters when.

efspeck commented 2 weeks ago

Sorry, meant to mention above that this example also reveals the difficulty of "Exeunt" as an SD. Theoretically MALCOLM and DONALBAINE made two of the "All" characters who just declared "Well contented", but they are clearly not numbered among the lords that then exit, as they stay and converse to the end of the scene. Again either cueballer needs to have the data to know not to indicate an exit in their output, or the input needs to specify "SD: Exit ROSS, MACDUFF, MACBETH, LADY MACBETH, PORTER, LENOX, BANQUO"

efspeck commented 2 weeks ago

DAMMIT ANDREW! Did you just articulate in five minutes what I've been typing for the last hour?! At any rate, glad we seem to have arrived at the same conclusion.