Skip to content

Conversation

@mko1989
Copy link

@mko1989 mko1989 commented Dec 17, 2025

  • Add per-custom-field TTS configuration with threshold, voice, and language settings
  • Implement TTS hook that reads time values (hh:mm:ss or mm:ss) from custom fields
  • Add voice selection UI in custom field settings with language dropdown
  • TTS only active in cuesheet view, speaks numerical seconds when below threshold

- Add per-custom-field TTS configuration with threshold, voice, and language settings
- Implement TTS hook that reads time values (hh:mm:ss or mm:ss) from custom fields
- Add voice selection UI in custom field settings with language dropdown
- TTS only active in cuesheet view, speaks numerical seconds when below threshold
- Fix custom field validation for Companion API integration
- Fix production path resolution and SPA routing for deployment
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 17, 2025

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cpvalente
Copy link
Owner

Hi @mko1989 , thank you for this

I am not entirely sure this is a feature that belongs in Ontime.
In the past we have been opinionated that Ontime should not produce any sounds.

I will make sure we review this on our next chat, but meanwhile, can you give me some context as to when this feature is useful? what environment would you use it on and what problem does it solve?

Out of curiosity: which LLM did you use to make the changes? Did you find that the LLM managed to find things well enough with the existing code documentation practice?

@mko1989
Copy link
Author

mko1989 commented Dec 18, 2025

Its fully your decision.

The use case for the feature is inputting the audio from ontime into comms for the whole av team so the whole team can hear the countdown to the end of the video or audio cue, letting them prepare accordingly to what they need to do.
I'm a media server op and screen manager and I also run ontime, which makes it pretty hard to also do the multiple countdowns through out the event.

I'm using cursor with Gemini 3, composer 1 or set on auto. It didn't have any problems to find exactly what it needed in the code.
There was a lot of back and forth with deployment on a pi, but finally it managed it also.

@cpvalente
Copy link
Owner

I see.

I have a similar experience where there is not often an ontime person / show runner, but someone who takes on the extra work

This means that we should do our best to make sure this person is productive while using Ontime

However, I believe that this change set is more useful as a custom application.
Custom apps are not very used (as far as I know) but a very powerful feature of Ontime.

we could wrap this in a simple HTML + Javascript app which has minimal dependencies in react
this interface would just need to expose the current data from the websocket and allow the user to click "read aloud" on the fields they want

The features used are all browser features so this could be a very lean piece of code.
This would isolate maintenance and allows other users to expand and they need or want.

What do you think?

@mko1989
Copy link
Author

mko1989 commented Dec 18, 2025

Yeah, super awesome!
I didn't know ontime has that built-in.

I need to read up on that.

@cpvalente
Copy link
Owner

Nice, check out the docs here https://docs.getontime.no/features/custom-views/

if you do get around to build something let us know, we could create a repository with links to users custom extensions

Also feel free to drop by our discord if you need some help

@mko1989
Copy link
Author

mko1989 commented Dec 18, 2025

ive put something togheter that you can find here: https://github.com/mko1989/ontime-custom-tts
but during testing i saw that there are inconsistencies for reciving data from companion. Sometimes it just works and sometimes it gives WS IN: Error: Invalid property or value
I was testing on official releases of both ontime and companion module

@cpvalente
Copy link
Owner

thank you!

Do you mind adding some screenshots or a gif of the interface working? I think it could help users figure out what this does
Asides from it, which data are you getting from companion?

you shouldnt need anything from companion here.
if there are issues with the module you can reach out here

@mko1989
Copy link
Author

mko1989 commented Dec 18, 2025

Sure I'll add some screenshots.

I'm getting video remaining time data or audio cue remaining time data from companion.
During testing it worked fine at first and then it stopped working at all. I mean data coming from companion to ontime.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants