Found a way to do it by separating a song into few "songs" (by verse, chorus, bridge). Thanks :)Besides [Reset to Song Start] and [Reset to First Song] , izit possible for me to add a hotkey for #chorus or #bridge? Cause some songs have many lines and hard to go to the correct one with [Next/Previous Lyrics] function while doing live..
Also another problem I have is that when I save Vietnamese song lyrics, the file name doesn't save right and the song lyrics don't show in the script. I want to use this script in a big Vietnamese church conference in a few weeks, but I have to find an alternative if this bug isn't fixed by then.Hey, thank you so much for making this awesome script! I only have one problem and that is that when I got to the next or previous lyric the text goes aways for a fraction of a second. I have my transitions turned off. Do you know about this problem?
Here's a video https://streamable.com/0e0npe
The Nam,Also another problem I have is that when I save Vietnamese song lyrics, the file name doesn't save right and the song lyrics don't show in the script. I want to use this script in a big Vietnamese church conference in a few weeks, but I have to find an alternative if this bug isn't fixed by then.
Nice work, I wasn't sure how to actually implement that. It's included in 1.4.2!The Nam,
Lua is not very supportive of Unicode in file operations which is the root cause of the Titles not saving right with songs like Amazing Grace, spelled in Vietnamese as Ơn lạ lùng. The attached revisions will now detect ANY invalid character in a Song Title that is to be used for a file name and encode an alternate filename with all valid characters. I tested it with Unicode and invalid characters like '?' in the title. This is a big help for English songs like "What Child is This?". Normally songs are stored in .config with a .txt suffix, but encoded files are now stored with a .enc suffix to tell them apart. When building the song list it knows to decode .enc files back to their original name. Give this a try and report back anything that does not seem to act normal now. Thanks for the help debugging.
DC
Thanks,Nice work, I wasn't sure how to actually implement that. It's included in 1.4.2!
Sorry Robert,Hello,
I'm new to this forum so I apologize if I am contacting you unconventionally. I am bringing up a new topic.
First, thanks for your lyrics script, I look forward to using it in our church services.
OBS: 27.0.1
script: 1.4.2
Windows 10 64 bit
Problem 1:
When I press [Delete Song] this error message appears:
[lyrics.lua] Failed to call button_prop_clicked for button_prop_clicked: ...tudio/data/obs-plugins/frontend-tools/scripts/lyrics.lua:954: attempt to concatenate local 'suffix' (a nil value)
Problem 2:
When I first run the script all the sources -- text and non-text -- from the first non-empty scene populate the "text source" drop down; none of these sources are for lyrics. I have found no way to remove them. (I say 'first non-empty scene' because I put an empty scene at the top of the scene list but it was ignored and the behaviour remained the same.)
I have been able to get one lyric to display properly but problem 2 is very annoying since the lyrics text source name is added to the many irrelevant sources.
Possible Issue:
A few months ago my colleague used an earlier version of the lyrics script; I simply overwrote that version with 1.4.2. Is it possible there are files floating around that need to be deleted?
I have done a reinstall of OBS, this did not change anything.
Thanks again for your hard work and I hope you can resolve these problems.
Regards,
Robert
Robert,Hello,
I'm new to this forum so I apologize if I am contacting you unconventionally. I am bringing up a new topic.
First, thanks for your lyrics script, I look forward to using it in our church services.
OBS: 27.0.1
script: 1.4.2
Windows 10 64 bit
Problem 1:
When I press [Delete Song] this error message appears:
[lyrics.lua] Failed to call button_prop_clicked for button_prop_clicked: ...tudio/data/obs-plugins/frontend-tools/scripts/lyrics.lua:954: attempt to concatenate local 'suffix' (a nil value)
Problem 2:
When I first run the script all the sources -- text and non-text -- from the first non-empty scene populate the "text source" drop down; none of these sources are for lyrics. I have found no way to remove them. (I say 'first non-empty scene' because I put an empty scene at the top of the scene list but it was ignored and the behaviour remained the same.)
I have been able to get one lyric to display properly but problem 2 is very annoying since the lyrics text source name is added to the many irrelevant sources.
Possible Issue:
A few months ago my colleague used an earlier version of the lyrics script; I simply overwrote that version with 1.4.2. Is it possible there are files floating around that need to be deleted?
I have done a reinstall of OBS, this did not change anything.
Thanks again for your hard work and I hope you can resolve these problems.
Regards,
Robert
Thank you so much for fixing the Unicode bug! I believe it works now as it should. However, the problem of the text disappearing for like 20-50ms when going to the next lyric second still remains. When using older versions like 1.2.1 I didn't have this problem. Here's another video demonstrating the issue: https://streamable.com/45yigkThe Nam,
Lua is not very supportive of Unicode in file operations which is the root cause of the Titles not saving right with songs like Amazing Grace, spelled in Vietnamese as Ơn lạ lùng. The attached revisions will now detect ANY invalid character in a Song Title that is to be used for a file name and encode an alternate filename with all valid characters. I tested it with Unicode and invalid characters like '?' in the title. This is a big help for English songs like "What Child is This?". Normally songs are stored in .config with a .txt suffix, but encoded files are now stored with a .enc suffix to tell them apart. When building the song list it knows to decode .enc files back to their original name. Give this a try and report back anything that does not seem to act normal now. Thanks for the help debugging.
DC
It works now as it should! I can't thank you enough for all your effort. God bless you!The Nam,
I think I found the issue in the small delay you are seeing. Some fade cycles were still being included even if fade was not selected. Please try this attached version and see if it performs more like you were expecting. It also repairs the Previous Lyric button not backing up to prior songs when paged backward past the first verse of a song. (It is the current design to start back at the first lyric of an earlier prepared song in this case. )
DC Strato
Hi an tam,
Any text in the text object "Lyrics" within the scene (like the word "TEXT" in your example, will be replaced with text of the lyrics when you run the script. However, the script does change the opacity of the Lyric Text Object to fade it out and back in as an effect if selected. What version of Lyrics script are you using?
D.C.
Yup a dockable panel means an entire rewrite. It's possible using browser docks and Browser Source that spoke to each other, but we'd lose the ability to use hotkeys.Thanks,
I think to be a dockable panel it would have to be rewritten and compiled to use the OBS dev library. This started as a rather simple LUA script by Amirchev and evolved (feature crept) into not so simple a Lua script. Maybe someday we can tackle the docking window. I can program in almost any language, but Lua was just readily available for OBS and easy. I have a nifty PTZ camera controller I wrote for OBS that drives our five cameras with 12 presets each (plus home) that are also dynamically loaded with source objects per scene. I don't have PTZOptics cameras and didn't like having to use the browser source to change presets anyway. It is a separate executable that I have considered turning into a dockable window for OBS later this summer. If I start down that road I will try to drag Lyrics along for the ride. Right now everything is working for our services and I and afraid to mess with it too much.
Question: Do you pre-prepare lyrics or dynamically load them with the Prepare Lyrics source object? One of my to-dos is to be sure the dynamic load method using the source object is somehow fully compatible with pre-prepared lyrics. I think right now you pretty much have to do it one way or the other but not both. Right now you get either a pre-prepared LIST of songs that get paged through, or you can dynamically prepare one lyric per scene. The blend would be to be able to dynamically prepare either a single lyric or a "Playlist" using the Prepare Lyric source object. It would mean adding the ability to save the pre-prepared list, adding those marked as playlists of multiple lyrics when selecting, and preparing ALL the songs in the list from the Source object. Most of the infrastructure code is already there and is just missing little glue.
DC
I think this is something we can look into for sure.So, when I wrote this, I didn't understand that the songs are held in .TXT files, which is what I wanted to use, so no worries there.
I do use hotkeys (just set up a Streamdeck XL, oh my that is fun...in a good way). If there was visual feedback on the screen in the script window that gives me what I show below, I could see using that, I have enough screen real estate, but definitely have to keep using hotkeys
Probably the only thing that I would want to have is a control panel that shows the currently prepared song in the list and the next song, along with perhaps the current lines of the lyric that would be shown in the scene if it is visible and the next lines coming up?
This would be my ideal control panel (mockup)
Current Song Amazing Grace Current LyricAmazing Grace, how sweet the sound
That saved a wretch like me Next LyricI once was lost, but now am found
Was blind, but now I see.Next Song in Prepared List Onward Christian Soldiers