Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve the word processor #14

Open
12 tasks
jbilcke-hf opened this issue Jul 11, 2024 · 3 comments
Open
12 tasks

Improve the word processor #14

jbilcke-hf opened this issue Jul 11, 2024 · 3 comments
Labels
important a critical, core key feature or blocker bug mvp you da most valuable playa prompt editor Editor of stories and screenplays
Milestone

Comments

@jbilcke-hf
Copy link
Owner

jbilcke-hf commented Jul 11, 2024

Context

The current screenplay editor isn't very useful, there are some syncing bugs and editing the screenplay (ie. doing changes to it) has no effect.

Also, only screenplays in the "hollywood-style" format are supported, so any text without the correct indentation will fail.

Goal

The goal of this ticket is to implement various changes (we can also create sub-tickets). See the tasks at the end of the ticket.

Limitations / things to checks

Performance issues

Saving a screenplay can be computationally intensive since it has to be converted back to a segment.

Even if we add or remove only one line, this can have a cascade effect (eg. shift everything left or right).

To optimize this, we should not run the whole screenplay through the editor, but instead only the current line, and do a localized update (similar how today resolving a segment can change its length, but the cascade effect is done in an efficient way).

Which format to use in the editor itself?

I think we can keep the idea of having only one format inside the screenplay editor (and use import/export functions to convert it to other formats). This format can be Fountain.

For people who want to generate a story from something else (eg. just a sentence, or a synopsis), we can add a little UI workflow to do that (eg. a "create new project" menu entry, and a dialog to show a wizard assistant)

How to implement

For the task of taking a sentence and converting it to changes in the timeline's segments, I think we can use a LLM whenever a scene needs to be updated. It will do a better job than if/else heuristics.

Acceptance criteria

  • making a change to the screenplay should be reflected in the timeline
  • no need for a save button, but we can have an undo/redo button
  • the timeline's position correctly sync with the screenplay editor (content + scroll)
  • the screenplay editor's position correctly sync with the timeline (content + scroll)
  • selecting segments in the timeline should select lines in the editor
  • selecting lines in the editor should select segments as well
  • show the avatar of characters
  • the position of the current playback cursor (in the timeline) should highlight the matching lines in the editor
  • allow individual scene collapse (see API for collapsing ranges microsoft/monaco-editor#4024 (comment))
  • allow global scene collapse (you can add buttons)
  • pre-process screenplays to Fountain
  • add some syntax coloration specific to the Fountain syntax
@sendn0des
Copy link
Collaborator

sendn0des commented Jul 25, 2024

To optimize this, we should not run the whole screenplay through the editor, but instead only the current line, and do a localized update (similar how today resolving a segment can change its length, but the cascade effect is done in an efficient way).

agreed. do you think we need a "Commit" popup to happen upon user changes to script?

my initial idea was that the "writing" section was in another tab. so when a user went back to the timeline, this was considered a "commit". This also served a purpose to allow user to have "writers brain" vs. "editing brain" (while still retaining script on the edit view). Just having it noneditable in edit view.

edit:
@lalalune : actually nm - just looking at your inlines on the pr you made. mouse blur is interesting. i had thought of tabs (as above) but i think a clever "commit" or "save to" can work.

down the road probably want to have the word processing go fullscreen for people who are going to make more sweeping changes before previewing again

@jbilcke-hf
Copy link
Owner Author

jbilcke-hf commented Jul 30, 2024

maybe not a pop-up, I think yes the unblur is a good compromise, as it represents a user context switch (they're "done" with editing when they unfocus)

although I would love to be able to have real-time updates one day (ie. for each key press, with a bit of a debounce/throttling)

it's just that right now (and for purely technical reasons which could be optimized one day), we need to make it a special operation that happens only every so often

@sendn0des
Copy link
Collaborator

although I would love to be able to have real-time updates one day (ie. for each key press, with a bit of a debounce/throttling)

totally. imo it's the ultimate.

ill think more on this and think of user function. the unblur could be VERY interesting (and almost gamelike). it's nothing i've ever really seen before

@jbilcke-hf jbilcke-hf added the important a critical, core key feature or blocker bug label Aug 21, 2024
@jbilcke-hf jbilcke-hf added this to the First release / MVP milestone Aug 21, 2024
@sendn0des sendn0des added the mvp you da most valuable playa label Sep 9, 2024
@sendn0des sendn0des changed the title Improve the screenplay editor Improve the word processor Sep 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
important a critical, core key feature or blocker bug mvp you da most valuable playa prompt editor Editor of stories and screenplays
Projects
Status: No status
Development

No branches or pull requests

2 participants