Jump to content
Light-O-Rama Forums

Rest API Overrides?


ItsMeBobO

Recommended Posts

@MattBrown

Is there a REST api end point to insert a sequence into the overrides?     I have been able to play a sequence which was already there and get the list of sequences in override but not insert using API.   

 

Also I am still hoping to trigger a sequence to be prepared  (create the .lorplay) using the API.    My process is creating new S6  .loredit files which are new to the player and I need to be able to prepare and play via api

Link to comment
Share on other sites

Last season was pretty good for MIIP using S6  RestAPI.    Thanks for the adjustment to begin the schedule paused.  That worked for us.

This year I will need to adjust somewhat because MIIP was not able to persist animations.  Ive got a plan for that in the works which involves a stored show in place of a query to push all sequences into an .lss 

 

I am looking for programming advice on how to handle scheduling a large number of .loredit file in S6.    These contain the current Weather,   Days/hours till Christmas,  Time of day,  and other messages. 

There are several issues not faced in S4 where I did not have to know the name of the file ahead of time to cause S4 player to play it. 

One S6 issue is I will have over 6000 .loredit files.     It does not seem appropriate to load them all up into S6.lss.    I need to send them to play 'on the fly' without previously existing in any .lss.

Many of them will not be in a prepared state (no .lorplay) because they are created moments ago.    Can I trigger the preparation step somehow?

 

 

 

  • Like 1
Link to comment
Share on other sites

What if we added a "tempoverride" endpoint that accepted a sequence file name and an immediate/after-song flag? It would be treated like an override, but not get added to the permanent list of overrides. Playback file generation would happen automatically. For security reasons, I would disallow any path information in the sequence file name. Would it be ok if we assumed these files were in the default sequences folder? Or can we have it look in a fixed subfolder like "Sequences\TempOverrides"?

Link to comment
Share on other sites

Thank you Matt for problem solving with me.   

A single file location would be tough but not impossible.   I could copy there but the original would remain in its folder.   The regular show builder allows folders.

Folders to organize are important to me since I have so many.  The LORinternal\Playback folders follow where the .loredit  live.

Will there be duplicate playbacks in "Sequences\TempOverrides" and also in the natural home of the .loredit?

 

What I do is keep folders by year with multiple groups within year.   Sequences/24/Scroller/days  

days folder has 247 prebuilt days and hours to Christmas .loredit files which are static.

time folder has 720 prebuilt time no AM/PM .loredit files which are static.

weather folder 4650 prebuilt temp/wind/precip  .loredit files which are static. 

Using S4, I was able to prepare by building an .lss with all of them to compress but that .lss was not used for scheduling them. 

 

Finally,  guests interact with my show via a web page which accepts messages to scroll on the big sign.  These are the only set which are built on the fly.   All are scheduled on the fly. 

 

Would it help if am able to provide the id='guid'  which needs to play?    or the location of the .playback to play?

 

 

 

 

Link to comment
Share on other sites

Instead of dealing with all of these files, what if we allowed certain motion effects to be run from the REST API? I'm thinking of an API like this:

MotionEffects/enable: specifies preview

MotionEffects/disable

MotionEffects/favorite: prop/group, favorite name, layer, duration, intensity/fade in/fade out

MotionEffects/colorwash: prop/group, color(s), layer, duration, intensity/fade in/fade out

MotionEffects/text: prop/group, html text, position, font size, layer, duration, intensity/fade in/fade out

Motion effects would be calculated and displayed real-time, like the motion effect generator. Nothing calculated in advance. A layer number would allow motion effects to be superimposed upon one another.

Link to comment
Share on other sites

Posted (edited)

This makes me lock jaw speechless!   Sending real time effects to a prop group in the middle of a show playing or not playing is the ultimate!    

But ... I have SO many issues with doing all this from an external interface!   Too many varying parameters to store and set and I wont have any way to preview them.    Can I suggest something just like this but adding a control layer? 

If you are going to allow us activate REAL TIME effects to overlay whatever is playing.   Here is my idea

 

