Skip to content

SwayLtd/Teleprompter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sway Prompter

Sway Teleprompter: A collaborative teleprompter tool designed for real-time, multi-device text synchronization. Ideal for teams in broadcast, stage, and studio production.

Roadmap

TO DO

  • Rename all "reading speed" to "velocity"
  • Block the manual scroll when the text is playing
  • Is the text color picker still needed? > Keep the code in comment for now.
  • Rename the update_text and text_updated events to something more global like "properties"
  • Check if I can delete the isPlaying variable in the socket.emit() calls where it's not needed
  • Delete font size, velocity changes where not needed
  • Merge the local velocity and font sizes changes with the server changes function
  • Merge all the socket.emit() calls into one function
  • Merge saveState and socket.emit() calls into one function
  • Change the functions order to match the controls order (roomID, syncText, roomName, isPlaying, scrollTop, textAlignment, textOrientation, velocity, fontSize, textWidth, textColor, bgColor)
  • Check if the e.preventDefault() can be called at the beginning of the function instead of in every if statement
  • Refactor the code
  • 2 times more velocity steps
  • Syncing the text editing scroll position
  • Increase font size maximum (new default is 72px)
  • Sync text width
  • Move the arrows up and down
  • Automatically pause the text scrolling when it reach the end of the scroll
  • Timer formatting (00:00:00 / 00:00:00)
  • Add the space before and after the text automatically depending on the text to start and end where the arrows are
  • Add a scrolling pad on controls side menu
  • Text editing, synced regularly if edited, not when the user is not editing the text
  • (Phone remote) 16:9 prompter preview (can be hidden)
  • (Phone remote) Separate text editor
  • Add icons for sliders (speedometer for velocity)
  • Add a timer before the text scrolling starts (like a countdown)
  • Text before reading line grayed out
  • Option to show a opacited background over the text to "hightlight" the text reading area
  • Right click text editor
  • Text spacing
  • Screen recording
  • Return to top button
  • Font selection
  • Multriple languages support
  • Supports reflection by creating a gradient in background color
  • For phone remote, add a button to pause the text scrolling by long pressing the button (toggle to enable long press pausing)
  • Information menu (shortcuts, usage like long press to pause on phone, etc.)
  • Make a new phone interface like the side menu for a remote use
  • Remove jQuery to use only vanilla JavaScript
  • Moving all isPlaying changes to toogleAutoScroll()
  • Limit the number of interface of the same room opened at the same time
  • Button to invert the arrow shortcuts and wheel scroll direction
  • Add a button to fullscreen the prompter
  • Partnership with a teleprompter manufacturer to create a hardware version of Sway Teleprompter or to suggest to buy a teleprompter (with Sway Teleprompter integrated?)
  • Product page (Elgato Prompter product page + Prompter image with feature text scroll inside example)
  • Sync record with camera recording or with the video recording software

Planned Features

  • UI v2 (new phone remote, new controls)
  • Implement Redis to store rate limiting data and for caching to improve performances (don't forget Handle Cache Invalidation)
  • Phone remote v2 (scroll pad, new design)
  • Voice sync technology
  • Automatic captions linked to the prompter text
  • Custom keyboard shortcuts
  • Elgato stream deck integration
  • Bluetooth remote implementation
  • Integrated audio recorder (compatible with ASIO driver?)
  • Paraphrase and translate text with AI

Implemented Features

  • Named room system
  • Two way synchronization (text, text formatting, velocity, font size, scroll position, play/pause state)
  • Automatic text scrolling
  • Local settings (text alignment, text reverses, text width, text color, background color, reset button)
  • Text formatting (bold, italic, underline, strikethrough, text color, etc.)
  • Remote in portrait mobile view
  • Rate limiting
  • Database implementation
  • Reading timer

Need to add other already implemented features

Known Issues

  • Fix the "undefined" bug when a state is changed an the other state remains the same
  • Fix the velocity shortcut that have a value of "30.000000000000004%" instead of "30%"
  • Fix the font size shortcuts that only up or down the font size by 1px
  • Fix the play/pause button and shortcut state issue
  • Fix the text color picker in the text editor that only work if we press Enter or click on the same text again
  • Fix the wheel event that is working with the manual scroll when the text is playing
  • Fix the velocity value issue caused by floating-point arithmetic inaccuracies in JavaScript
  • Fix the synchronization issue when all the information are not stored on the server because only the last one is stored without all properties
  • Fix the sync button that doesn't do anything
  • Fix the ability to format the room name text
  • Fix the scroll position going to the bottom of the text when formatting the text
  • Fix the room name editing that is not working on mobile

About

Teleprompter app synchronized over local network

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published