Shotcut Challenge: Circular progress bar

Got it. Thanks!

@elusien will know the answer, of course, but @namna, is your browser Safari? Perhaps you could try changing “animation” (line 18) to “-webkit-animation”.
Just guessing here but it might work…

Merci @jonray Cela ne fonctionne pas dans Firefox mon navigateur par défaut.
J’ai essayé Safari, ne fonctionne pas.
Par contre Chrome fonctionne.
La modification de la ligne 18 ne change rien.

Thanks @jonray It doesn’t work in Firefox, my default browser.
I tried Safari, not working.
On the other hand, Chrome works.
The modification of line 18 does not change anything.

It probably needs a Chromium-based browser such as Google Chrome, Microsoft edge. It probably doesn’t work with Safara on a Mac.

The script uses the @property feature which is fairly recent for Safari and Firefox - see:

Dans ce cas il devrait apparaitre un message d’alerte:
“Vous êtes trop vieux, votre matériel est obsolète, allez acheter un PC, mettez vous au goût du jour …”
J’ai compris, tant pis pour moi. :disappointed_relieved:

In this case, an alert message should appear:
"You are too old, your equipment is obsolete, go buy a PC, get up to date … "
I understood, too bad for me. :d isappointed_relieved:

1 Like

Hi @elusien,
I took your HTML file, and if it’s OK with you I tweaked it with some extra code:

  1. made it centered in my browser,
  2. gave it a black background,
  3. changed the colours (circle, centre circle and font),
  4. changed the font to monofonto.

Then I screen-captured it in action, then imported into SC and removed the black background with a Chroma-key filter.
Looking good I think. Congratulations on this useful HTML!
(No audio on these demos). (Also how sad these are going to get disliked on YouTube. Sigh.)

Here’s the initial screen- capture I made.

Here’s my amended HTML file. Just delete the fake .TXT extension:
elusien progress bar with added javascript green and cream.html.txt (1.6 KB)

I notice it works by adjusting the radial-gradient and conic-gradient attributes. How very clever!

1 Like

I don’t think we can expect more participants in this challenge.
Pretty soon I’ll share a tutorial showing my method.
I’m still working on it (intermittently) So possibly tomorrow.

1 Like

Try changing your conic gradient to:

        conic-gradient(
            violet 0deg,
            indigo calc(var(--degrees) / 7 * 1),
            blue   calc(var(--degrees) / 7 * 2),
            green  calc(var(--degrees) / 7 * 3),
            yellow calc(var(--degrees) / 7 * 4),
            orange calc(var(--degrees) / 7 * 5),
            red    calc(var(--degrees) / 7 * 6),
            violet calc(var(--degrees) / 7 * 7),
            transparent calc(var(--degrees) / 7 * 7),
            transparent 100deg);

for a nice rainbow effect:
Screenshot 2024-12-18 140441

1 Like

Here’s my MLT:

