Resource icon

OBS Lyrics 1.4.3

hpluke

New Member
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..
 

hpluke

New Member
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..
Found a way to do it by separating a song into few "songs" (by verse, chorus, bridge). Thanks :)
 

TheNam

New Member
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
 

TheNam

New Member
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
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.
 

DCStrato

Member
The Nam,

Are you using the latest version? Are you electing to "fade in/out" scripts? Best fade times might vary with processing speed. I watched the video but didn't see what you were referring to. The Song Title is used for the filename the song is saved under. This probably works in English, but if special characters are used in a different language, then I don't know how an OS (or Lyrics Script) might react. The key might be to separate Title from FileName and offer those somehow as two different entries. I will look into it.

DC
 

DCStrato

Member
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.
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
 

Attachments

amirchev

Member
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
Nice work, I wasn't sure how to actually implement that. It's included in 1.4.2!
 

DCStrato

Member
Nice work, I wasn't sure how to actually implement that. It's included in 1.4.2!
Thanks,

I was trying to solve "The Nam"'s problem before he needed the script for his service. I have not heard anything back from him yet on this thread. Were you able to reproduce his other issue of text going away for a fraction of a second?

DC
 

robh

New Member
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
 

DCStrato

Member
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
Sorry Robert,

Looks like a bug that needs addressing. New additions were recently made to accommodate titles that didn't work as file names. The "Delete" option for this was overlooked. Fix for delete is attached.

D.C.
 

Attachments

Last edited:

DCStrato

Member
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,

I am unable to duplicate your Problem 2 where "non-text" sources are being loaded for selection. The script specifically tests for "text_gdiplus" or "text_ft2_source" as the source_id and only loads those returning those types. I can see where this would be an annoyance, however I am unable to help at this time. I will continue to try and replicate your situation and maybe discover why OBS would be returning all sources with a text ID in your environment. Maybe Amirchev will have time to see if he can duplicate the issue. If we can get others with the same problem it might be easier to isolate and repair. We use this script multiple times every Sunday, so we get a chance to find most issues pretty quickly.

DC Strato
 

TheNam

New Member
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
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/45yigk
 

DCStrato

Member
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
 

Attachments

TheNam

New Member
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
It works now as it should! I can't thank you enough for all your effort. God bless you!
 

DCStrato

Member
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.
 

an tam

New Member
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.
Thanks D.C
I download OBS-Lycrics-1.4.2
Thanks for your help

AnTam
 
Last edited:

amirchev

Member
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
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.
 

amirchev

Member
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 SongAmazing Grace
Current Lyric​
Amazing Grace, how sweet the sound
That saved a wretch like me
Next Lyric​
I once was lost, but now am found
Was blind, but now I see.
Next Song in Prepared ListOnward Christian Soldiers
I think this is something we can look into for sure.
 
Top