Design the whole effect entirely in the motion effects generator without music.   These effects will play not synchronized with the music and are not time bound.  

Allow the motion effect to be saved in its own file with its own extension and location and Author designated name.    Just like a sequence it has to be editable /  maintainable  with a .bak file.  Should allow to be created in a folder to organize them. 

Allow the LOR App or  Rest API to activate it as stored by its Author designated name.   but...

Allow the activation to supply as an OVERRIDE of just a few of the many values needed to create the motion effect.  

For myself, I would focus only on the supplied message text.    Basically if we could have motion effects templates with predefined effects and just provide the final differentiating parts.    Text & color palate but nothing which could cause the effect to fail or diverge from how it was saved originally.   Even allowing the font or size to change could easily cause the message to go off stage.  Since this is real time and cant be validated, I would want it to be restricted to change only parameters which are safe for the final result. 

Some messages are short like "The time is 8:01" or "Thunder"    and some are long with many words..."Please park on the far side of the street with your headlights off and windows up"    My hope would be the ME Template would work without pre knowledge of the length of the message.   Meaning the variable duration of the scrolled message would not cause the effect to mess up by going too quickly or slowly in a given amount of time.   Just keep cycling the other effect until the entire message has been seen instead of adjusting message speed into a effect duration.  Detect scroll off page and fade out or whatever the end effect is.    Maybe an API call with the text to return what the duration should be set to for proper function. 

 

If some version of this were available.     My coding project would be to allow my visitor to select the real time effect template which had a text effect and provide the words.    Call the API to play.   Actually I would really need to know when its finished so the next one does not step on it before its finished.  Maybe an API call which can be checked for real time effect playing  boolean. 

 

 

 

 

Edited by ItsMeBobO
Link to comment
Share on other sites

  • 3 weeks later...

What I would love is the ability to put a live custom text overlay on a specific prop/group (my p5 panel) at a specific x/y position (with at least some formatting) such that we could overlay custom messages on any sequence at any time live.  Right now, if I want to do that, I basically need to have FPP handle my p5 panel and write a custom orchestrator that will call the FPP REST API to overlay a custom message on it. Being able to skip that step would make my life a whole lot easier!

Link to comment
Share on other sites

Right now the only way to drive a P5 matrix from LOR as sequence data is to send E1.31 to an fpp instance.  The only other way is to send video to the matrix using a ColorLight sender card on the PC end and a Colorlight receiver card that drives the matrix.

As I recall, BobO has a LOR add-on that will send real-time text to a matrix.  I have no further details.

 

Link to comment
Share on other sites

On 8/6/2024 at 8:41 AM, k6ccc said:

As I recall, BobO has a LOR add-on that will send real-time text to a matrix.  I have no further details.

Yes   I have software to create on the fly text sequences.  But I dont want to clog up this thread, which is about the Rest API, discussing it here. 

Link to comment
Share on other sites

Posted (edited)

@MattBrown    Is there a status you can share on this possibility?      This next week or two I will try to build a show file with all of the prebuilt sequences to see if the player can handle them all.   

Edited by ItsMeBobO
Link to comment
Share on other sites

  • 1 month later...

@MattBrown

Does the future API hold anything for background sequences?       Is there some way to resetQueue on a background to remove it from playing? 

CPapiMainSequences.jpg

 

The long version.    MIIP is controlling what is playing next by ordering and calling resetQueue.     Recall the way this is done is put all the sequences in at start up.   But a particular miip show may play only a few of them.    MIIP has a 24/7 schedule and uses resetQueue setting no songs after hours.  The LOR show is playing nothing.  However the background needs to be pulled out also or it will play 24/7. 

 

Link to comment
Share on other sites

S6.3 included changes to the way .lss files are formatted.   I see (PT0S,PT0S,PT0S,PT0S)  which I don't know what it does but I have tried to replicate it. 

I also notice the way breaks between songs works with a faux sequence entry. 

At the moment the biggest issue is for miip users who wish to have Background animations run on a schedule. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...