JSON: Transition of different scenes?

Hello,

I’m new here and just getting to know WLED. I’m currently trying to create scenes with transitions on my own 2D LED wall (29x8). That’s why I’m trying to understand the JSON format.

For testing purposes, I would like to crossfade different scenes, each lasting 10 seconds.

{“on”:true,“bri”:255,“tt”:10000,“seg”:{“id”:0,“i”:[0,232,“ff0000”]}}
{“on”:true,“bri”:255,“tt”:10000,“seg”:{“id”:0,“i”:[0,87,“ff0000”,87,145,“ffff00”,145,232,“ff0000”]}}
{“on”:true,“bri”:255,“tt”:10000,“seg”:{“id”:0,“i”:[0,58,“ff0000”,58,174,“ffff00”,174,232,“ff0000”]}}
{“on”:true,“bri”:255,“tt”:10000,“seg”:{“id”:0,“i”:[0,29,“ff0000”,29,203,“ffff00”,203,232,“ff0000”]}}
{“on”:true,“bri”:255,“tt”:10000,“seg”:{“id”:0,“i”:[0,232,“ffff00”]}}

But I don’t understand 1. where I have to insert the code and 2. whether it’s correct?

I’ve now created a preset for each scene, and then a playlist to play them all. However, it seems the transitions are being completely ignored. The scenes jump directly into each other without any crossfade.

Edit: Duration: 0.5s, Transition 10s, I’m using an ESP32s.

Do I need to adjust any settings in the setup to activate the transitions/crossfade?

duration must be >= transition

edit: are you using fixed colors? that will freeze a segment, frozen segments do not transition as they are “pinned”

Thanks for your help! But I still haven’t made any progress :unamused_face:.

duration must be >= transition

I’ve already thought of that and tried it. But unfortunately it didn’t help.

@dedehai What is meant by ‘fixed colors’? Unfortunately, I can’t find anything about it.

That’s what i did:

The individual scenes as presets …

// Stripes_Mid 1
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,232,“ff0000”]}}
// Stripes_Mid 2
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,87,“ff0000”,87,145,“ffff00”,145,232,“ff0000”]}}
// Stripes_Mid 3
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,58,“ff0000”,58,174,“ffff00”,174,232,“ff0000”]}}
// Stripes_Mid 4
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,29,“ff0000”,29,203,“ffff00”,203,232,“ff0000”]}}
// Stripes_Mid 5
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,232,“ffff00”]}}
// Stripes_Mid 6
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,87,“ffff00”,87,145,“00ff00”,145,232,“ffff00”]}}
// Stripes_Mid 7
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,58,“ffff00”,58,174,“00ff00”,174,232,“ffff00”]}}
// Stripes_Mid 8
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,29,“ffff00”,29,203,“00ff00”,203,232,“ffff00”]}}
// Stripes_Mid 9
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,232,“00ff00”]}}
// Stripes_Mid 10
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,87,“00ff00”,87,145,“00ffff”,145,232,“00ff00”]}}
// Stripes_Mid 11
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,58,“00ff00”,58,174,“00ffff”,174,232,“00ff00”]}}
// Stripes_Mid 12
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,29,“00ff00”,29,203,“00ffff”,203,232,“00ff00”]}}
// Stripes_Mid 13
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,232,“00ffff”]}}
// Stripes_Mid 14
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,87,“00ffff”,87,145,“0000ff”,145,232,“00ffff”]}}
// Stripes_Mid 15
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,58,“00ffff”,58,174,“0000ff”,174,232,“00ffff”]}}
// Stripes_Mid 16
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,29,“00ffff”,29,203,“0000ff”,203,232,“00ffff”]}}
// Stripes_Mid 17
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,232,“0000ff”]}}
// Stripes_Mid 18
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,87,“0000ff”,87,145,“ff00ff”,145,232,“0000ff”]}}
// Stripes_Mid 19
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,58,“0000ff”,58,174,“ff00ff”,174,232,“0000ff”]}}
// Stripes_Mid 20
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,29,“0000ff”,29,203,“ff00ff”,203,232,“0000ff”]}}
// Stripes_Mid 21
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,232,“ff00ff”]}}
// Stripes_Mid 22
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,87,“ff00ff”,87,145,“ff0000”,145,232,“ff00ff”]}}
// Stripes_Mid 23
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,58,“ff00ff”,58,174,“ff0000”,174,232,“ff00ff”]}}
// Stripes_Mid 24
{“on”:true,“bri”:255,“seg”:{“id”:0,“i”:[0,29,“ff00ff”,29,203,“ff0000”,203,232,“ff00ff”]}}

And then a playlist

{
“playlist”:
{
“ps”:[15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],
“dur”:110,
“transition”:100,
“repeat”:0,
“end”:0,
“r”:false
},
“on”:true
}

by fixed color I mean the “Per-segment individual LED control” i.e. “i” command. cant do transitions on that as it is a “one shot” not an effect.

How can I then automatically and slowly blend multiple scenes/images?

by using the “solid” effect, overlapping segments, grouping and spacing it should be doable since you only need static colors. segment lengths however will not transition, only colors

Oh, I see, but that’s extremely time-consuming. Especially if you want to blend different images or scenes.

Is there really no easier way to blend bitmaps?

I don’t think so. Not without changing a lot of code.

If I interpret your presets right, you are only setting a few colors. that is not too complicated to do with the solid effect and a few segments.

the alternative is to write an effect that does what you want.