<?xml version="1.0" standalone="no"?>
<mlt LC_NUMERIC="C" version="7.28.0" title="Shotcut version 24.11.17" producer="main_bin">
  <profile description="PAL 4:3 DV or DVD" width="1920" height="1080" progressive="1" sample_aspect_num="1" sample_aspect_den="1" display_aspect_num="16" display_aspect_den="9" frame_rate_num="25" frame_rate_den="1" colorspace="709"/>
  <playlist id="main_bin" title="Shotcut version 24.11.17">
    <property name="shotcut:projectAudioChannels">2</property>
    <property name="shotcut:projectFolder">1</property>
    <property name="shotcut:skipConvert">0</property>
    <property name="xml_retain">1</property>
  </playlist>
  <producer id="black" in="00:00:00.000" out="00:00:20.040">
    <property name="length">00:00:20.080</property>
    <property name="eof">pause</property>
    <property name="resource">0</property>
    <property name="aspect_ratio">1</property>
    <property name="mlt_service">color</property>
    <property name="mlt_image_format">rgba</property>
    <property name="set.test_audio">0</property>
  </producer>
  <playlist id="background">
    <entry producer="black" in="00:00:00.000" out="00:00:20.040"/>
  </playlist>
  <producer id="producer0" in="00:00:00.000" out="03:59:59.960">
    <property name="length">04:00:00.000</property>
    <property name="eof">pause</property>
    <property name="resource">C:/Users/xxx/Downloads/—Pngtree—cartoon bomb background and explosive_5082378.png</property>
    <property name="ttl">1</property>
    <property name="aspect_ratio">1</property>
    <property name="meta.media.progressive">1</property>
    <property name="seekable">1</property>
    <property name="format">1</property>
    <property name="meta.media.width">6250</property>
    <property name="meta.media.height">6250</property>
    <property name="mlt_service">qimage</property>
    <property name="xml">was here</property>
    <property name="shotcut:hash">e2222a5ccf163ed25cf177c6709241f4</property>
    <property name="shotcut:caption">—Pngtree—cartoon bomb background and explosive_5082378.png</property>
  </producer>
  <producer id="producer1" in="00:00:00.000" out="03:59:59.960">
    <property name="length">04:00:00.000</property>
    <property name="eof">pause</property>
    <property name="resource">C:/Users/xxx/Downloads/—Pngtree—cartoon bomb background and explosive_5082378.png</property>
    <property name="ttl">1</property>
    <property name="aspect_ratio">1</property>
    <property name="meta.media.progressive">1</property>
    <property name="seekable">1</property>
    <property name="format">1</property>
    <property name="meta.media.width">6250</property>
    <property name="meta.media.height">6250</property>
    <property name="mlt_service">qimage</property>
    <property name="xml">was here</property>
    <property name="shotcut:hash">e2222a5ccf163ed25cf177c6709241f4</property>
    <property name="shotcut:caption">—Pngtree—cartoon bomb background and explosive_5082378.png</property>
  </producer>
  <playlist id="playlist0">
    <property name="shotcut:video">1</property>
    <property name="shotcut:name">V1</property>
    <entry producer="producer0" in="00:00:00.000" out="00:00:10.000"/>
    <entry producer="producer1" in="00:00:00.000" out="00:00:10.000"/>
  </playlist>
  <producer id="producer2" in="00:00:00.000" out="03:59:59.960">
    <property name="length">04:00:00.000</property>
    <property name="eof">pause</property>
    <property name="resource">#00000000</property>
    <property name="aspect_ratio">1</property>
    <property name="mlt_service">color</property>
    <property name="mlt_image_format">rgba</property>
    <property name="shotcut:caption">transparent</property>
    <property name="shotcut:detail">transparent</property>
    <property name="ignore_points">0</property>
    <property name="xml">was here</property>
    <property name="seekable">1</property>
    <property name="meta.shotcut.vui">1</property>
    <filter id="filter0" out="00:00:10.000">
      <property name="rect">0%/0%:100%x100%</property>
      <property name="circle">1</property>
      <property name="color">#ffff8000</property>
      <property name="radius">1</property>
      <property name="mlt_service">qtcrop</property>
      <property name="shotcut:filter">cropCircle</property>
    </filter>
    <filter id="filter2" in="00:00:10.000" out="00:00:10.000">
      <property name="filter">shape</property>
      <property name="mlt_service">mask_start</property>
      <property name="shotcut:filter">maskFromFile</property>
      <property name="filter.mix">00:00:00.040=0</property>
      <property name="filter.softness">1</property>
      <property name="filter.invert">0</property>
      <property name="filter.use_luminance">1</property>
      <property name="filter.resource">C:/Users/xxx/AppData/Local/Meltytech/Shotcut/transitions/concentric_cones_5_true(1920x1080.png</property>
      <property name="filter.use_mix">1</property>
      <property name="filter.audio_match">0</property>
      <property name="filter.alpha_operation">overwrite</property>
      <property name="shotcut:animOut">00:00:00.000</property>
      <property name="shotcut:animIn">00:00:00.000</property>
    </filter>
    <filter id="filter1" out="00:00:10.000">
      <property name="filter">frei0r.alphaspot</property>
      <property name="mlt_service">mask_start</property>
      <property name="shotcut:filter">maskSimpleShape</property>
      <property name="filter.9">0</property>
      <property name="filter.0">0.333333</property>
      <property name="shotcut:rect">710 270 540 540 1</property>
      <property name="filter.1">0.510417</property>
      <property name="filter.2">0.5</property>
      <property name="filter.3">0.140625</property>
      <property name="filter.4">0.25</property>
      <property name="filter.5">0.5</property>
      <property name="filter.6">0</property>
      <property name="disable">0</property>
    </filter>
    <filter id="filter3" out="00:00:10.000">
      <property name="filter">frei0r.alphaspot</property>
      <property name="mlt_service">mask_start</property>
      <property name="shotcut:filter">maskSimpleShape</property>
      <property name="filter.9">1</property>
      <property name="filter.0">0.333333</property>
      <property name="shotcut:rect">771 326 420 420 1</property>
      <property name="filter.1">0.510938</property>
      <property name="filter.2">0.496296</property>
      <property name="filter.3">0.109375</property>
      <property name="filter.4">0.194444</property>
      <property name="filter.5">0.5</property>
      <property name="filter.6">0</property>
      <property name="disable">0</property>
    </filter>
    <filter id="filter4" out="00:00:10.000">
      <property name="filter">shape</property>
      <property name="mlt_service">mask_start</property>
      <property name="shotcut:filter">maskFromFile</property>
      <property name="filter.mix">00:00:00.000=0;00:00:09.960=100</property>
      <property name="filter.softness">0</property>
      <property name="filter.invert">0</property>
      <property name="filter.use_luminance">1</property>
      <property name="filter.resource">C:/Users/xxx/AppData/Local/Meltytech/Shotcut/transitions/concentric_cones_5_true(1920x1080.png</property>
      <property name="filter.use_mix">1</property>
      <property name="filter.audio_match">0</property>
      <property name="filter.alpha_operation">overwrite</property>
      <property name="shotcut:animIn">00:00:10.000</property>
      <property name="shotcut:animOut">0</property>
    </filter>
    <filter id="filter5" out="00:00:10.000">
      <property name="start">1</property>
      <property name="level">1</property>
      <property name="mlt_service">brightness</property>
      <property name="shotcut:filter">brightnessOpacity</property>
      <property name="alpha">0.75</property>
      <property name="opacity">0.75</property>
      <property name="disable">0</property>
    </filter>
    <filter id="filter6" out="00:00:10.000">
      <property name="format">SS.S</property>
      <property name="start">00:00:00.000</property>
      <property name="duration">00:00:10.000</property>
      <property name="offset">00:00:00.000</property>
      <property name="speed">1</property>
      <property name="direction">up</property>
      <property name="geometry">715 265 540 540 1</property>
      <property name="family">Verdana</property>
      <property name="size">96</property>
      <property name="weight">700</property>
      <property name="style">normal</property>
      <property name="fgcolour">#ffffaa00</property>
      <property name="bgcolour">#00000000</property>
      <property name="olcolour">#ff000000</property>
      <property name="pad">0</property>
      <property name="halign">center</property>
      <property name="valign">middle</property>
      <property name="outline">3</property>
      <property name="opacity">1</property>
      <property name="mlt_service">timer</property>
      <property name="shotcut:filter">timer</property>
      <property name="shotcut:usePointSize">1</property>
      <property name="shotcut:pointSize">72</property>
    </filter>
  </producer>
  <producer id="producer3" in="00:00:00.000" out="03:59:59.960">
    <property name="length">04:00:00.000</property>
    <property name="eof">pause</property>
    <property name="resource">#00000000</property>
    <property name="aspect_ratio">1</property>
    <property name="mlt_service">color</property>
    <property name="mlt_image_format">rgba</property>
    <property name="shotcut:caption">transparent</property>
    <property name="shotcut:detail">transparent</property>
    <property name="ignore_points">0</property>
    <property name="xml">was here</property>
    <property name="seekable">1</property>
    <property name="meta.shotcut.vui">1</property>
    <filter id="filter7" out="00:00:10.000">
      <property name="rect">0%/0%:100%x100%</property>
      <property name="circle">1</property>
      <property name="color">#ff0000ff</property>
      <property name="radius">1</property>
      <property name="mlt_service">qtcrop</property>
      <property name="shotcut:filter">cropCircle</property>
      <property name="disable">0</property>
    </filter>
    <filter id="filter8" out="00:00:10.000">
      <property name="filter">shape</property>
      <property name="mlt_service">mask_start</property>
      <property name="shotcut:filter">maskFromFile</property>
      <property name="filter.mix">00:00:00.000=34.93</property>
      <property name="filter.softness">0</property>
      <property name="filter.invert">1</property>
      <property name="filter.use_luminance">0</property>
      <property name="filter.resource">C:/Users/xxx/AppData/Local/Meltytech/Shotcut/transitions/concentric_cones_5_true(1920x1080.png</property>
      <property name="filter.use_mix">0</property>
      <property name="filter.audio_match">0</property>
      <property name="filter.alpha_operation">overwrite</property>
      <property name="shotcut:animOut">00:00:00.000</property>
      <property name="shotcut:animIn">00:00:00.000</property>
      <property name="disable">0</property>
      <property name="filter.invert_mask">1</property>
      <property name="filter.reverse">0</property>
    </filter>
    <filter id="filter9" out="00:00:10.000">
      <property name="filter">frei0r.alphaspot</property>
      <property name="mlt_service">mask_start</property>
      <property name="shotcut:filter">maskSimpleShape</property>
      <property name="filter.9">0</property>
      <property name="filter.0">0.333333</property>
      <property name="shotcut:rect">710 270 540 540 1</property>
      <property name="filter.1">0.510417</property>
      <property name="filter.2">0.5</property>
      <property name="filter.3">0.140625</property>
      <property name="filter.4">0.25</property>
      <property name="filter.5">0.5</property>
      <property name="filter.6">0</property>
      <property name="disable">0</property>
    </filter>
    <filter id="filter10" out="00:00:10.000">
      <property name="filter">shape</property>
      <property name="mlt_service">mask_start</property>
      <property name="shotcut:filter">maskFromFile</property>
      <property name="filter.mix">00:00:00.000=0;00:00:10.000=100</property>
      <property name="filter.softness">0</property>
      <property name="filter.invert">0</property>
      <property name="filter.use_luminance">1</property>
      <property name="filter.resource">C:/Users/xxx/AppData/Local/Meltytech/Shotcut/transitions/concentric_cones_5_true(1920x1080.png</property>
      <property name="filter.use_mix">1</property>
      <property name="filter.audio_match">0</property>
      <property name="filter.alpha_operation">overwrite</property>
      <property name="shotcut:animIn">00:00:10.040</property>
    </filter>
    <filter id="filter11" out="00:00:10.000">
      <property name="start">1</property>
      <property name="level">1</property>
      <property name="mlt_service">brightness</property>
      <property name="shotcut:filter">brightnessOpacity</property>
      <property name="alpha">0.75</property>
      <property name="opacity">0.75</property>
      <property name="disable">0</property>
    </filter>
    <filter id="filter12" out="00:00:10.000">
      <property name="format">SS.S</property>
      <property name="start">00:00:00.000</property>
      <property name="duration">00:00:10.000</property>
      <property name="offset">00:00:00.000</property>
      <property name="speed">1</property>
      <property name="direction">up</property>
      <property name="geometry">710 270 540 540 1</property>
      <property name="family">Verdana</property>
      <property name="size">96</property>
      <property name="weight">700</property>
      <property name="style">normal</property>
      <property name="fgcolour">#ffffaa00</property>
      <property name="bgcolour">#00000000</property>
      <property name="olcolour">#ff000000</property>
      <property name="pad">0</property>
      <property name="halign">center</property>
      <property name="valign">middle</property>
      <property name="outline">3</property>
      <property name="opacity">1</property>
      <property name="mlt_service">timer</property>
      <property name="shotcut:filter">timer</property>
      <property name="shotcut:usePointSize">1</property>
      <property name="shotcut:pointSize">72</property>
      <property name="disable">0</property>
    </filter>
  </producer>
  <playlist id="playlist1">
    <property name="shotcut:video">1</property>
    <property name="shotcut:name">V2</property>
    <entry producer="producer2" in="00:00:00.000" out="00:00:10.000"/>
    <entry producer="producer3" in="00:00:00.000" out="00:00:10.000"/>
  </playlist>
  <tractor id="tractor0" title="Shotcut version 24.11.17" in="00:00:00.000" out="00:00:20.040">
    <property name="shotcut">1</property>
    <property name="shotcut:projectAudioChannels">2</property>
    <property name="shotcut:projectFolder">1</property>
    <property name="shotcut:skipConvert">0</property>
    <track producer="background"/>
    <track producer="playlist0"/>
    <track producer="playlist1"/>
    <transition id="transition0">
      <property name="a_track">0</property>
      <property name="b_track">1</property>
      <property name="mlt_service">mix</property>
      <property name="always_active">1</property>
      <property name="sum">1</property>
    </transition>
    <transition id="transition1">
      <property name="a_track">0</property>
      <property name="b_track">1</property>
      <property name="version">0.1</property>
      <property name="mlt_service">frei0r.cairoblend</property>
      <property name="threads">0</property>
      <property name="disable">1</property>
    </transition>
    <transition id="transition2">
      <property name="a_track">0</property>
      <property name="b_track">2</property>
      <property name="mlt_service">mix</property>
      <property name="always_active">1</property>
      <property name="sum">1</property>
    </transition>
    <transition id="transition3">
      <property name="a_track">1</property>
      <property name="b_track">2</property>
      <property name="version">0.1</property>
      <property name="mlt_service">frei0r.cairoblend</property>
      <property name="threads">0</property>
      <property name="disable">0</property>
    </transition>
  </tractor>
</mlt>
The filters are on the color clips on the top track. You'll need to supply your own image.
2 Likes

Spoil me the answer please!

Copy the above data to a file “answer.mlt”. Open this file in Shotcut. Replace the PNG image with one of your own. Click on each clip and see what filters were applied, et voila - you will see the method I used.

1 Like

So should I open a .txt file, paste all data above, and then make it .mlt?

Pour que votre mlt fonctionne, il faut aussi lui fournir le fichier du png conique.

For your mlt to work, you must also provide it with the conical png file. :wink:

@Namna the conical PNG file is part of the atndard Shotcut installation provided by Dan.

le fichier PNG conique fait partie de l’installation atndard Shotcut fournie par Dan.

Yep.

Je veux bien vous croire, mais chez moi cela ne fonctionne pas.
Peut-être est-ce dû au chemin du fichier différent sur Mac et PC.

I want to believe you, but it doesn’t work for me.
Maybe it’s because of the different file path on Mac and PC.

<property name="filter.resource">C:/Users/xxx/AppData/Local/Meltytech/Shotcut/transitions/concentric_cones_5_true(1920x1080.png</property>

I must apologise. You are correct, this file is NOT part of the standard Shotcut installation. This image is in a folder called “Transitions” that is in the standard Shotcut AppData folder. I just looked at it and the folder dates from November 2021. I must have put it there and forgot about it.

I am using Shotcut version 24.11.12 and this must look in that folder for the filter “Mask from File”.

Je dois m’excuser. Vous avez raison, ce fichier ne fait PAS partie de l’installation standard de Shotcut. Cette image se trouve dans un dossier appelé « Transitions » qui se trouve dans le dossier standard Shotcut AppData. Je viens de le regarder et le dossier date de novembre 2021. J’ai dû le mettre là et l’oublier.

J’utilise Shotcut version 24.11.12 et cela doit rechercher dans ce dossier le filtre “Masque à partir du fichier”.

Times UP people.

It took a bit longer than anticipated, but I finally finished my little tutorial

Many thanks to @Namna, @jonray and @Elusien for their participation and for the interesting discussion.

First, here’s the thread created last year by @Kamigeek that inspired me to create this Shotcut challenge.

And here’s the tutorial explaining how I created the effect (an a couple other things) in my original post.

Curious to see if @jonray’s admirer, Mr Thumbdown, will honor this unlisted video with his indelible fingerprint. :grimacing:

5 Likes

Well, that is a SUPERB tutorial, @musicalbox!! (As usual, very thorough). You deserve big success with this on your channel. I know how much effort went into this. Congrats! I watched it at 2x speed but then I know my way around SC pretty well…
SNAP! I used the same filters:

It’s not stopped for me and it’s still disturbing me :slightly_frowning_face: - but one of your thumbs-ups is from me. :+1:

PS Only one point - you didn’t mention that the font should be monospaced to prevent the text jumping …

2 Likes