Version 9.0 — 9 November 2026
Added
- Dual dialogue, for two characters speaking at the same time. Select from the first speech into the second, tap any margin label and choose Dual dialogue at the bottom of the menu. It only works on two speeches in a row that both have dialogue, so the app never sets it on its own. Choose Turn off dual dialogue from the same menu, or Undo, to put them back.
- In the editor the two speeches stay one above the other, joined by a bracket in the margin, and their name labels read "Dual". Every other line type, shortcut and editing behavior is unchanged.
- In Download PDF and Print they sit side by side in two columns, with each name centered over its column, and a pair never splits across pages. With line numbers on, the left speech is numbered on the left and the right speech on the right. Yellow cast highlights work in either column.
- Final Draft export writes them as Final Draft dual dialogue. Fountain export marks the second name with
^, and Fountain imports now keep that pairing instead of dropping it. - Runtime counts only the longer of the two speeches, since they're spoken at once. Each actor still gets full credit for their own lines and words in the report.
- Limited to two speeches, as in other industry-standard script apps. Use a group name such as ALL for three or more voices at once. If either speech changes type or something else ends up between them, they go back to normal dialogue.
- Scene arrows. A pair of up/down buttons in the bottom-right corner jumps to the previous or next scene heading and puts the cursor there. On wider screens they sit beside the page, clear of the line and page numbers. On a touch screen with the keyboard closed they only scroll, so the keyboard doesn't pop up. They're hidden when the script has no scene headings, and never print.
- Role count in Script tools → Report ("Cast · 14 roles") and in the report PDF. It matches the cast list, so "JOE (V.O.)" counts as JOE and group names such as ALL count as a role.
- The writing shortcuts list (the ? button) now covers dual dialogue and the scene arrows.
Fixed
- Series and episode titles no longer run into the margin labels at page breaks in the editor when "Title on every page" is on. Breaks with a two-line header now get a taller gap. The PDF was already correct and hasn't changed.
- Scrolling quickly through a long script could jump back to the cursor. The editor now only scrolls to the cursor when you type or change a line, or when an on-screen keyboard opens, never because the browser window resized after you'd scrolled away. Page-break estimates are also worked out without briefly removing and re-adding every page gap, which could nudge the page during a fast scroll. Page breaks land in exactly the same places as before (checked line by line against 8.9.1).
- Fountain imports no longer keep scene number tags such as
#42#on the end of scene headings. The tag is removed and the app numbers scenes itself, as it always has.
Unchanged: scripts without dual dialogue give exactly the same PDF, Print, Fountain, Final Draft and JSON output as 8.9.1 (checked byte for byte and pixel for pixel). The report PDF differs only by the new role count.
Version 8.9.1 — 21 October 2026
Added
- Link to ATC Sides Builder in Script tools → Report, just below the cast list: "Create audition sides with ATC Sides Builder" (https://sides.audiotheatrecentral.com/), with a note to export a JSON backup and open it there.
- "Find more free tools for audio drama creators" at the bottom of the Script tools panel, under the ATC Soundwright note, linking to https://www.audiotheatrecentral.com/p/tools.html.
- Both links open in a new tab, so the script stays open.
Version 8.9 — 16 October 2026
Improved: responsiveness. Nothing looks or works differently. The app just reacts faster, especially in longer scripts and on slower phones and laptops. Prompted by Cloudflare's Interaction to Next Paint (INP) readings after launch.
- Start writing / Continue writing now responds at once. The button shows "Opening…" while the editor is drawn on the next frame, instead of the click appearing to hang while the whole script is drawn. Measured on a typical 20-page script on a slowed computer: about 250–300 ms before, about 40 ms now.
- Page-break estimates are worked out in a single measuring pass instead of re-measuring the page after every break, which forced hundreds of full-page recalculations on a long script. They also wait until typing pauses and the browser is idle, so they never hold up a key press. Page breaks land in exactly the same places as before; this was checked line by line against 8.8 at desktop and phone widths.
- Pressing Enter in a long script (about 60 pages) dropped from roughly 0.5–1 second to about 0.25 seconds.
- Typing only re-checks the line being typed in, and character-name suggestions reuse a cached list instead of re-reading the whole script on every key.
- Undo steps share unchanged lines with the previous step instead of copying the whole script each time, which also uses much less memory.
- Saving skips the full clean-up pass for lines that are already clean. Saved scripts, JSON backups, Fountain and Final Draft exports are identical to 8.8 (checked byte for byte).
Added
- The cursor stays in view while you type. When typing reaches the bottom of the screen, the script scrolls just enough to keep a couple of lines of room below the cursor, on desktop and above a phone's on-screen keyboard. If you scroll away yourself, nothing moves until you type again. While a phone keyboard is open, matching space is added below the script so even the last line can scroll above it.
- Sound and music cues are recognized sooner. Typing "SF" or "MU" in capitals on a new line now selects SFX or Music straight away and suggests the rest ("X:" or "SIC:"). Tab or → completes it to "SFX: " or "MUSIC: ", ready for the description, or you can keep typing. If the typing goes elsewhere (for example "MUR…"), the line goes back to normal detection, and a character whose name starts the same way (such as MURPHY) takes priority. Lowercase typing and lines set by hand are left alone.
- Backup reminder for Safari. Safari, and every browser on iPhone and iPad, can clear a site's saved data after about a week without a visit. In those browsers only, the start screen offers Download a backup when the last JSON backup is more than 5 days old, with Remind me later to hide it for 3 days. Other browsers never see it. Saving a JSON backup from the Export window also resets the reminder.
Version 8.8 — 15 October 2026
Added
- Notes page, an optional page between the title page and the script. Use it for a character list with descriptions, a pronunciation guide, a glossary of terms, or all three.
- Turn it on under Script tools → Title page → Add a notes page, and give it a heading (for example "Character Notes" or "Pronunciation Guide"; "Notes" if left blank).
- It's plain writing space with bold, italic and underline. There are no line-type labels, auto-detection or name suggestions.
- Hide / Show collapses it to a single bar so only the script shows. It still prints and exports when hidden.
- Insert cast list adds every character in the script as a bold line ("MARA – "), ready for a description or pronunciation. Names already listed aren't added twice.
- Included in find and replace (renaming a character updates the notes page too; a match on a hidden notes page opens it) and in undo and redo.
- PDF and Print: its own page (or pages, if it runs long) after the title page, with the watermark if one is set. No page number or header, and the script still starts at page 1.
- Final Draft: a centered heading and General text at the top, with the script starting on a new page.
- Fountain: a centered heading and the notes at the top, then a page break. Importing that file into Soundwright restores the notes page.
- Saved with each script, including the heading and whether it's hidden. Turning the page off keeps its text, ready if you turn it back on. New blank scripts start without one.
Fixed
- On Windows, using a line-type shortcut with the number keypad (Alt + keypad digit) also typed a symbol after the line, such as ♥ for Character, ♦ for Direction and ♣ for Dialogue. Windows treats Alt + keypad digits as its old character codes and types that character when Alt is released. The app now blocks that one character right after a keypad shortcut. The shortcuts work exactly as before, the top-row number keys were never affected, and Alt codes typed on purpose still work.
Version 8.7 — 14 October 2026
Added
- Keyboard shortcuts for line types. Alt + number on Windows, ChromeOS and Linux; Control (⌃) + number on a Mac.
- 1 Scene, 2 Action, 3 Character, 4 Direction, 5 Dialogue, 6 SFX, 7 Music, 8 Text. 0 hands the line back to Auto. The order follows Final Draft where the line types overlap.
- Works like choosing a type from the margin menu: the line is set by hand and auto-detection leaves it alone. Every other line is still detected automatically as you type.
- Changes the line the cursor is on, or every line in a selection. Each use is one undo step.
- These keys were chosen to avoid clashes. Browsers reserve Ctrl/⌘ + number for switching tabs, ⌘ Shift 3–5 are Mac screenshots, Ctrl+Alt types characters on many European keyboards, and Option + number types ™ £ ¢ on a Mac, which still works.
- Shown beside each type in the margin menu, and listed on the keyboard shortcuts sheet.
Changed
- The margin menu now lists line types in shortcut order (Auto, Scene, Action, Character, Direction, Dialogue, SFX, Music, Text), so Direction now comes before Dialogue. Tab still cycles through types in its original order.
- Testimonial: Christopher Green's credit now reads "Time Truck Chronicles".
Version 8.6 — 12 October 2026
Added
- Social sharing preview. Links to https://soundwright.audiotheatrecentral.com/ now show a proper card on Facebook, Bluesky, X, LinkedIn, Discord, Slack and in messaging apps.
- Title "ATC Soundwright" and description "Free scriptwriting built for audio drama. It formats as you type, works in your browser and needs no account."
- New share image
share.png(1200 × 630) matching the start screen: ATC badge, Soundwright wordmark, "Scriptwriting built for audio drama", the waveform and the tagline. Upload it alongsideindex.html. - The image has a text description for screen readers.
- The page now names its permanent address, so search engines and sharing sites treat it as the one official link.
- The change log page has its own preview card ("Soundwright change log") using the same image.
Version 8.5 — 12 October 2026
Added
- Find and replace. A magnifier button sits just right of bold, italic and underline, in the centered toolbar group. Ctrl/⌘ F also opens it while you're writing.
- The box sits off to the right of the page. On narrower laptops the page shifts left so the box never covers script text; on phones it docks at the bottom of the screen.
- Every match is highlighted, with the current one in orange. It shows a count ("3 of 12") and up and down arrows. Enter and Shift+Enter step through matches.
- Match case (on by default) and Whole words only (off by default) apply to both finding and replacing, so the count always matches what Replace all will change.
- Matches follow what's on screen. Character names, scene headings, SFX and Music lines count as capitals even if they were typed in lowercase.
- Straight and curly apostrophes count as the same character, so "won't" finds "won’t".
- Replace changes the current match and moves on to the next one. It never loops back onto its own replacement, so "Al" → "Alan" is safe. Replace all changes every match at once. A replaced word keeps its bold, italic or underline.
- Each Replace is one undo step, and Replace all is a single undo step.
- Searches the script only, not the title page.
- Highlights are drawn by the browser on top of the page and never touch the script itself, so they can't end up in saves, backups or exports. Closing the box (×, Esc or the magnifier) clears them.
- Opening Script tools closes the find box, and opening find closes Script tools.
- In older browsers without the highlight feature, the count and arrows still work, and each match is selected as you step through.
- Ctrl/⌘ F added to the keyboard shortcuts sheet.
Changed
- The tagline next to "ATC Soundwright" in the top bar now hides on screens narrower than 1180px (previously only on phones), so the slightly wider toolbar never pushes the bar onto two lines.
- On phones, toolbar buttons are a little narrower so undo, redo, formatting, find and the right-hand buttons still fit on one row.
Fixed
- On phones, the Action margin label was cut off ("ACTI…"). It now reads "Act", matching the other short phone labels (Char, Dir, Line). Desktop still shows "Action".
- Download report PDF (and Download PDF for the script) now always asks where to save in Chrome, Edge, Opera and Brave. Browsers only allow the Save dialog straight after a click, and building the PDF first, especially on a first export while the PDF tool loads, could use up that moment. The file then went straight to Downloads. The app now asks where to save the instant you click, then builds and writes the PDF. Cancelling the dialog makes nothing.
Version 8.4 — 11 October 2026
Added
- Testimonial carousel on the start screen, below the three feature cards. It shows three quotes, used with permission:
- Craig Hart, LRT Media
- Christopher Green, Shadows & Daylight
- Glenn Hascall, First Acts Audio Productions
- Plain text with no boxes, so it stays lighter than the cards above it. Quotes are in the script font in italics, with the name and company underneath.
- One quote at a time. It moves to the next every 7.5 seconds with a gentle fade, and pauses while the pointer or keyboard focus is on it. Dots underneath let people jump to any quote.
- The space is sized to the longest quote and shorter ones sit centered, so the page never jumps as quotes change.
- If someone has turned off animations in their system settings, it stays on the first quote until they click a dot.
- To change the quotes later, edit the three
<figure class="q">blocks inindex.html. The dots adjust to however many there are. - Support note at the very bottom of the footer: "ATC Soundwright is a free service, but if you find value in it and want to support us, click here." The link goes to the Audio Theatre Central support page.
- Change log page. The version number in the footer now links to
changelog.html, a styled public page of this change log. It opens in a new tab and is generated fromCHANGELOG.md, so it needs to be uploaded alongsideindex.html. - Watermark under Script tools → Settings → Watermark: None, Text or Logo.
- Text (up to 40 characters, such as "DRAFT" or "CONFIDENTIAL") runs corner to corner from bottom left to top right, sized to fit the page.
- Logo (PNG, JPG, WebP or GIF) is centered, turned greyscale and shrunk on upload so it stays small inside the saved script.
- Printed in light grey behind the title page, every script page and the report PDF, and in the Print instead option. It isn't shown while you write; a small preview in Settings shows how it will look.
- Saved with each script, including in JSON backups. "Start a blank script" begins with no watermark, and older backups load without one. Fountain and Final Draft exports don't carry it.
- Keep SFX and Music colors checkbox on the PDF tab of the Export window, off by default.
- Sound cues print in dark orange and music cues in dark teal, the same shades the editor uses, so post-production can spot their sections. Both stay readable on a black-and-white printer.
- Also applies to Print instead. Saved with each script; new blank scripts start with it off.
- The PDF tab now notes when a watermark is switched on.
Version 8.3 — 10 October 2026
Added
- Undo and Redo buttons in the top bar, to the left of bold, italic and underline. Keyboard shortcuts: Ctrl/⌘ Z to undo, Ctrl/⌘ Shift Z or Ctrl Y to redo.
- They cover script edits only: typing, new lines, line-type changes, pasting and formatting. Settings, the title page form and other menu actions are not affected.
- Typing is grouped into one step per pause. Enter, Tab (including accepting a suggested name), paste, line-type changes and formatting are each their own step.
- Up to 150 steps are kept. History starts fresh when a script is opened, imported or started blank.
- Buttons dim when there's nothing to undo or redo. Listed in the keyboard shortcuts sheet.
Changed
- Script tools tabs are now ordered Title page, Report, Settings. Title page is the tab that opens first.
- The sample script's first scene heading now starts with INT. instead of "SCENE 1". This only shows for new visitors; anyone with a saved script keeps their own.
Version 8.2 — 29 September 2026
Added
- Optional Series name on the Title page tab, above the title (which now works as the episode title).
- Title page: series on its own line above the title, on screen, in the PDF and in Final Draft exports.
- "Title on every page": series on the first header line, episode title on the second. This applies to the PDF, the print option and the page-break marks in the editor.
- Fountain export writes the title as two lines (series, then episode). Importing a Fountain file with a two-line title reads it back as series plus episode.
- Report PDF shows the series above the title.
- Exported file names include the series, for example
one-day-in-aspen-creek-the-lost-key.pdf. - JSON backups gain a
seriesfield. Older backups load with it blank.
- Save my contact info for future scripts checkbox under Contact on the Title page tab.
- While ticked, your contact details are kept in this browser and filled in on every new blank script (Script tools → Start a blank script, or "Start a new script instead" on the start screen).
- Importing a script shows that script's own contact info but never changes your saved copy.
- Editing the Contact field while the box is ticked updates the saved copy. Unticking the box clears it.
- Submit feature requests and bug reports link in the footer. It opens an email to apps@jdsutter.me with the subject "Soundwright Feedback". Hovering shows the address for anyone without an email app set up.
- Favicon based on the start-screen waveform: blue-to-teal bars with one orange bar on a dark tile. It's included in SVG, PNG and Apple home-screen sizes, all built into the page.
Changed
- The top-left badge now reads ATC and links to audiotheatrecentral.com (previously "JD", linking to jdsutter.me).
Version 8.1 — 29 September 2026
Added
- Final Draft export (
.fdx), as a new tab in the Export window and a button under Script tools → Settings. It also opens in WriterDuet, Fade In and Highland.- Scene → Scene Heading (with scene number), Action → Action, Character → Character, Dialogue → Dialogue, Direction → Parenthetical.
- SFX, Music and Text → General.
- Bold, italic and underline carry over. Title page included (title, "Written by", writer, version, contact).
- Dialogue line numbers and PDF highlights are not exported.
- Version number in the footer of the start screen and the editor.
- JSON backups now record which app version saved them.
Fixed
- The PDF tab in the Export window described page breaks as "(MORE)". It now says "(CONT.)", matching the PDF itself.
Before 8.1 — the prototype, 28–29 September 2026
What the app could already do when version tracking began.
Editor
- Line types: Scene, Action, Character, Dialogue, Direction, SFX, Music, Text, plus Auto (the app decides).
- Auto-detection while typing: NAME in capitals → Character;
SFX:/MUSIC:→ cues;SCENE,INT.,EXT.→ Scene;(→ Direction; a plain sentence → Action. - Character name autocomplete. Tab (or →) accepts the name and drops to the dialogue line.
- Margin label on every line. Click it to change the line type, or choose Auto to hand it back to detection.
- Tab / Shift+Tab steps through line types on a blank line. Enter on an empty dialogue line clears it back to Auto.
- Bold, italic and underline in a toolbar that stays pinned while you scroll.
- Scene numbers at the outer edges; dialogue line numbers on both sides, a step inside the scene numbers.
- Page break estimates, with optional page numbers and title on every page.
- Light, dark or system appearance.
Script tools panel
- Report: estimated runtime, page count, scene count, cue count, cast list with lines and words, cue sheet, scene list.
- Tap a cast name to highlight their lines in the editor.
- Tick a cast name to highlight their lines in yellow on the PDF.
- Download report PDF.
- Title page form: title, version, writer, contact.
- Settings, import and export, start a blank script.
Export and import
- JSON backup (full fidelity) and Fountain. The Fountain title page writes contact lines as "Label – value" so WriterDuet keeps them.
- PDF made directly in the app: US Letter, Courier 12 point, 1.5 inch left margin, no browser headers or footers.
- Dialogue splits across pages with (CONT.) and NAME (CONT'D). The continued part keeps its original line number.
- Every other line type moves to the next page whole. A character name always stays with its dialogue, and a scene heading stays with its first lines.
- Save dialog on every export in Chrome, Edge, Opera and Brave; a file-name prompt in other browsers.
- Import from a JSON backup, a Fountain file, or pasted plain text.
- Print instead (browser print with a print stylesheet), kept as a secondary option.
Site
- Start screen with branding, tagline and Start writing / Continue writing.
- Footer linking to Audio Theatre Central.
- Script saves automatically in the browser (localStorage).